├── static
├── .gitkeep
├── images
│ ├── 1.jpg
│ ├── 2.jpg
│ ├── 3.jpg
│ ├── 4.jpg
│ ├── 5.jpg
│ ├── fog.jpg
│ ├── me.jpg
│ ├── wn8.png
│ ├── x.jpg
│ ├── excel.png
│ ├── grid2.jpg
│ ├── group.png
│ ├── halo.jpg
│ ├── home.png
│ ├── jolie.jpg
│ ├── live1.jpg
│ ├── live2.jpg
│ ├── obama.jpg
│ ├── power.png
│ ├── rain.jpg
│ ├── round.png
│ ├── sleet.jpg
│ ├── snow.jpg
│ ├── user.png
│ ├── vin_d.jpg
│ ├── wind.jpg
│ ├── word.png
│ ├── x-box.png
│ ├── access.png
│ ├── bd-rom.png
│ ├── clouds2.png
│ ├── cloudy.jpg
│ ├── css-logo.png
│ ├── disk-sys.png
│ ├── flags
│ │ ├── ak.png
│ │ ├── al.png
│ │ ├── ar.png
│ │ ├── az.png
│ │ ├── ca.png
│ │ ├── co.png
│ │ ├── ct.png
│ │ ├── de.png
│ │ ├── fl.png
│ │ ├── ga.png
│ │ ├── hi.png
│ │ ├── ia.png
│ │ ├── id.png
│ │ ├── il.png
│ │ ├── in.png
│ │ ├── ks.png
│ │ ├── ky.png
│ │ ├── la.png
│ │ ├── ma.png
│ │ ├── md.png
│ │ ├── me.png
│ │ ├── mi.png
│ │ ├── mn.png
│ │ ├── mo.png
│ │ ├── ms.png
│ │ ├── mt.png
│ │ ├── nc.png
│ │ ├── nd.png
│ │ ├── ne.png
│ │ ├── nh.png
│ │ ├── nj.png
│ │ ├── nm.png
│ │ ├── nv.png
│ │ ├── ny.png
│ │ ├── oh.png
│ │ ├── ok.png
│ │ ├── or.png
│ │ ├── pa.png
│ │ ├── ri.png
│ │ ├── sc.png
│ │ ├── sd.png
│ │ ├── tn.png
│ │ ├── tx.png
│ │ ├── ut.png
│ │ ├── va.png
│ │ ├── vt.png
│ │ ├── wa.png
│ │ ├── wi.png
│ │ ├── wv.png
│ │ └── wy.png
│ ├── location.png
│ ├── me_150.jpg
│ ├── myface.jpg
│ ├── onenote.png
│ ├── org-01.png
│ ├── outlook.png
│ ├── spface.jpg
│ ├── spface2.jpg
│ ├── Checkmark.png
│ ├── bizspark_b.png
│ ├── clear-day.jpg
│ ├── hard-drive.png
│ ├── icon-minus.png
│ ├── icon-plus.png
│ ├── jeki_chan.jpg
│ ├── jetbrains.png
│ ├── powerpoint.png
│ ├── whats-new.jpg
│ ├── Blank_Folder.png
│ ├── Calendar-Next.png
│ ├── Crysis-2-icon.png
│ ├── Folder-Rename.png
│ ├── MSFT_logo_png.png
│ ├── Notebook-Save.png
│ ├── WorldofTanks.png
│ ├── bizspark_b_2.png
│ ├── clear-night.jpg
│ ├── folder-images.png
│ ├── folder-music.png
│ ├── folder-videos.png
│ ├── jek_vorobey.jpg
│ ├── photo_album.png
│ ├── shvarcenegger.jpg
│ ├── toggle-minus.png
│ ├── zadorozhnyi.jpg
│ ├── phpstorm_7_eap.png
│ ├── Battlefield_4_Icon.png
│ ├── Metro_unior_100x20.png
│ ├── folder-documents.png
│ ├── folder-downloads.png
│ ├── folder_with_file.png
│ ├── partly-cloudy-day.jpg
│ ├── Metro_author_100x20.png
│ ├── Metro_member_100x20.png
│ ├── Metro_moster_100x20.png
│ └── partly-cloudy-night.jpg
├── img
│ ├── avatar.jpg
│ ├── icon
│ │ ├── doc.png
│ │ ├── baidu.png
│ │ ├── demo.png
│ │ ├── github.png
│ │ ├── kyzg.png
│ │ ├── win10.png
│ │ ├── blogger.png
│ │ ├── download.png
│ │ └── website.png
│ ├── windows.ico
│ ├── presentation
│ │ ├── 1.png
│ │ ├── donation.jpg
│ │ ├── bluescreen.jpg
│ │ └── wangyiyun.gif
│ └── wallpapers
│ │ ├── login.jpg
│ │ ├── main.jpg
│ │ └── mobile.jpg
├── font-awesome-4.7.0
│ └── fonts
│ │ ├── FontAwesome.otf
│ │ ├── fontawesome-webfont.eot
│ │ ├── fontawesome-webfont.ttf
│ │ ├── fontawesome-webfont.woff
│ │ └── fontawesome-webfont.woff2
├── layer-v3.0.3
│ └── layer
│ │ ├── skin
│ │ └── default
│ │ │ ├── icon.png
│ │ │ ├── icon-ext.png
│ │ │ ├── loading-0.gif
│ │ │ ├── loading-1.gif
│ │ │ └── loading-2.gif
│ │ └── mobile
│ │ ├── layer.js
│ │ └── need
│ │ └── layer.css
├── config.js
├── js
│ └── win10.child.js
└── json
│ ├── menu-item.json
│ └── shortcut.json
├── src
├── assets
│ ├── logo.png
│ ├── less
│ │ ├── clock.less
│ │ ├── metro-icons-mixins.less
│ │ ├── colors.less
│ │ ├── layout.less
│ │ ├── presenter.less
│ │ ├── progressbar.less
│ │ ├── metro-icons.less
│ │ ├── popovers.less
│ │ ├── keypad.less
│ │ ├── metro.less
│ │ ├── wizard.less
│ │ ├── metro-colors.less
│ │ ├── fonts.less
│ │ ├── charms.less
│ │ ├── countdown.less
│ │ ├── flex-grid.less
│ │ ├── pagination.less
│ │ ├── metro-rtl.less
│ │ ├── carousel.less
│ │ ├── panels.less
│ │ ├── toolbars.less
│ │ ├── datatable.less
│ │ ├── stepper.less
│ │ ├── treeview.less
│ │ ├── dialog.less
│ │ ├── wizard2.less
│ │ ├── transform.less
│ │ ├── grid.less
│ │ ├── accordion.less
│ │ ├── hints.less
│ │ ├── flex.less
│ │ ├── rating.less
│ │ ├── windows.less
│ │ ├── lists.less
│ │ ├── notify.less
│ │ ├── reset.less
│ │ ├── video-player.less
│ │ ├── images.less
│ │ ├── audio-player.less
│ │ ├── calendar.less
│ │ ├── tables.less
│ │ ├── tabcontrol.less
│ │ ├── breadcrumbs.less
│ │ ├── metro-schemes.less
│ │ ├── slider.less
│ │ ├── sidebar.less
│ │ ├── metro-icons-animation.less
│ │ └── fluent-menu.less
│ └── loaded.css
├── router
│ ├── index.js
│ └── routes.js
├── components
│ ├── win10
│ │ ├── tile-area.vue
│ │ ├── tile-label.vue
│ │ ├── tile-title.vue
│ │ ├── tile-container.vue
│ │ ├── tile-content.vue
│ │ ├── tile-group.vue
│ │ ├── message.vue
│ │ ├── index.js
│ │ └── tile.vue
│ ├── timer.vue
│ ├── shortcut.vue
│ └── HelloWorld.vue
├── main.js
├── App.vue
├── Vue-extend.js
└── template
│ └── login.vue
├── config
├── prod.env.js
├── dev.env.js
└── index.js
├── .editorconfig
├── README.md
├── .gitignore
├── .babelrc
├── .postcssrc.js
├── index.html
└── package.json
/static/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/src/assets/logo.png
--------------------------------------------------------------------------------
/static/images/1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/1.jpg
--------------------------------------------------------------------------------
/static/images/2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/2.jpg
--------------------------------------------------------------------------------
/static/images/3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/3.jpg
--------------------------------------------------------------------------------
/static/images/4.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/4.jpg
--------------------------------------------------------------------------------
/static/images/5.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/5.jpg
--------------------------------------------------------------------------------
/static/images/fog.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/fog.jpg
--------------------------------------------------------------------------------
/static/images/me.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/me.jpg
--------------------------------------------------------------------------------
/static/images/wn8.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/wn8.png
--------------------------------------------------------------------------------
/static/images/x.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/x.jpg
--------------------------------------------------------------------------------
/static/img/avatar.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/img/avatar.jpg
--------------------------------------------------------------------------------
/config/prod.env.js:
--------------------------------------------------------------------------------
1 | 'use strict'
2 | module.exports = {
3 | NODE_ENV: '"production"'
4 | }
5 |
--------------------------------------------------------------------------------
/static/images/excel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/excel.png
--------------------------------------------------------------------------------
/static/images/grid2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/grid2.jpg
--------------------------------------------------------------------------------
/static/images/group.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/group.png
--------------------------------------------------------------------------------
/static/images/halo.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/halo.jpg
--------------------------------------------------------------------------------
/static/images/home.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/home.png
--------------------------------------------------------------------------------
/static/images/jolie.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/jolie.jpg
--------------------------------------------------------------------------------
/static/images/live1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/live1.jpg
--------------------------------------------------------------------------------
/static/images/live2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/live2.jpg
--------------------------------------------------------------------------------
/static/images/obama.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/obama.jpg
--------------------------------------------------------------------------------
/static/images/power.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/power.png
--------------------------------------------------------------------------------
/static/images/rain.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/rain.jpg
--------------------------------------------------------------------------------
/static/images/round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/round.png
--------------------------------------------------------------------------------
/static/images/sleet.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/sleet.jpg
--------------------------------------------------------------------------------
/static/images/snow.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/snow.jpg
--------------------------------------------------------------------------------
/static/images/user.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/user.png
--------------------------------------------------------------------------------
/static/images/vin_d.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/vin_d.jpg
--------------------------------------------------------------------------------
/static/images/wind.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/wind.jpg
--------------------------------------------------------------------------------
/static/images/word.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/word.png
--------------------------------------------------------------------------------
/static/images/x-box.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/x-box.png
--------------------------------------------------------------------------------
/static/img/icon/doc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/img/icon/doc.png
--------------------------------------------------------------------------------
/static/img/windows.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/img/windows.ico
--------------------------------------------------------------------------------
/static/images/access.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/access.png
--------------------------------------------------------------------------------
/static/images/bd-rom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/bd-rom.png
--------------------------------------------------------------------------------
/static/images/clouds2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/clouds2.png
--------------------------------------------------------------------------------
/static/images/cloudy.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/cloudy.jpg
--------------------------------------------------------------------------------
/static/images/css-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/css-logo.png
--------------------------------------------------------------------------------
/static/images/disk-sys.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/disk-sys.png
--------------------------------------------------------------------------------
/static/images/flags/ak.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/flags/ak.png
--------------------------------------------------------------------------------
/static/images/flags/al.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/flags/al.png
--------------------------------------------------------------------------------
/static/images/flags/ar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/flags/ar.png
--------------------------------------------------------------------------------
/static/images/flags/az.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/flags/az.png
--------------------------------------------------------------------------------
/static/images/flags/ca.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/flags/ca.png
--------------------------------------------------------------------------------
/static/images/flags/co.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/flags/co.png
--------------------------------------------------------------------------------
/static/images/flags/ct.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/flags/ct.png
--------------------------------------------------------------------------------
/static/images/flags/de.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/flags/de.png
--------------------------------------------------------------------------------
/static/images/flags/fl.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/flags/fl.png
--------------------------------------------------------------------------------
/static/images/flags/ga.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/flags/ga.png
--------------------------------------------------------------------------------
/static/images/flags/hi.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/flags/hi.png
--------------------------------------------------------------------------------
/static/images/flags/ia.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/flags/ia.png
--------------------------------------------------------------------------------
/static/images/flags/id.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/flags/id.png
--------------------------------------------------------------------------------
/static/images/flags/il.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/flags/il.png
--------------------------------------------------------------------------------
/static/images/flags/in.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/flags/in.png
--------------------------------------------------------------------------------
/static/images/flags/ks.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/flags/ks.png
--------------------------------------------------------------------------------
/static/images/flags/ky.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/flags/ky.png
--------------------------------------------------------------------------------
/static/images/flags/la.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/flags/la.png
--------------------------------------------------------------------------------
/static/images/flags/ma.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/flags/ma.png
--------------------------------------------------------------------------------
/static/images/flags/md.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/flags/md.png
--------------------------------------------------------------------------------
/static/images/flags/me.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/flags/me.png
--------------------------------------------------------------------------------
/static/images/flags/mi.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/flags/mi.png
--------------------------------------------------------------------------------
/static/images/flags/mn.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/flags/mn.png
--------------------------------------------------------------------------------
/static/images/flags/mo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/flags/mo.png
--------------------------------------------------------------------------------
/static/images/flags/ms.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/flags/ms.png
--------------------------------------------------------------------------------
/static/images/flags/mt.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/flags/mt.png
--------------------------------------------------------------------------------
/static/images/flags/nc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/flags/nc.png
--------------------------------------------------------------------------------
/static/images/flags/nd.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/flags/nd.png
--------------------------------------------------------------------------------
/static/images/flags/ne.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/flags/ne.png
--------------------------------------------------------------------------------
/static/images/flags/nh.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/flags/nh.png
--------------------------------------------------------------------------------
/static/images/flags/nj.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/flags/nj.png
--------------------------------------------------------------------------------
/static/images/flags/nm.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/flags/nm.png
--------------------------------------------------------------------------------
/static/images/flags/nv.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/flags/nv.png
--------------------------------------------------------------------------------
/static/images/flags/ny.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/flags/ny.png
--------------------------------------------------------------------------------
/static/images/flags/oh.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/flags/oh.png
--------------------------------------------------------------------------------
/static/images/flags/ok.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/flags/ok.png
--------------------------------------------------------------------------------
/static/images/flags/or.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/flags/or.png
--------------------------------------------------------------------------------
/static/images/flags/pa.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/flags/pa.png
--------------------------------------------------------------------------------
/static/images/flags/ri.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/flags/ri.png
--------------------------------------------------------------------------------
/static/images/flags/sc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/flags/sc.png
--------------------------------------------------------------------------------
/static/images/flags/sd.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/flags/sd.png
--------------------------------------------------------------------------------
/static/images/flags/tn.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/flags/tn.png
--------------------------------------------------------------------------------
/static/images/flags/tx.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/flags/tx.png
--------------------------------------------------------------------------------
/static/images/flags/ut.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/flags/ut.png
--------------------------------------------------------------------------------
/static/images/flags/va.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/flags/va.png
--------------------------------------------------------------------------------
/static/images/flags/vt.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/flags/vt.png
--------------------------------------------------------------------------------
/static/images/flags/wa.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/flags/wa.png
--------------------------------------------------------------------------------
/static/images/flags/wi.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/flags/wi.png
--------------------------------------------------------------------------------
/static/images/flags/wv.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/flags/wv.png
--------------------------------------------------------------------------------
/static/images/flags/wy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/flags/wy.png
--------------------------------------------------------------------------------
/static/images/location.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/location.png
--------------------------------------------------------------------------------
/static/images/me_150.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/me_150.jpg
--------------------------------------------------------------------------------
/static/images/myface.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/myface.jpg
--------------------------------------------------------------------------------
/static/images/onenote.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/onenote.png
--------------------------------------------------------------------------------
/static/images/org-01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/org-01.png
--------------------------------------------------------------------------------
/static/images/outlook.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/outlook.png
--------------------------------------------------------------------------------
/static/images/spface.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/spface.jpg
--------------------------------------------------------------------------------
/static/images/spface2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/spface2.jpg
--------------------------------------------------------------------------------
/static/img/icon/baidu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/img/icon/baidu.png
--------------------------------------------------------------------------------
/static/img/icon/demo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/img/icon/demo.png
--------------------------------------------------------------------------------
/static/img/icon/github.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/img/icon/github.png
--------------------------------------------------------------------------------
/static/img/icon/kyzg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/img/icon/kyzg.png
--------------------------------------------------------------------------------
/static/img/icon/win10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/img/icon/win10.png
--------------------------------------------------------------------------------
/static/images/Checkmark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/Checkmark.png
--------------------------------------------------------------------------------
/static/images/bizspark_b.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/bizspark_b.png
--------------------------------------------------------------------------------
/static/images/clear-day.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/clear-day.jpg
--------------------------------------------------------------------------------
/static/images/hard-drive.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/hard-drive.png
--------------------------------------------------------------------------------
/static/images/icon-minus.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/icon-minus.png
--------------------------------------------------------------------------------
/static/images/icon-plus.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/icon-plus.png
--------------------------------------------------------------------------------
/static/images/jeki_chan.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/jeki_chan.jpg
--------------------------------------------------------------------------------
/static/images/jetbrains.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/jetbrains.png
--------------------------------------------------------------------------------
/static/images/powerpoint.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/powerpoint.png
--------------------------------------------------------------------------------
/static/images/whats-new.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/whats-new.jpg
--------------------------------------------------------------------------------
/static/img/icon/blogger.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/img/icon/blogger.png
--------------------------------------------------------------------------------
/static/img/icon/download.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/img/icon/download.png
--------------------------------------------------------------------------------
/static/img/icon/website.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/img/icon/website.png
--------------------------------------------------------------------------------
/static/images/Blank_Folder.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/Blank_Folder.png
--------------------------------------------------------------------------------
/static/images/Calendar-Next.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/Calendar-Next.png
--------------------------------------------------------------------------------
/static/images/Crysis-2-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/Crysis-2-icon.png
--------------------------------------------------------------------------------
/static/images/Folder-Rename.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/Folder-Rename.png
--------------------------------------------------------------------------------
/static/images/MSFT_logo_png.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/MSFT_logo_png.png
--------------------------------------------------------------------------------
/static/images/Notebook-Save.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/Notebook-Save.png
--------------------------------------------------------------------------------
/static/images/WorldofTanks.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/WorldofTanks.png
--------------------------------------------------------------------------------
/static/images/bizspark_b_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/bizspark_b_2.png
--------------------------------------------------------------------------------
/static/images/clear-night.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/clear-night.jpg
--------------------------------------------------------------------------------
/static/images/folder-images.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/folder-images.png
--------------------------------------------------------------------------------
/static/images/folder-music.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/folder-music.png
--------------------------------------------------------------------------------
/static/images/folder-videos.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/folder-videos.png
--------------------------------------------------------------------------------
/static/images/jek_vorobey.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/jek_vorobey.jpg
--------------------------------------------------------------------------------
/static/images/photo_album.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/photo_album.png
--------------------------------------------------------------------------------
/static/images/shvarcenegger.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/shvarcenegger.jpg
--------------------------------------------------------------------------------
/static/images/toggle-minus.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/toggle-minus.png
--------------------------------------------------------------------------------
/static/images/zadorozhnyi.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/zadorozhnyi.jpg
--------------------------------------------------------------------------------
/static/img/presentation/1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/img/presentation/1.png
--------------------------------------------------------------------------------
/static/img/wallpapers/login.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/img/wallpapers/login.jpg
--------------------------------------------------------------------------------
/static/img/wallpapers/main.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/img/wallpapers/main.jpg
--------------------------------------------------------------------------------
/static/images/phpstorm_7_eap.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/phpstorm_7_eap.png
--------------------------------------------------------------------------------
/static/img/wallpapers/mobile.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/img/wallpapers/mobile.jpg
--------------------------------------------------------------------------------
/static/images/Battlefield_4_Icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/Battlefield_4_Icon.png
--------------------------------------------------------------------------------
/static/images/Metro_unior_100x20.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/Metro_unior_100x20.png
--------------------------------------------------------------------------------
/static/images/folder-documents.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/folder-documents.png
--------------------------------------------------------------------------------
/static/images/folder-downloads.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/folder-downloads.png
--------------------------------------------------------------------------------
/static/images/folder_with_file.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/folder_with_file.png
--------------------------------------------------------------------------------
/static/images/partly-cloudy-day.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/partly-cloudy-day.jpg
--------------------------------------------------------------------------------
/static/img/presentation/donation.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/img/presentation/donation.jpg
--------------------------------------------------------------------------------
/static/images/Metro_author_100x20.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/Metro_author_100x20.png
--------------------------------------------------------------------------------
/static/images/Metro_member_100x20.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/Metro_member_100x20.png
--------------------------------------------------------------------------------
/static/images/Metro_moster_100x20.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/Metro_moster_100x20.png
--------------------------------------------------------------------------------
/static/images/partly-cloudy-night.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/images/partly-cloudy-night.jpg
--------------------------------------------------------------------------------
/static/img/presentation/bluescreen.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/img/presentation/bluescreen.jpg
--------------------------------------------------------------------------------
/static/img/presentation/wangyiyun.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/img/presentation/wangyiyun.gif
--------------------------------------------------------------------------------
/static/font-awesome-4.7.0/fonts/FontAwesome.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/font-awesome-4.7.0/fonts/FontAwesome.otf
--------------------------------------------------------------------------------
/static/layer-v3.0.3/layer/skin/default/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/layer-v3.0.3/layer/skin/default/icon.png
--------------------------------------------------------------------------------
/static/layer-v3.0.3/layer/skin/default/icon-ext.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/layer-v3.0.3/layer/skin/default/icon-ext.png
--------------------------------------------------------------------------------
/static/layer-v3.0.3/layer/skin/default/loading-0.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/layer-v3.0.3/layer/skin/default/loading-0.gif
--------------------------------------------------------------------------------
/static/layer-v3.0.3/layer/skin/default/loading-1.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/layer-v3.0.3/layer/skin/default/loading-1.gif
--------------------------------------------------------------------------------
/static/layer-v3.0.3/layer/skin/default/loading-2.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/layer-v3.0.3/layer/skin/default/loading-2.gif
--------------------------------------------------------------------------------
/static/font-awesome-4.7.0/fonts/fontawesome-webfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/font-awesome-4.7.0/fonts/fontawesome-webfont.eot
--------------------------------------------------------------------------------
/static/font-awesome-4.7.0/fonts/fontawesome-webfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/font-awesome-4.7.0/fonts/fontawesome-webfont.ttf
--------------------------------------------------------------------------------
/static/font-awesome-4.7.0/fonts/fontawesome-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/font-awesome-4.7.0/fonts/fontawesome-webfont.woff
--------------------------------------------------------------------------------
/static/font-awesome-4.7.0/fonts/fontawesome-webfont.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jntoo/vue-win10/HEAD/static/font-awesome-4.7.0/fonts/fontawesome-webfont.woff2
--------------------------------------------------------------------------------
/config/dev.env.js:
--------------------------------------------------------------------------------
1 | 'use strict'
2 | const merge = require('webpack-merge')
3 | const prodEnv = require('./prod.env')
4 |
5 | module.exports = merge(prodEnv, {
6 | NODE_ENV: '"development"'
7 | })
8 |
--------------------------------------------------------------------------------
/src/assets/less/clock.less:
--------------------------------------------------------------------------------
1 | .clock {
2 |
3 | text-align: center;
4 |
5 | .hour {
6 |
7 | }
8 |
9 | .minute {
10 |
11 | }
12 |
13 | .second {
14 |
15 | }
16 | }
--------------------------------------------------------------------------------
/.editorconfig:
--------------------------------------------------------------------------------
1 | root = true
2 |
3 | [*]
4 | charset = utf-8
5 | indent_style = space
6 | indent_size = 2
7 | end_of_line = lf
8 | insert_final_newline = true
9 | trim_trailing_whitespace = true
10 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # vue-win10
2 | 仿windows10、win10 ,改自尤里2号 http://win10ui.yuri2.cn/ jQuery版改成Vue
3 | 欢迎使用
4 | git clone https://github.com/jntoo/vue-win10.git
5 | npm install
6 | cd vue-win10
7 | npm run dev
8 | 在浏览器打开:http://localhost:8080/
9 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | node_modules/
3 | /dist/
4 | npm-debug.log*
5 | yarn-debug.log*
6 | yarn-error.log*
7 |
8 | # Editor directories and files
9 | .idea
10 | .vscode
11 | *.suo
12 | *.ntvs*
13 | *.njsproj
14 | *.sln
15 | .svn
16 | yarn.lock
17 |
--------------------------------------------------------------------------------
/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": [
3 | ["env", {
4 | "modules": false,
5 | "targets": {
6 | "browsers": ["> 1%", "last 2 versions", "not ie <= 8"]
7 | }
8 | }],
9 | "stage-2"
10 | ],
11 | "plugins": ["transform-vue-jsx", "transform-runtime"]
12 | }
13 |
--------------------------------------------------------------------------------
/.postcssrc.js:
--------------------------------------------------------------------------------
1 | // https://github.com/michael-ciniawsky/postcss-load-config
2 |
3 | module.exports = {
4 | "plugins": {
5 | "postcss-import": {},
6 | "postcss-url": {},
7 | // to edit target browsers: use "browserslist" field in package.json
8 | "autoprefixer": {}
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/src/router/index.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by JnToo on 2018/4/16.
3 | */
4 | import Vue from 'vue'
5 | import VueRouter from 'vue-router'
6 | import routes from './routes'
7 | Vue.use(VueRouter)
8 |
9 | const router = new VueRouter({
10 | routes // (缩写)相当于 routes: routes
11 | })
12 | export default router
--------------------------------------------------------------------------------
/src/assets/less/metro-icons-mixins.less:
--------------------------------------------------------------------------------
1 | .mif-lg {
2 | font-size: 1.3rem;
3 | line-height: 0.75em;
4 | vertical-align: -35%;
5 | }
6 |
7 | .mif-2x {
8 | font-size: 1.75rem;
9 | vertical-align: -25%;
10 | }
11 |
12 | .mif-3x {
13 | font-size: 2.625rem;
14 | vertical-align: -30%;
15 | }
16 |
17 | .mif-4x {
18 | font-size: 3.5rem;
19 | vertical-align: -35%;
20 | }
21 |
22 |
--------------------------------------------------------------------------------
/src/router/routes.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by JnToo on 2018/4/16.
3 | */
4 | import Home from '../win10.vue'
5 | import Login from '../template/login.vue'
6 | const routes = [
7 | {
8 | path:'/',
9 | name:'Win10',
10 | component:Home
11 | },
12 | {
13 | path:'/login',
14 | name:'Login',
15 | component:Login
16 | }
17 | ]
18 |
19 | export default routes
--------------------------------------------------------------------------------
/src/assets/less/colors.less:
--------------------------------------------------------------------------------
1 | @import (once) "vars";
2 |
3 | .op-default {
4 | background-color: rgba(red(@cyan), green(@cyan), blue(@cyan), .7);
5 | }
6 |
7 | .generate-colors(@color-list-length);
8 | .generate-colors(@name, @i: 1) when (@i =< @color-list-length) {
9 | @name: extract(@color-list, @i);
10 |
11 | .fg-@{name} {color: @@name !important;}
12 | .bg-@{name} {background-color: @@name !important;}
13 |
14 | .generate-colors(@name, @i + 1);
15 | }
16 |
--------------------------------------------------------------------------------
/src/components/win10/tile-area.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/src/assets/less/layout.less:
--------------------------------------------------------------------------------
1 | .container {
2 | width: 960px;
3 | margin: 0 auto;
4 | }
5 |
6 | .fixed-top, .fixed-bottom {
7 | position: fixed;
8 | left: 0;
9 | right: 0;
10 | z-index: @zindexFixedNavbar;
11 | }
12 |
13 | .fixed-top {
14 | top: 0;
15 | bottom: auto;
16 |
17 | }
18 |
19 | .fixed-bottom {
20 | top: auto;
21 | bottom: 0;
22 | }
23 |
24 | .pos-abs {position: absolute !important;}
25 | .pos-rel {position: relative !important;}
26 | .pos-fix {position: fixed !important;}
27 |
28 |
--------------------------------------------------------------------------------
/src/components/win10/tile-label.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/src/components/win10/tile-title.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/src/assets/less/presenter.less:
--------------------------------------------------------------------------------
1 | @import (once) "vars";
2 | @import (once) "utils";
3 | @import (once) "transform";
4 |
5 | .presenter {
6 | width: 100%;
7 | height: 200px;
8 | min-height: 200px;
9 | position: relative;
10 | display: block;
11 | }
12 |
13 | .scene {
14 | position: relative;
15 | width: 100%;
16 | height: 100%;
17 | margin: 0;
18 | padding: 0;
19 | overflow: hidden;
20 | display: block;
21 | }
22 |
23 | .act {
24 | width: 100%;
25 | height: 100%;
26 | display: block;
27 | position: relative;
28 | padding: 10px ;
29 | .clear-float;
30 | }
31 |
32 | .actor {
33 | position: absolute;
34 | margin-right: 10px;
35 | }
36 |
37 |
--------------------------------------------------------------------------------
/src/components/win10/tile-container.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/static/config.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by JnToo on 2018/4/16.
3 | */
4 | // 数据结构为:
5 | /**
6 | * {
7 | * code:0, // code 大于0为错误,等于0为成功,类似于C写法,大于0为错误码
8 | * msg:"" ,// 错误信息 返回的错误信息
9 | * data:JSON , // JSON任意信息
10 | * href:'', // 跳转地址
11 | * }
12 | */
13 |
14 | (function (global) {
15 | var config = {
16 | baseUrl:'http://127.0.0.205',
17 | loginUrl:'http://127.0.0.205/admin.php?s=/index/login/sign', // 用以上结构返回
18 | shortCutUrl:'http://127.0.0.205/admin.php?s=/adminc/index/shortcut', // 获取线上WIN10图标
19 | menuCutUrl:'http://127.0.0.205/admin.php?s=/adminc/index/startmenu' // 开始菜单Url
20 | }
21 | global.win10Config = config;
22 | })(window)
23 |
--------------------------------------------------------------------------------
/src/components/win10/tile-content.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | win10
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/static/js/win10.child.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by Yuri2 on 2017/7/31.
3 | */
4 | //此处代码适合在子页面使用
5 | window.Win10_parent=parent.Win10; //获取父级Win10对象的句柄
6 | window.Win10_child={
7 | close:function () {
8 | var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引
9 | Win10_parent._closeWin(index);
10 | },
11 | newMsg: function (title, content,handle_click){
12 | Win10_parent.newMsg(title, content,handle_click)
13 | },
14 | openUrl: function (url, title,max){
15 | var click_lock_name=Math.random();
16 | Win10_parent._iframe_click_lock_children[click_lock_name]=true;
17 | var index=Win10_parent.openUrl(url, title,max);
18 | setTimeout(function () {
19 | delete Win10_parent._iframe_click_lock_children[click_lock_name];
20 | },1000);
21 | return index;
22 | }
23 | };
24 |
25 |
--------------------------------------------------------------------------------
/src/components/win10/tile-group.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/src/assets/less/progressbar.less:
--------------------------------------------------------------------------------
1 | @import (once) "vars";
2 | @import (once) "utils";
3 | @import (once) "animations";
4 |
5 | .progress, .progress-bar {
6 | display: block;
7 | position: relative;
8 | width: 100%;
9 | height: auto;
10 | margin: .625rem 0;
11 | background: @grayLighter;
12 | overflow: hidden;
13 | .clear-float;
14 |
15 | .bar {
16 | position: relative;
17 | display: block;
18 | float: left;
19 | width: 0;
20 | background-color: @cyan;
21 | z-index: 1;
22 | text-align: center;
23 | height: .625rem;
24 | line-height: .625rem;
25 | color: @white;
26 | }
27 |
28 | &.small > .bar {
29 | height: .3125rem;
30 | }
31 | &.large > .bar {
32 | height: 1rem;
33 | }
34 |
35 | &.gradient-bar {
36 | .bar {
37 | background: linear-gradient(to right, #4cd964, #5ac8fa, #007aff, #34aadc, #5856d6, #ff2d55);
38 | }
39 | }
40 |
41 | &.ani {
42 | .bar {
43 | .animate(ani-bg-stripes 2s linear infinite);
44 | }
45 | }
46 | }
--------------------------------------------------------------------------------
/src/assets/less/metro-icons.less:
--------------------------------------------------------------------------------
1 | @font-face {
2 | font-family: 'metro';
3 | src:url('../fonts/metro.eot');
4 | src:url('../fonts/metro.eot') format('embedded-opentype'),
5 | url('../fonts/metro.woff') format('woff'),
6 | url('../fonts/metro.ttf') format('truetype'),
7 | url('../fonts/metro.svg') format('svg');
8 | font-weight: normal;
9 | font-style: normal;
10 | }
11 |
12 | [class^="mif-"], [class*=" mif-"] {
13 | display: inline-block;
14 | font: normal normal normal 1.5em/1;
15 | font-family: metro, "Segoe UI", "Open Sans", serif;
16 | line-height: 1 ;
17 | text-rendering: auto;
18 | -webkit-font-smoothing: antialiased;
19 | -moz-osx-font-smoothing: grayscale;
20 | transform: translate(0, 0);
21 | vertical-align: middle;
22 | position: static;
23 | //margin-bottom: 20%;
24 |
25 | &:before {
26 | font-family: metro, serif;
27 | }
28 | }
29 |
30 | @import "metro-icons-mixins";
31 | @import "metro-icons-animation";
32 | @import "metro-icons-content";
33 |
34 |
--------------------------------------------------------------------------------
/src/components/timer.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
8 |
--------------------------------------------------------------------------------
/static/json/menu-item.json:
--------------------------------------------------------------------------------
1 | {
2 | "code":0,
3 | "msg":"",
4 | "data":[
5 | {
6 | "name":"API测试",
7 | "iconClass":"red icon fa fa-wrench fa-fw",
8 | "child":[
9 | {
10 | "name":"父子页沟通"
11 | },
12 | {
13 | "name":"打开消息中心"
14 | },
15 | {
16 | "name":"发送带回调的消息"
17 | },
18 | {
19 | "name":"关闭菜单"
20 | },
21 | {
22 | "name":"打开消息中心"
23 | }
24 | ]
25 | },
26 | {
27 | "name":"辅助工具",
28 | "iconClass":"blue icon fa fa-gavel fa-fw",
29 | "child":[
30 | {
31 | "name":"桌面图标代码生成器"
32 | },
33 | {
34 | "name":"磁贴代码生成器"
35 | },
36 | {
37 | "name":"菜单代码生成器"
38 | }
39 | ]
40 | },
41 | {
42 | "name":"关于",
43 | "iconClass":"purple icon fa fa-info-circle fa-fw"
44 | },
45 | {
46 | "name":"关闭",
47 | "iconClass":"black icon fa fa-power-off fa-fw"
48 | }
49 | ]
50 | }
--------------------------------------------------------------------------------
/src/components/win10/message.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
{{ title }}
4 |
5 |
6 |
7 |
8 |
11 |
--------------------------------------------------------------------------------
/src/assets/less/popovers.less:
--------------------------------------------------------------------------------
1 | @import (once) "utils";
2 |
3 | .popover {
4 | display: block;
5 | min-width: 12.5rem;
6 | height: auto;
7 | position: relative;
8 | background-color: @grayLighter;
9 | padding: 1.25rem;
10 |
11 | * {
12 | color: inherit;
13 | }
14 |
15 | &.popover-shadow {
16 | box-shadow: 0 0 10px 0 rgba(0,0,0,.4);
17 | }
18 |
19 | &:before {
20 | content: "";
21 | width: .625rem;
22 | height: .625rem;
23 | display: block;
24 | position: absolute;
25 | background-color: inherit;
26 | left: -.3125rem;
27 | top: 50%;
28 | margin-top: -.3125rem;
29 | .rotate(45deg);
30 | }
31 |
32 | &.marker-on-top {
33 | &:before {
34 | top: 0;
35 | left: 50%;
36 | margin-left: -.3125rem;
37 | }
38 | }
39 |
40 | &.marker-on-right {
41 | &:before {
42 | top: 50%;
43 | margin-top: -.3125rem;
44 | left: 100%;
45 | margin-left: -.3125rem;
46 | }
47 | }
48 |
49 | &.marker-on-bottom {
50 | &:before {
51 | top: 100%;
52 | margin-left: -.3125rem;
53 | left: 50%;
54 | margin-top: -.3125rem;
55 | }
56 | }
57 | }
58 |
--------------------------------------------------------------------------------
/src/assets/less/keypad.less:
--------------------------------------------------------------------------------
1 | @import (once) "vars";
2 | @import (once) "utils";
3 |
4 | @keySize: 32px;
5 | @keyMargin: 1px;
6 | @keyBorder: 1px;
7 |
8 | .keypad {
9 | position: relative;
10 | width: @keySize * 3 + @keyMargin * 8 + @keyBorder * 2;
11 | padding: @keyMargin;
12 | border: 1px @grayLighter solid;
13 | vertical-align: middle;
14 | background-color: @white;
15 | .clear-float;
16 | .no-user-select;
17 |
18 | .key {
19 | width: @keySize;
20 | height: @keySize;
21 | display: block;
22 | float: left;
23 | margin: @keyMargin;
24 | border: 1px @grayLighter solid;
25 | vertical-align: middle;
26 | text-align: center;
27 | cursor: pointer;
28 | font-size: .875rem;
29 | line-height: @keySize;
30 |
31 | &:hover {
32 | background-color: @grayLighter;
33 | }
34 | &:active {
35 | background-color: @gray;
36 | color: @white;
37 | }
38 | }
39 |
40 | &.shadow {
41 | .block-shadow;
42 | }
43 | }
--------------------------------------------------------------------------------
/src/components/win10/index.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by ylf on 2018/3/26.
3 | */
4 | import Tile from './tile.vue'
5 | import TileArea from './tile-area.vue'
6 | import TileContainer from './tile-container.vue'
7 | import TileContent from './tile-content.vue'
8 | import TileGroup from './tile-group.vue'
9 | import TileTitle from './tile-title.vue'
10 | import TileLabel from './tile-label.vue'
11 | import Message from './message.vue'
12 |
13 | function install(Vue) {
14 | if(install.installed)return;
15 | install.installed = true;
16 | Vue.component(TileArea.name , TileArea)
17 | Vue.component(Tile.name , Tile)
18 | Vue.component(TileLabel.name , TileLabel)
19 | Vue.component(TileContainer.name , TileContainer)
20 | Vue.component(TileContent.name , TileContent)
21 | Vue.component(TileGroup.name , TileGroup)
22 | Vue.component(TileTitle.name , TileTitle)
23 | Vue.component(Message.name , Message)
24 | }
25 |
26 | export default {
27 | Tile,
28 | TileTitle,
29 | TileGroup,
30 | TileContent,
31 | TileContainer,
32 | TileArea,
33 | install,
34 | Message,
35 | TileLabel
36 | }
--------------------------------------------------------------------------------
/src/main.js:
--------------------------------------------------------------------------------
1 | // The Vue build version to load with the `import` command
2 | // (runtime-only or standalone) has been set in webpack.base.conf with an alias.
3 | import Vue from 'vue'
4 | import App from './App'
5 | import "./assets/less/tiles.less";
6 | import VueExtend from './vue-extend'
7 | import router from './router'
8 | import axios from 'axios'
9 | import Qs from 'qs'
10 | import VueAxios from 'vue-axios'
11 |
12 | Vue.use(VueExtend)
13 | Vue.config.productionTip = false
14 |
15 | axios.defaults.baseURL = win10Config.baseUrl;
16 | axios.defaults.headers = {'X-REQUESTED-WITH':'xmlhttprequest'};
17 | axios.defaults.withCredentials = true;
18 | var axios_instance = axios.create({
19 | baseURL:win10Config.baseUrl,
20 | transformRequest: [function (data) {
21 | data = Qs.stringify(data);
22 | return data;
23 | }],
24 | headers:{'Content-Type':'application/x-www-form-urlencoded'},
25 | withCredentials:true
26 | })
27 | Vue.use(VueAxios, axios_instance)
28 |
29 | /* eslint-disable no-new */
30 | new Vue({
31 | el: '#app',
32 | components: { App },
33 | router,
34 | template: ''
35 | })
36 |
--------------------------------------------------------------------------------
/src/App.vue:
--------------------------------------------------------------------------------
1 |
2 |
11 |
12 |
28 |
29 |
42 |
43 |
44 |
--------------------------------------------------------------------------------
/src/assets/less/metro.less:
--------------------------------------------------------------------------------
1 | @import "reset";
2 | @import "fonts";
3 | @import "typography";
4 | @import "layout";
5 | @import "grid";
6 | @import "flex-grid";
7 | @import "tables";
8 | @import "appbar";
9 | @import "menu";
10 | @import "buttons";
11 | @import "toolbars";
12 | @import "pagination";
13 | @import "breadcrumbs";
14 | @import "inputs";
15 | @import "progressbar";
16 | @import "popovers";
17 | @import "windows";
18 | @import "lists";
19 | @import "images";
20 | @import "animations";
21 | @import "calendar";
22 | @import "stepper";
23 | @import "wizard";
24 | @import "wizard2";
25 | @import "countdown";
26 | @import "sidebar";
27 | @import "tabcontrol";
28 | @import "accordion";
29 | @import "carousel";
30 | @import "panels";
31 | @import "rating";
32 | @import "slider";
33 | @import "tiles";
34 | @import "treeview";
35 | @import "presenter";
36 | @import "listview";
37 | @import "charms";
38 | @import "notify";
39 | @import "hints";
40 | @import "preloaders";
41 | @import "dialog";
42 | @import "streamer";
43 | @import "keypad";
44 | @import "fluent-menu";
45 | @import "video-player";
46 | @import "audio-player";
47 |
48 | @import "select2";
49 | @import "datatable";
50 |
51 | @import "flex";
52 | @import "scheme-builder";
53 |
54 | @import "colors";
55 | @import "transform";
56 |
--------------------------------------------------------------------------------
/src/assets/less/wizard.less:
--------------------------------------------------------------------------------
1 | @import (once) "vars";
2 | @import (once) "buttons";
3 | @import (once) "utils";
4 |
5 | .wizard {
6 | position: relative;
7 |
8 | .steps {
9 | margin: 10px 0;
10 | padding: 20px;
11 | border: 1px @grayLighter solid;
12 | position: relative;
13 |
14 | .step {
15 | position: relative;
16 | width: 100%;
17 | height: 100%;
18 | display: none;
19 |
20 | &:first-child {
21 | display: block;
22 | }
23 | }
24 | }
25 |
26 | .actions {
27 | .group-right {
28 | float: right;
29 | }
30 | .group-left {
31 | float: left;
32 | }
33 |
34 | button {
35 | .button;
36 | margin-right: 2px;
37 |
38 | &:last-child {
39 | margin-right: 0;
40 | }
41 |
42 | &.btn-help {
43 | }
44 |
45 | &.btn-prior, &.btn-next {
46 | }
47 |
48 | &.btn-finish {
49 | background-color: @green;
50 | color: @white;
51 |
52 | }
53 |
54 | &:disabled {
55 | background-color: lighten(@gray, 10%) ;
56 | }
57 | }
58 | }
59 | }
--------------------------------------------------------------------------------
/src/components/shortcut.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
![]()
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/src/assets/less/metro-colors.less:
--------------------------------------------------------------------------------
1 | @import (once) "vars";
2 |
3 | .op-default {
4 | background-color: rgba(red(@cyan), green(@cyan), blue(@cyan), .7);
5 | }
6 |
7 | .generate-colors(@color-list-length);
8 | .generate-colors(@name, @i: 1) when (@i =< @color-list-length) {
9 | @name: extract(@color-list, @i);
10 |
11 | .bd-@{name} {border-color: @@name !important;}
12 | .ol-@{name} {outline-color: @@name !important;}
13 | .op-@{name} {background-color: rgba(red(@@name), green(@@name), blue(@@name), .7);}
14 | .ribbed-@{name} {background: @@name linear-gradient(-45deg, rgba(255,255,255,.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,.15) 50%, rgba(255,255,255,.15) 75%, transparent 75%, transparent) !important; background-size: 40px 40px !important; }
15 | .before-bg-@{name} {&:before {background: @@name !important;}}
16 | .before-fg-@{name} {&:before {color: @@name !important;}}
17 | .after-bg-@{name} {&:after {background: @@name !important;}}
18 | .after-fg-@{name} {&:after {color: @@name !important;}}
19 | .bg-hover-@{name} {&:hover{background: @@name !important;}}
20 | .bg-active-@{name} {&:active{background: @@name !important;}}
21 | .bg-focus-@{name} {&:focus{background: @@name !important;}}
22 | .fg-hover-@{name} {&:hover{color: @@name !important;}}
23 | .fg-active-@{name} {&:active{color: @@name !important;}}
24 | .fg-focus-@{name} {&:focus{color: @@name !important;}}
25 |
26 | .generate-colors(@name, @i + 1);
27 | }
28 |
--------------------------------------------------------------------------------
/src/assets/less/fonts.less:
--------------------------------------------------------------------------------
1 | // Font is used to replace Cambria Font
2 | @font-face {
3 | font-family: "PT Serif Caption";
4 | font-style: normal;
5 | font-weight: 400;
6 | src: local("Cambria"), local("PT Serif Caption"), local("PTSerif-Caption"), url(https://themes.googleusercontent.com/static/fonts/ptserifcaption/v6/7xkFOeTxxO1GMC1suOUYWWhBabBbEjGd1iRmpyoZukE.woff) format('woff');
7 | }
8 |
9 | // Font is used to replace Segoe UI Font
10 |
11 | // Replace Segoe UI Light
12 | @font-face {
13 | font-family: "Open Sans Light";
14 | font-style: normal;
15 | font-weight: 300;
16 | src: local("Segoe UI Light"), local("Open Sans Light"), local("OpenSans-Light"), url(https://themes.googleusercontent.com/static/fonts/opensans/v8/DXI1ORHCpsQm3Vp6mXoaTZ1r3JsPcQLi8jytr04NNhU.woff) format('woff');
17 | }
18 |
19 | // Replace Segoe UI
20 | @font-face {
21 | font-family: "Open Sans";
22 | font-style: normal;
23 | font-weight: 400;
24 | src: local("Segoe UI"), local("Open Sans"), local("OpenSans"), url(https://themes.googleusercontent.com/static/fonts/opensans/v8/K88pR3goAWT7BTt32Z01mz8E0i7KZn-EPnyo3HZu7kw.woff) format('woff');
25 | }
26 |
27 | // Replace Segoe UI Bold
28 | @font-face {
29 | font-family: "Open Sans Bold";
30 | font-style: normal;
31 | font-weight: 700;
32 | src: local("Segoe UI Bold"), local("Open Sans Bold"), local("OpenSans-Bold"), url(https://themes.googleusercontent.com/static/fonts/opensans/v8/k3k702ZOKiLJc3WVjuplzJ1r3JsPcQLi8jytr04NNhU.woff) format('woff');
33 | }
34 |
--------------------------------------------------------------------------------
/src/assets/less/charms.less:
--------------------------------------------------------------------------------
1 | @import (once) "vars";
2 | @import (once) "utils";
3 |
4 | .charm {
5 | display: block;
6 | position: fixed;
7 | z-index: @zindexCharms;
8 | background: @dark;
9 | color: @grayLighter;
10 | padding: .625rem;
11 |
12 | .charm-closer {
13 | position: absolute;
14 | display: block;
15 | padding: .5rem;
16 | //height: 2rem;
17 | //width: 2rem;
18 | text-align: center;
19 | vertical-align: middle;
20 | font-size: 2rem;
21 | font-weight: normal;
22 | //padding: 0 0 .625rem 0;
23 | z-index: 3;
24 | outline: none;
25 | cursor: pointer;
26 |
27 | color: @winFlatSystemButtonRestColor;
28 | top: .25rem;
29 | right: 1rem;
30 |
31 | &:after {
32 | content: '\D7';
33 | position: absolute;
34 | left: 50%;
35 | top: 50%;
36 | margin-top: -.65rem;
37 | margin-left: -.35rem;
38 | }
39 |
40 | &:hover {
41 | color: @white;
42 | }
43 |
44 | &:active {
45 | color: @white;
46 | }
47 | }
48 | }
49 |
50 | .charm {
51 | &.right-side {
52 | width: auto;
53 | right: 0;
54 | top: 0;
55 | left: auto;
56 | bottom: 0;
57 | }
58 | &.left-side {
59 | width: auto;
60 | left: 0;
61 | top: 0;
62 | bottom: 0;
63 | }
64 | &.top-side {
65 | height: auto;
66 | left: 0;
67 | right: 0;
68 | top: 0;
69 | }
70 | &.bottom-side {
71 | height: auto;
72 | left: 0;
73 | right: 0;
74 | top: auto;
75 | bottom: 0;
76 | }
77 | }
--------------------------------------------------------------------------------
/src/assets/less/countdown.less:
--------------------------------------------------------------------------------
1 | @import (once) "vars";
2 | @import (once) "utils";
3 |
4 | .countdown {
5 | display: inline-block;
6 | font-weight: 700;
7 | font-size: 1rem;
8 | margin: .1em 0 1.2em;
9 |
10 | .part {
11 | display: inline-block;
12 | position: relative;
13 |
14 | &.days, &.hours, &.minutes, &.seconds {
15 | &:after {
16 | position: absolute;
17 | content: attr(data-day-text);
18 | text-align: center;
19 | top: 100%;
20 | left: 0;
21 | width: 100%;
22 | font-size: .6em;
23 | color: inherit;
24 | }
25 | }
26 |
27 | &.disabled {
28 | .digit {
29 | opacity: .3;
30 | box-shadow: none;
31 | }
32 | }
33 | }
34 |
35 | .digit, .divider {
36 | display: inline-block;
37 | padding: .3125em .625em;
38 | background-color: @cyan;
39 | color: @white;
40 | cursor: default;
41 | .block-shadow;
42 | .text-shadow;
43 | .transition(.5s);
44 | }
45 |
46 | .digit, .divider {
47 | margin-left: 4px;
48 | }
49 |
50 | .divider {
51 | padding: .125em .25em;
52 | color: @dark;
53 | background-color: transparent;
54 | box-shadow: none;
55 | }
56 |
57 | &.tick {
58 | .divider {
59 | opacity: 0;
60 | }
61 | }
62 |
63 | &.labels-top {
64 | margin: 1.2em 0 .1em;
65 |
66 | .part {
67 | &.days, &.hours, &.minutes, &.seconds {
68 | &:after {
69 | top: 0;
70 | left: 0;
71 | margin-top: -1.5em;
72 | }
73 | }
74 | }
75 | }
76 |
77 | &.rounded {
78 | .part {
79 | .digit {
80 | border-radius: .5em;
81 | }
82 | }
83 | }
84 |
85 | .digit.scaleIn {
86 | .transition(.5s);
87 | .scale(1.1);
88 | }
89 | }
--------------------------------------------------------------------------------
/static/json/shortcut.json:
--------------------------------------------------------------------------------
1 | {
2 | "code":0,
3 | "msg":"",
4 | "data":[
5 | {
6 | "icon": "/static/img/icon/win10.png",
7 | "title": "Win10-UI官网",
8 | "openType": "openUrl",
9 | "url":"http://win10ui.yuri2.cn"
10 | },
11 | {
12 | "icon": "/static/img/icon/win10.png",
13 | "title": "原版DEMO",
14 | "openType": "openLink",
15 | "url": "http://win10ui.yuri2.cn/src/demo.php"
16 | },
17 | {
18 | "icon": "/static/img/icon/blogger.png",
19 | "title": "Yuri2's Blog",
20 | "openType": "openUrl",
21 | "winIcon": "/static/img/icon/blogger.png",
22 | "winTitle": "尤里2号的博客",
23 | "url": "http://win10ui.yuri2.cn/src/demo.php"
24 | },
25 | {
26 | "icon": "/static/img/icon/doc.png",
27 | "title": "在线文档",
28 | "openType": "openUrl",
29 | "url": "http://win10ui.yuri2.cn/src/doc.php"
30 | },
31 | {
32 | "icon": "/static/img/icon/kyzg.png",
33 | "title": "开源中国",
34 | "openType": "openUrl",
35 | "url": "https://www.oschina.net/p/win10-ui"
36 | },
37 | {
38 | "icon": "/static/img/icon/download.png",
39 | "title": "快速获取",
40 | "openType": "openLink",
41 | "url": "https://github.com/yuri2peter/win10-ui/archive/master.zip"
42 | },
43 | {
44 | "iconClass": "fa fa-user icon black-green",
45 | "title": "示例登录页",
46 | "openType": "openRouter",
47 | "url": "/login"
48 | },
49 | {
50 | "iconClass": "fa fa-gears icon purple",
51 | "title": "创意工坊",
52 | "openType": "openUrl",
53 | "url": "http://win10ui.yuri2.cn/src/workshop.php"
54 | }
55 | ]
56 | }
--------------------------------------------------------------------------------
/src/assets/less/flex-grid.less:
--------------------------------------------------------------------------------
1 | @import (once) "flex";
2 |
3 | @gridCellBaseSize: 8.33333333%;
4 |
5 | .flex-grid {
6 | display: block;
7 | width: 100%;
8 | }
9 |
10 | .flex-grid {
11 | .row {
12 | .flexbox;
13 | }
14 | }
15 |
16 | .flex-grid {
17 |
18 | .row {
19 | .cell {
20 | .flex(0 0 @gridCellBaseSize);
21 | }
22 |
23 | &.cell-auto-size {
24 | .cell {
25 | .flex(1 1 auto);
26 | }
27 | }
28 | }
29 |
30 | .row {
31 | .cell {
32 |
33 | // colspan
34 | .generate-colspan(12);
35 | .generate-colspan(@j, @k: 2) when (@k =< @j){
36 | &.colspan@{k} {
37 | .flex(0 0 @gridCellBaseSize * @k);
38 | }
39 | .generate-colspan(@j, (@k + 1));
40 | }
41 |
42 | // grow size
43 | .generate-flex-size(12);
44 | .generate-flex-size(@j, @k: 1) when (@k =< @j){
45 | &.size@{k} {
46 | .flex(0 0 @gridCellBaseSize * @k);
47 | }
48 | .generate-flex-size(@j, (@k + 1));
49 | }
50 |
51 | // percent size
52 | .generate-flex-size-p(100);
53 | .generate-flex-size-p(@j, @k: 10) when (@k =< @j){
54 | &.size-p@{k} {
55 | .flex(0 0 @k + 0%);
56 | }
57 | .generate-flex-size-p(@j, (@k + 10));
58 | }
59 |
60 | // pixels size
61 | .generate-flex-size-x(1000);
62 | .generate-flex-size-x(@j, @k: 100) when (@k =< @j){
63 | &.size-x@{k} {
64 | .flex(0 0 @k + 0px);
65 | }
66 | .generate-flex-size-x(@j, (@k + 100));
67 | }
68 |
69 | &.auto-size {
70 | .flex(1 auto);
71 | }
72 | }
73 | }
74 | }
75 |
76 |
--------------------------------------------------------------------------------
/src/assets/less/pagination.less:
--------------------------------------------------------------------------------
1 | @import (once) "vars";
2 | @import (once) "utils";
3 |
4 | .pagination {
5 | display: block;
6 | margin: .625rem 0;
7 | .clear-float;
8 |
9 | & > .item {
10 | display: block;
11 | float: left;
12 | margin-left: .0652rem;
13 | padding: 0.25rem .625rem;
14 | background-color: @white;
15 | cursor: pointer;
16 | border: 1px @grayLighter solid;
17 | text-align: center;
18 | font-size: .875rem;
19 | color: @dark;
20 |
21 | &:first-child {
22 | margin-left: 0 ;
23 | }
24 |
25 | &.current, &.active {
26 | background-color: @cyan;
27 | border-color: @lightCyan;
28 | color: @white;
29 | .text-shadow;
30 | }
31 |
32 | &:hover {
33 | background-color: lighten(@cyan, 20%);
34 | border-color: lighten(@cyan, 20%);
35 | color: @white;
36 | }
37 |
38 | &:disabled, &.disabled {
39 | cursor: default;
40 | background-color: @grayLighter;
41 | border-color: @grayLighter;
42 | color: @grayLight;
43 | }
44 |
45 | &.spaces {
46 | border: 0;
47 | cursor: default;
48 | color: @dark ;
49 | &:hover {
50 | background-color: inherit ;
51 | color: @dark;
52 | }
53 | }
54 | }
55 |
56 | &.rounded {
57 | & > .item {
58 | border-radius: .3125rem;
59 | }
60 | }
61 |
62 | &.cycle {
63 | & > .item {
64 | width: 28px;
65 | height: 28px;
66 | border-radius: 50%;
67 | font-size: .7rem;
68 | padding: .4375rem 0;
69 | }
70 | }
71 |
72 | &.no-border {
73 | & > .item {
74 | border: 0;
75 |
76 | &:hover {
77 | color: @lightCyan;
78 | background-color: transparent ;
79 | }
80 |
81 | &:disabled, &.disabled {
82 | cursor: default;
83 | background-color: transparent;
84 | border-color: @transparent;
85 | color: @grayLight;
86 | }
87 |
88 | &.current, &.active {
89 | //border-radius: 50%;
90 | &:hover {
91 | background-color: lighten(@cyan, 20%) ;
92 | border-color: lighten(@cyan, 20%) ;
93 | color: @white ;
94 | }
95 | }
96 | }
97 | }
98 | }
--------------------------------------------------------------------------------
/src/assets/less/metro-rtl.less:
--------------------------------------------------------------------------------
1 | @import (once) "vars";
2 |
3 | *[dir=ltr] {
4 | direction: ltr;
5 | unicode-bidi: embed;
6 | }
7 |
8 | *[dir=rtl] {
9 | direction: rtl;
10 | unicode-bidi: embed;
11 | }
12 |
13 | bdo[dir=ltr] {
14 | direction: ltr;
15 | unicode-bidi: bidi-override;
16 | }
17 |
18 | bdo[dir=rtl] {
19 | direction: rtl;
20 | unicode-bidi: bidi-override;
21 | }
22 |
23 | *[dir=rtl] ul, *[dir=rtl] ol, ul[dir=rtl], ol[dir=rtl] {
24 | margin-right: .3125rem;
25 | margin-left: 0;
26 | padding-right: .625rem;
27 |
28 | li {
29 |
30 | & ul, & ol {
31 | padding-right: 1.5625rem;
32 | padding-left: 0;
33 | }
34 | }
35 | }
36 |
37 | *[dir=rtl] dl, dl[dir=rtl] {
38 |
39 | dd {
40 | margin-right: .9375rem;
41 | margin-left: 0;
42 | }
43 |
44 | &.horizontal {
45 | dt {
46 | float: right;
47 | width: 10rem;
48 | overflow: hidden;
49 | clear: left;
50 | text-align: right;
51 | text-overflow: ellipsis;
52 | white-space: nowrap;
53 | }
54 |
55 | dd {
56 | margin-right: 11.25rem;
57 | margin-left: 0;
58 | }
59 | }
60 | }
61 |
62 | *[dir=rtl] blockquote, blockquote[dir=rtl] {
63 | margin: .625rem 0;
64 | padding: 0 .625rem 0 0;
65 | border-left: none;
66 | border-right: .25rem @grayLight solid;
67 | }
68 |
69 |
70 | // Inputs
71 | *[dir=rtl] .input-control, .input-control[dir=rtl] {
72 | &.text, &.select, &.file, &.password, &.number, &.email, &.tel {
73 | .button, .button-group {
74 | right: auto;
75 | left: 0;
76 | }
77 |
78 | .prepend-icon {
79 | left: auto;
80 | right: 4px;
81 | }
82 |
83 | .prepend-icon ~ input {
84 | padding-left: 0;
85 | padding-right: 30px;
86 | }
87 | }
88 | }
89 |
90 | *[dir=rtl] .grid .row > .cell {
91 | float: right;
92 | }
--------------------------------------------------------------------------------
/src/assets/less/carousel.less:
--------------------------------------------------------------------------------
1 | @import (once) "vars";
2 | @import (once) "typography";
3 | @import (once) "utils";
4 |
5 | .carousel {
6 | display: block;
7 | width: 100%;
8 | position: relative;
9 | min-height: 100px;
10 | overflow: hidden;
11 |
12 | .slide {
13 | top: 0;
14 | left: 0;
15 | position: absolute;
16 | display: block;
17 | width: 100%;
18 | height: 100%;
19 | min-height: 100%;
20 | .clear-float;
21 | }
22 |
23 | [class*="carousel-switch"], .carousel-bullets {
24 | position: absolute;
25 | display: block;
26 | z-index: @zindexDropdown - 1;
27 | .no-user-select;
28 | }
29 |
30 | .carousel-bullets {
31 | left: 0;
32 | right: 0;
33 | bottom: .625rem;
34 |
35 | .align-center;
36 |
37 | .carousel-bullet {
38 | display: inline-block;
39 | float: none;
40 | width: .625rem;
41 | height: .625rem;
42 | background-color: #ababab;
43 | box-shadow: none;
44 | border-radius: 50%;
45 | margin-right: .625rem;
46 | cursor: pointer;
47 | border: 1px @white solid;
48 |
49 | &:last-child {
50 | margin-right: 0;
51 | }
52 |
53 | &.bullet-on {
54 | background-color: @lightCyan;
55 | }
56 |
57 | &:hover {
58 | }
59 | }
60 | }
61 |
62 | &.square-bullets {
63 | .carousel-bullet {
64 | border-radius: 0 ;
65 | }
66 | }
67 |
68 | .carousel-switch-next, .carousel-switch-prev {
69 | width: auto;
70 | line-height: 4rem;
71 | height: 4rem;
72 | text-decoration: none;
73 | margin-top: -2rem;
74 | top: 50%;
75 | font-size: 4rem;
76 | font-weight: 300;
77 | color: @grayLighter;
78 | cursor: pointer;
79 | vertical-align: middle;
80 | padding: 0;
81 |
82 | &:hover {
83 | color: @white;
84 | .text-shadow;
85 | }
86 |
87 | img {
88 | max-width: 64px;
89 | max-height: 64px;
90 | }
91 | }
92 |
93 | .carousel-switch-next {
94 | right: 0;
95 | left: auto;
96 | }
97 |
98 | .carousel-switch-prev {
99 | left: 0;
100 | right: auto;
101 | }
102 | }
--------------------------------------------------------------------------------
/src/assets/less/panels.less:
--------------------------------------------------------------------------------
1 | @import (once) "vars";
2 | @import (once) "typography";
3 | @import (once) "utils";
4 |
5 | .panel {
6 | display: block;
7 | position: relative;
8 | background-color: @white;
9 |
10 | & > .heading, & > .content {
11 | display: block;
12 | position: relative;
13 | color: @dark;
14 | }
15 |
16 | & > .heading {
17 | padding: .625rem 0 ;
18 | color: @white;
19 | background-color: @cyan;
20 | cursor: default;
21 | vertical-align: middle;
22 | z-index: 2;
23 | height: 2.625rem;
24 | .bottom-shadow;
25 |
26 | .sub-header;
27 | .no-user-select;
28 |
29 | & > .title {
30 | margin-left: .625rem;
31 | }
32 |
33 | & > .icon + .title {
34 | margin-left: 3.625rem;
35 | }
36 |
37 | & > .icon {
38 | position: absolute;
39 | background-color: @darkCyan;
40 | top: 0;
41 | left: 0;
42 | bottom: 0;
43 | vertical-align: middle;
44 | //line-height: 1;
45 | height: 2.625rem;
46 | width: 2.625rem;
47 | text-align: center;
48 | padding: .625rem;
49 | }
50 | }
51 |
52 | & > .content {
53 | //padding: .625rem;
54 | background-color: #e8f1f4;
55 | z-index: 1;
56 | .text-default;
57 | }
58 |
59 | &.collapsible {
60 | & > .heading {
61 | cursor: pointer;
62 |
63 | &:before {
64 | content: "\2212";
65 | display: block;
66 | position: absolute;
67 | top: 50%;
68 | margin-top: -1.3rem;
69 | right: .625rem;
70 | color: inherit;
71 | vertical-align: middle;
72 | font-size: 2rem;
73 | }
74 | }
75 | }
76 |
77 | &.collapsed {
78 | & > .heading {
79 | &:before {
80 | content: "\002b";
81 | }
82 | }
83 |
84 | & > .content {
85 | display: none;
86 | }
87 | }
88 |
89 | &.alert, &.error, &.danger {
90 | & > .heading {
91 | background-color: @red;
92 | }
93 | }
94 |
95 | &.warning {
96 | & > .heading {
97 | background-color: @orange;
98 | }
99 | }
100 |
101 | &.success {
102 | & > .heading {
103 | background-color: @green;
104 | }
105 | }
106 | }
--------------------------------------------------------------------------------
/src/assets/less/toolbars.less:
--------------------------------------------------------------------------------
1 | @import (once) "vars";
2 | @import (once) "buttons";
3 | @import (once) "utils";
4 |
5 | .toolbar {
6 | position: relative;
7 | .clear-float;
8 | }
9 |
10 | .toolbar-section {
11 | position: relative;
12 | padding-left: .5725rem;
13 | margin: .125rem;
14 | float: left;
15 | width: auto;
16 |
17 | &.no-divider {
18 | &:before {
19 | display: none;
20 | }
21 | }
22 |
23 | &:before {
24 | position: absolute;
25 | content: "";
26 | width: .325rem;
27 | height: 100%;
28 | left: 0;
29 | background-color: @grayLighter;
30 | cursor: move;
31 | }
32 | }
33 |
34 | .toolbar {
35 | .toolbar-button {
36 | .square-button;
37 | margin: 0;
38 | }
39 | }
40 |
41 | .toolbar-group, .toolbar-section {
42 | display: inline-block;
43 |
44 | &.condensed {
45 | .clear-float;
46 |
47 | .button, .toolbar-button {
48 | display: block;
49 | float: left;
50 | }
51 | }
52 | }
53 |
54 | .toolbar-group {
55 | &-check {
56 | .toolbar-button {
57 | &.checked {
58 | background-color: @lightCyan;
59 | color: @white;
60 | border-color: @lightCyan;
61 | }
62 | }
63 | }
64 |
65 | &-radio {
66 | .toolbar-button {
67 | &.checked {
68 | background-color: @lightCyan;
69 | color: @white;
70 | border-color: @lightCyan;
71 | }
72 | }
73 | }
74 | }
75 |
76 | .toolbar {
77 | &.rounded {
78 | & > .toolbar-button, & > .toolbar-section .toolbar-button {
79 | border-radius: .3125rem;
80 | }
81 |
82 | .toolbar-section {
83 | &:before {
84 | border-radius: .3125rem;
85 | }
86 | }
87 | }
88 | }
89 |
90 | .v-toolbar {
91 | .toolbar;
92 | float: left;
93 |
94 | .toolbar-section {
95 | padding-left: 0;
96 | padding-top: .5725rem;
97 |
98 | &:before {
99 | width: 100%;
100 | top: 0;
101 | height: .325rem;
102 | }
103 | }
104 |
105 | .toolbar-button {
106 | display: block;
107 | margin-bottom: .25rem;
108 | }
109 |
110 | &.no-divider {
111 | .toolbar-section:before {display: none}
112 | }
113 | }
--------------------------------------------------------------------------------
/src/assets/less/datatable.less:
--------------------------------------------------------------------------------
1 | /*
2 | * Third-party plugin DataTables
3 | * Plugin home page: http://datatables.net/
4 | */
5 |
6 | @import (once) "vars";
7 | @import (once) "utils";
8 | @import (once) "tables";
9 | @import (once) "pagination";
10 |
11 | .dataTable {
12 | .table;
13 | clear: both;
14 | }
15 |
16 | .dataTable {
17 | .sorting {
18 | .table > .sortable-column;
19 | }
20 |
21 | .sorting_asc, .sorting_desc {
22 | position: relative;
23 | &:after {
24 | position: absolute;
25 | content: "";
26 | width: 1rem;
27 | height: 1rem;
28 | left: 100%;
29 | margin-left: -20px;
30 | top: 50%;
31 | margin-top: -.5rem;
32 | color: inherit;
33 | line-height: 1;
34 | font-size: 1.1rem;
35 | }
36 | }
37 | .sorting_asc {
38 | .table > .sortable-column > .sort-asc;
39 | }
40 | .sorting_desc {
41 | .table > .sortable-column > .sort-desc;
42 | }
43 | }
44 |
45 | .dataTables_paginate {
46 | .pagination;
47 | float: left;
48 | width: 50%;
49 | margin: 0;
50 |
51 | .paginate_button {
52 | .pagination > .item;
53 | }
54 |
55 | .ellipsis {
56 | display: block;
57 | float: left;
58 | padding: .25rem .625rem;
59 | }
60 | }
61 |
62 | .dataTables_info {
63 | padding: 5px;
64 | background-color: @grayLighter;
65 | font-size: .875rem;
66 | float: right;
67 | }
68 |
69 | .dataTables_length {
70 | display: block;
71 | float: left;
72 | margin: .625rem 0;
73 |
74 | select {
75 | .no-appearance;
76 | margin: 0 .125rem;
77 | padding: .3125rem;
78 | border: 1px #d9d9d9 solid;
79 |
80 | &:focus {
81 | outline: none;
82 | border-color: @dark;
83 | }
84 | }
85 | }
86 |
87 | .dataTables_filter {
88 | display: block;
89 | float: right;
90 | margin: .625rem 0;
91 |
92 | label > input {
93 | margin: 0 0 0 .25rem;
94 | }
95 |
96 | input {
97 | .no-appearance;
98 | padding: .3125rem;
99 | border: 1px #d9d9d9 solid;
100 |
101 | &:focus {
102 | outline: none;
103 | border-color: @dark;
104 | }
105 | }
106 | }
107 |
--------------------------------------------------------------------------------
/src/assets/less/stepper.less:
--------------------------------------------------------------------------------
1 | @import (once) "vars";
2 | @import (once) "utils";
3 |
4 | .stepper {
5 | margin: 10px 0;
6 | width: 100%;
7 | .clear-float;
8 |
9 | & > ul {
10 | counter-reset:li;
11 | border-top: 1px @dark dotted;
12 | position: relative;
13 | padding: 0;
14 | margin: 30px 0;
15 | width: 100%;
16 | display: block;
17 |
18 | li {
19 | list-style: none;
20 | float: left;
21 | width: 2em;
22 | height: 2em;
23 | margin-top: -1em;
24 | position: absolute;
25 | left: 0;
26 | background:#666;
27 | cursor: pointer;
28 | font-size: .875rem;
29 |
30 | &:before {
31 | content:counter(li);
32 | counter-increment:li;
33 | position:absolute;
34 | box-sizing:border-box;
35 | padding:.3em 10px;
36 | color:#fff;
37 | font-weight:bold;
38 | font-family:"Helvetica Neue", Arial, sans-serif;
39 | font-size: .9em;
40 | text-align:center;
41 | }
42 |
43 | &:hover {
44 | background-color: @grayLight;
45 | }
46 |
47 | &.current, &.complete {
48 | transition: all 0.2s ease;
49 | }
50 |
51 | &.current {
52 | background-color: @cyan;
53 | //.scale(1.5);
54 |
55 | &:hover {
56 | background-color: @lighterBlue;
57 | }
58 | }
59 | &.complete {
60 | background-color: @green;
61 |
62 | &:before {
63 | }
64 |
65 | &:hover {
66 | background-color: @lightGreen;
67 | }
68 | }
69 | }
70 | }
71 | &.cycle {
72 | li {
73 | border-radius: 50%;
74 | }
75 | }
76 | &.diamond {
77 | li {
78 | .rotate(45deg);
79 | &:before {
80 | .rotate(-45deg);
81 | }
82 | }
83 |
84 | }
85 | }
--------------------------------------------------------------------------------
/config/index.js:
--------------------------------------------------------------------------------
1 | 'use strict'
2 | // Template version: 1.3.1
3 | // see http://vuejs-templates.github.io/webpack for documentation.
4 |
5 | const path = require('path')
6 |
7 | module.exports = {
8 | dev: {
9 |
10 | // Paths
11 | assetsSubDirectory: 'static',
12 | assetsPublicPath: '/',
13 | proxyTable: {},
14 |
15 | // Various Dev Server settings
16 | host: 'localhost', // can be overwritten by process.env.HOST
17 | port: 8080, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined
18 | autoOpenBrowser: true,
19 | errorOverlay: true,
20 | notifyOnErrors: true,
21 | poll: false, // https://webpack.js.org/configuration/dev-server/#devserver-watchoptions-
22 |
23 |
24 | /**
25 | * Source Maps
26 | */
27 |
28 | // https://webpack.js.org/configuration/devtool/#development
29 | devtool: 'cheap-module-eval-source-map',
30 |
31 | // If you have problems debugging vue-files in devtools,
32 | // set this to false - it *may* help
33 | // https://vue-loader.vuejs.org/en/options.html#cachebusting
34 | cacheBusting: true,
35 |
36 | cssSourceMap: true
37 | },
38 |
39 | build: {
40 | // Template for index.html
41 | index: path.resolve(__dirname, '../dist/index.html'),
42 |
43 | // Paths
44 | assetsRoot: path.resolve(__dirname, '../dist'),
45 | assetsSubDirectory: 'static',
46 | assetsPublicPath: '/',
47 |
48 | /**
49 | * Source Maps
50 | */
51 |
52 | productionSourceMap: true,
53 | // https://webpack.js.org/configuration/devtool/#production
54 | devtool: '#source-map',
55 |
56 | // Gzip off by default as many popular static hosts such as
57 | // Surge or Netlify already gzip all static assets for you.
58 | // Before setting to `true`, make sure to:
59 | // npm install --save-dev compression-webpack-plugin
60 | productionGzip: false,
61 | productionGzipExtensions: ['js', 'css'],
62 |
63 | // Run the build command with an extra argument to
64 | // View the bundle analyzer report after build finishes:
65 | // `npm run build --report`
66 | // Set to `true` or `false` to always turn it on or off
67 | bundleAnalyzerReport: process.env.npm_config_report
68 | }
69 | }
70 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "jntoo-win10",
3 | "version": "1.0.0",
4 | "description": "A Vue.js project",
5 | "author": "jntoo <274987096@qq.com>",
6 | "repository": "https://github.com/jntoo/vue-win10.git",
7 | "scripts": {
8 | "dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js",
9 | "analyze": "NODE_ENV=production npm_config_report=true npm run build",
10 | "start": "npm run dev",
11 | "build": "node build/build.js"
12 | },
13 | "dependencies": {
14 | "axios": "^0.18.0",
15 | "less": "^3.0.1",
16 | "less-loader": "^4.1.0",
17 | "qs": "^6.5.1",
18 | "vue": "^2.5.2",
19 | "vue-axios": "^2.1.1",
20 | "vue-router": "^3.0.1"
21 | },
22 | "devDependencies": {
23 | "autoprefixer": "^7.1.2",
24 | "babel-core": "^6.22.1",
25 | "babel-helper-vue-jsx-merge-props": "^2.0.3",
26 | "babel-loader": "^7.1.1",
27 | "babel-plugin-syntax-jsx": "^6.18.0",
28 | "babel-plugin-transform-runtime": "^6.22.0",
29 | "babel-plugin-transform-vue-jsx": "^3.5.0",
30 | "babel-preset-env": "^1.3.2",
31 | "babel-preset-stage-2": "^6.22.0",
32 | "chalk": "^2.0.1",
33 | "copy-webpack-plugin": "^4.0.1",
34 | "css-loader": "^0.28.0",
35 | "extract-text-webpack-plugin": "^3.0.0",
36 | "file-loader": "^1.1.4",
37 | "friendly-errors-webpack-plugin": "^1.6.1",
38 | "html-webpack-plugin": "^2.30.1",
39 | "node-notifier": "^5.1.2",
40 | "optimize-css-assets-webpack-plugin": "^3.2.0",
41 | "ora": "^1.2.0",
42 | "portfinder": "^1.0.13",
43 | "postcss-import": "^11.0.0",
44 | "postcss-loader": "^2.0.8",
45 | "postcss-url": "^7.2.1",
46 | "rimraf": "^2.6.0",
47 | "semver": "^5.3.0",
48 | "shelljs": "^0.7.6",
49 | "uglifyjs-webpack-plugin": "^1.1.1",
50 | "url-loader": "^0.5.8",
51 | "vue-loader": "^13.3.0",
52 | "vue-style-loader": "^3.0.1",
53 | "vue-template-compiler": "^2.5.2",
54 | "webpack": "^3.6.0",
55 | "webpack-bundle-analyzer": "^2.11.1",
56 | "webpack-dev-server": "^2.9.1",
57 | "webpack-merge": "^4.1.0"
58 | },
59 | "engines": {
60 | "node": ">= 6.0.0",
61 | "npm": ">= 3.0.0"
62 | },
63 | "browserslist": [
64 | "> 1%",
65 | "last 2 versions",
66 | "not ie <= 8"
67 | ]
68 | }
69 |
--------------------------------------------------------------------------------
/src/assets/less/treeview.less:
--------------------------------------------------------------------------------
1 | @import (once) "vars";
2 | @import (once) "utils";
3 |
4 | // leaf
5 | // node
6 |
7 | .treeview {
8 | margin: 0;
9 | padding: 0;
10 | display: block;
11 | font-size: .75rem;
12 |
13 | ul {
14 | margin: 0;
15 | padding: 0;
16 | list-style: none;
17 | width: 100%;
18 | font-size: inherit;
19 | }
20 |
21 | li {
22 | font-size: inherit;
23 | padding: 2px 16px;
24 | cursor: pointer;
25 | position: relative;
26 | color: @gray;
27 | vertical-align: middle;
28 | .no-user-select;
29 |
30 | &.active > .leaf {
31 | font-weight: bold;
32 | }
33 |
34 | &.disabled {
35 | cursor: default;
36 | color: @grayLight;
37 |
38 | &:hover > .leaf {
39 | color: @grayLight;
40 | }
41 | }
42 | }
43 |
44 | li {
45 | .input-control {
46 | margin: 0 .3125rem 0 0;
47 | height: 1rem;
48 | line-height: .625rem;
49 | min-height: 0;
50 |
51 | .check {
52 | line-height: 1rem;
53 | }
54 | }
55 | }
56 |
57 | ul > li > .leaf {
58 | &:hover {
59 | color: @dark;
60 | }
61 | }
62 |
63 | .leaf {
64 | vertical-align: middle;
65 | display: inline-block;
66 | color: inherit;
67 | }
68 |
69 | .leaf {
70 | .icon {
71 | width: 1rem;
72 | height: 1rem;
73 | text-align: center;
74 | }
75 | }
76 |
77 | .node-toggle {
78 | position: absolute;
79 | left: 0;
80 | top: 8px;
81 | width: 8px;
82 | height: 8px;
83 |
84 | &:before {
85 | position: absolute;
86 | display: block;
87 | left: 0;
88 | top: -3px;
89 | height: 0;
90 | content: '';
91 | width: 0;
92 | border-left: 7px solid transparent;
93 | border-top: 7px solid transparent;
94 | border-bottom: 7px @cyan solid;
95 | }
96 | }
97 |
98 | li:hover > .node-toggle {
99 | &:before {
100 | border-bottom-color: @darkCyan;
101 | }
102 | }
103 |
104 | .node {
105 | &.collapsed {
106 | & > .node-toggle {
107 | &:before {
108 | left: -4px;
109 | .rotate-45;
110 | border-bottom-color: @grayLight;
111 | }
112 | }
113 |
114 | &:hover {
115 | & > .node-toggle {
116 | &:before {
117 | border-bottom-color: @darkCyan;
118 | }
119 | }
120 | }
121 |
122 | & > ul {
123 | display: none;
124 | }
125 | }
126 | }
127 | }
128 |
--------------------------------------------------------------------------------
/src/components/HelloWorld.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
{{ msg }}
4 |
Essential Links
5 |
48 |
Ecosystem
49 |
83 |
84 |
85 |
86 |
96 |
97 |
98 |
114 |
--------------------------------------------------------------------------------
/src/assets/less/dialog.less:
--------------------------------------------------------------------------------
1 | @import (once) "vars";
2 | @import (once) "utils";
3 |
4 | .dialog-overlay {
5 | background-color: @transparent;
6 | position: fixed;
7 | top: 0;
8 | left: 0;
9 | right: 0;
10 | bottom: 0;
11 | min-height: 100%;
12 | min-width: 100%;
13 | z-index: @zindexModal - 1;
14 | }
15 |
16 | .dialog {
17 | position: fixed;
18 | display: block;
19 | width: auto;
20 | height: auto;
21 | float: left;
22 | background-color: @white;
23 | color: @dark;
24 | z-index: @zindexModal;
25 |
26 | .block-shadow;
27 |
28 | .dialog-close-button {
29 | position: absolute;
30 | height: 1.5rem;
31 | width: 1.5rem;
32 | min-height: 1.5rem;
33 | text-align: center;
34 | vertical-align: middle;
35 | font-size: 1rem;
36 | font-weight: normal;
37 | padding: .125rem 0 .625rem 0;
38 | z-index: 3;
39 | outline: none;
40 | cursor: pointer;
41 |
42 | background-color: @winFlatBackgroundColor;
43 | color: @winFlatSystemButtonRestColor;
44 | top: .25rem;
45 | right: .25rem;
46 |
47 | &:hover {
48 | background-color: @winFlatSystemButtonHoverBackground;
49 | color: @winFlatSystemButtonActiveColor;
50 | &:after {
51 | border-color: @winFlatSystemButtonActiveColor;
52 | }
53 | }
54 | &:active {
55 | background-color: @winFlatSystemButtonActiveBackground;
56 | color: @white;
57 | }
58 | &:after {
59 | border-color: @winFlatSystemButtonRestColor;
60 | content: '\D7';
61 | line-height: 1;
62 | }
63 | }
64 |
65 | &.success {
66 | background-color: @green;
67 | color: @white;
68 | .dialog-close-button {
69 | background-color: @lightGreen;
70 | color: @white;
71 |
72 | &:active {
73 | background-color: @darkGreen;
74 | }
75 | }
76 | }
77 | &.warning {
78 | background-color: @orange;
79 | color: @white;
80 | .dialog-close-button {
81 | background-color: @lightOrange;
82 | color: @white;
83 |
84 | &:active {
85 | background-color: @darkOrange;
86 | }
87 | }
88 | }
89 | &.alert {
90 | background-color: @red;
91 | color: @white;
92 | .dialog-close-button {
93 | background-color: @lightRed;
94 | color: @white;
95 |
96 | &:active {
97 | background-color: @darkRed;
98 | }
99 | }
100 | }
101 | &.info {
102 | background-color: @cyan;
103 | color: @white;
104 | .dialog-close-button {
105 | background-color: @lightCyan;
106 | color: @white;
107 |
108 | &:active {
109 | background-color: @darkCyan;
110 | }
111 | }
112 | }
113 | }
--------------------------------------------------------------------------------
/src/assets/less/wizard2.less:
--------------------------------------------------------------------------------
1 | @import (once) "utils";
2 |
3 | .wizard2 {
4 | counter-reset: div;
5 | position: relative;
6 | width: 100%;
7 | .clear-float;
8 |
9 | .step {
10 | width: auto;
11 | //height: auto;
12 | display: block;
13 | float: left;
14 | position: relative;
15 | z-index: 1;
16 | padding: 0 0 3rem;
17 | }
18 |
19 | .step:before {
20 | content: counter(div);
21 | counter-increment: div;
22 | position: absolute;
23 | font-size: .8rem;
24 | bottom: 20px;
25 | width: 24px;
26 | text-align: center;
27 | }
28 |
29 | .step {
30 |
31 | &.active {
32 | border: 0;
33 | //min-width: 200px;
34 |
35 | &:before {
36 | visibility: hidden;
37 | }
38 | }
39 |
40 | &.prev {
41 | border-left: 24px solid @grayLighter;
42 | border-right: 1px solid darken(@grayLighter, 3%);
43 | width: 0 ;
44 |
45 | &:before {
46 | left: 0 ;
47 | margin-left: -24px;
48 | color: @dark;
49 | }
50 | }
51 |
52 | &.next {
53 | border-left: 1px solid darken(@grayLighter, 3%);
54 | border-right: 24px solid @cyan;
55 | width: 0;
56 |
57 | &:before {
58 | left: 100%;
59 | color: @white;
60 | }
61 | }
62 |
63 | &.next + .next{
64 | border-color: darken(@cyan, 5%);
65 | }
66 | &.next + .next + .next{
67 | border-color: darken(@cyan, 10%);
68 | }
69 | &.next + .next + .next + .next{
70 | border-color: darken(@cyan, 15%);
71 | }
72 | &.next + .next + .next + .next + .next{
73 | border-color: darken(@cyan, 20%);
74 | }
75 | &.next + .next + .next + .next + .next + .next{
76 | border-color: darken(@cyan, 30%);
77 | }
78 | &.next + .next + .next + .next + .next + .next + .next{
79 | border-color: darken(@cyan, 35%);
80 | }
81 | &.next + .next + .next + .next + .next + .next + .next + .next{
82 | border-color: darken(@cyan, 40%);
83 | }
84 | &.next + .next + .next + .next + .next + .next + .next + .next + .next{
85 | border-color: darken(@cyan, 45%);
86 | }
87 | }
88 |
89 | .step-content {
90 | //height: 100%;
91 | width: auto;
92 | overflow: hidden;
93 | padding: .625rem;
94 | }
95 |
96 | .step.prev, .step.next {
97 | .step-content {
98 | width: 0 ;
99 | padding: 0 ;
100 | }
101 | }
102 | }
103 |
104 | .wizard2 {
105 | .action-bar {
106 | padding: 0 .625rem;
107 | position: absolute;
108 | bottom: 10px;
109 | text-align: right;
110 | z-index: 2;
111 | .clear-float;
112 |
113 | .button {
114 | margin: 0 .125rem;
115 | opacity: .6;
116 |
117 | &:hover {
118 | opacity: 1;
119 | }
120 | }
121 | }
122 | }
--------------------------------------------------------------------------------
/src/assets/less/transform.less:
--------------------------------------------------------------------------------
1 | @import (once) "utils";
2 |
3 | /* transform functions */
4 | .perspective(@perspective) {
5 | transform: perspective(@perspective);
6 | }
7 | .rotate(@degrees) {
8 | transform: rotate(@degrees);
9 | }
10 | .rotateX(@degrees) {
11 | transform: rotateX(@degrees);
12 | }
13 | .rotateY(@degrees) {
14 | transform: rotateY(@degrees);
15 | }
16 | .rotateZ(@degrees) {
17 | transform: rotateZ(@degrees);
18 | }
19 | .scale(@ratio) {
20 | transform: scale(@ratio);
21 | }
22 | .scaleX(@ratio) {
23 | transform: scaleX(@ratio);
24 | }
25 | .scaleY(@ratio) {
26 | transform: scaleY(@ratio);
27 | }
28 | .translate(@x: 0, @y: 0) {
29 | transform: translate(@x, @y);
30 | }
31 | .skew(@x: 0, @y: 0) {
32 | transform: skew(@x, @y);
33 | }
34 | .translate3d(@x: 0, @y: 0, @z: 0) {
35 | transform: translate(@x, @y, @z);
36 | }
37 |
38 | .transformOrigin(@origin) {
39 | transform-origin: @origin;
40 | }
41 |
42 | .transition(@time: 1s, @func: ease, @target: all){
43 | transition: @target @time @func;
44 | }
45 |
46 | .translateX(@x: 0) {
47 | transform: translateX(@x);
48 | }
49 | .translateY(@y: 0) {
50 | transform: translateY(@y);
51 | }
52 |
53 | .rotate45 {.rotate(45deg);}
54 | .rotate90 {.rotate(90deg);}
55 | .rotate135 {.rotate(135deg);}
56 | .rotate180 {.rotate(180deg);}
57 | .rotate225 {.rotate(225deg);}
58 | .rotate270 {.rotate(270deg);}
59 | .rotate360 {.rotate(360deg);}
60 |
61 | .rotate-45 {.rotate(-45deg);}
62 | .rotate-90 {.rotate(-90deg);}
63 | .rotate-135 {.rotate(-135deg);}
64 | .rotate-180 {.rotate(-180deg);}
65 | .rotate-225 {.rotate(-225deg);}
66 | .rotate-270 {.rotate(-270deg);}
67 | .rotate-360 {.rotate(-360deg);}
68 |
69 | .rotateX45 {.rotateX(45deg);}
70 | .rotateX90 {.rotateX(90deg);}
71 | .rotateX135 {.rotateX(135deg);}
72 | .rotateX180 {.rotateX(180deg);}
73 | .rotateX225 {.rotateX(225deg);}
74 | .rotateX270 {.rotateX(270deg);}
75 | .rotateX360 {.rotateX(360deg);}
76 |
77 | .rotateX-45 {.rotateX(-45deg);}
78 | .rotateX-90 {.rotateX(-90deg);}
79 | .rotateX-135 {.rotateX(-135deg);}
80 | .rotateX-180 {.rotateX(-180deg);}
81 | .rotateX-225 {.rotateX(-225deg);}
82 | .rotateX-270 {.rotateX(-270deg);}
83 | .rotateX-360 {.rotateX(-360deg);}
84 |
85 | .rotateY45 {.rotateY(45deg);}
86 | .rotateY90 {.rotateY(90deg);}
87 | .rotateY135 {.rotateY(135deg);}
88 | .rotateY180 {.rotateY(180deg);}
89 | .rotateY225 {.rotateY(225deg);}
90 | .rotateY270 {.rotateY(270deg);}
91 | .rotateY360 {.rotateY(360deg);}
92 |
93 | .rotateY-45 {.rotateY(-45deg);}
94 | .rotateY-90 {.rotateY(-90deg);}
95 | .rotateY-135 {.rotateY(-135deg);}
96 | .rotateY-180 {.rotateY(-180deg);}
97 | .rotateY-225 {.rotateY(-225deg);}
98 | .rotateY-270 {.rotateY(-270deg);}
99 | .rotateY-360 {.rotateY(-360deg);}
100 |
101 |
--------------------------------------------------------------------------------
/src/assets/less/grid.less:
--------------------------------------------------------------------------------
1 | @import (once) "vars";
2 | @import (once) "utils";
3 | @import (once) "transform";
4 |
5 |
6 | .grid {
7 | display: block;
8 | position: relative;
9 | margin: .625rem 0;
10 | .clear-float;
11 |
12 | .row {
13 | width: 100%;
14 | display: block;
15 | .margin(0, 0, @gridMargin, 0);
16 | .clear-float;
17 |
18 | &:last-child {
19 | margin-bottom: 0;
20 | }
21 |
22 | & > .cell {
23 | display: block;
24 | position: relative;
25 | float: left;
26 | width: 100%;
27 | min-height: 10px;
28 | .margin(0, 0, 0, @gridMargin);
29 | &:first-child {
30 | margin-left: 0;
31 | }
32 | }
33 |
34 | .generate-cell(@gridColumns);
35 |
36 | .generate-cell(@n, @i: 2) when (@i =< @n){
37 | @width: 0% + ( 100 - (@i - 1) * @gridMargin ) / @i;
38 |
39 | &.cells@{i} {
40 | & > .cell {
41 | width: (@width);
42 |
43 | .generate-colspan(@i);
44 | .generate-colspan(@j, @k: 2) when (@k =< @j){
45 | &.colspan@{k} {
46 | width: @width * @k + ((@k - 1) * @gridMargin);
47 | }
48 | .generate-colspan(@j, (@k + 1));
49 | }
50 |
51 | .generate-offset(@i);
52 | .generate-offset(@j, @k: 1) when (@k =< @j){
53 | &.offset@{k} {
54 | margin-left: @width * @k + ((@k - 1) * @gridMargin) + @gridMargin;
55 | }
56 | .generate-offset(@j, (@k + 1));
57 | }
58 | }
59 | }
60 |
61 | .generate-cell(@n, (@i + 1));
62 | }
63 | }
64 |
65 | .row:empty {
66 | display: none;
67 | }
68 | }
69 |
70 | .grid.condensed {
71 | .row {
72 | .margin(0, 0, @gridMarginCondensed, 0);
73 |
74 | &:last-child {
75 | margin-bottom: 0;
76 | }
77 |
78 | & > .cell {
79 | .margin(0, 0, 0, @gridMarginCondensed);
80 | }
81 |
82 | .generate-cell(@gridColumns);
83 |
84 | .generate-cell(@n, @i: 2) when (@i =< @n){
85 | @width: 0% + ( 100 - (@i - 1) * @gridMarginCondensed ) / @i;
86 |
87 | &.cells@{i} {
88 | & > .cell {
89 | width: (@width);
90 |
91 | .generate-colspan(@i);
92 | .generate-colspan(@j, @k: 2) when (@k =< @j){
93 | &.colspan@{k} {
94 | width: @width * @k + ((@k - 1) * @gridMarginCondensed);
95 | }
96 | .generate-colspan(@j, (@k + 1));
97 | }
98 |
99 | .generate-offset(@i);
100 | .generate-offset(@j, @k: 1) when (@k =< @j){
101 | &.offset@{k} {
102 | margin-left: @width * @k + ((@k - 1) * @gridMarginCondensed);
103 | }
104 | .generate-offset(@j, (@k + 1));
105 | }
106 |
107 | }
108 | }
109 |
110 | .generate-cell(@n, (@i + 1));
111 | }
112 | }
113 | }
114 |
115 |
--------------------------------------------------------------------------------
/src/components/win10/tile.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/src/Vue-extend.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by JnToo on 2018/3/28.
3 | */
4 | import jdk from './jdk/extend'
5 |
6 | function install(Vue) {
7 | Vue.prototype.$remove = function (target,key) {
8 | if(jdk.isObject(key)){
9 | jdk.each(target , (index,obj)=>{
10 | if(obj === key){
11 | this.$delete(target , index);
12 | }
13 | });
14 | }else{
15 | this.$delete(target , key);
16 | }
17 | }
18 | Vue.$eventUntil = {
19 | // 视能力分别使用dom0||dom2||IE方式 来绑定事件
20 | // 下面的顺序:标准dom2,IE dom2, dom
21 | // 参数: 操作的元素,事件名称 ,事件处理程序
22 | addEvent : function(element, type, handler) {
23 | if (element.addEventListener) {
24 | //事件类型、需要执行的函数、是否捕捉
25 | element.addEventListener(type, handler, false);
26 | } else if (element.attachEvent) {
27 | element.attachEvent('on' + type, function() {
28 | handler.call(element);
29 | });
30 | } else {
31 | element['on' + type] = handler;
32 | }
33 | },
34 | // 移除事件
35 | removeEvent : function(element, type, handler) {
36 | if (element.removeEnentListener) {
37 | element.removeEnentListener(type, handler, false);
38 | } else if (element.datachEvent) {
39 | element.detachEvent('on' + type, handler);
40 | } else {
41 | element['on' + type] = null;
42 | }
43 | },
44 | // 阻止事件 (主要是事件冒泡,因为IE不支持事件捕获)
45 | stopPropagation : function(ev) {
46 | if (ev.stopPropagation) {
47 | ev.stopPropagation();// 标准w3c
48 | } else {
49 | ev.cancelBubble = true;// IE
50 | }
51 | },
52 | // 取消事件的默认行为
53 | preventDefault : function(event) {
54 | if (event.preventDefault) {
55 | event.preventDefault();// 标准w3c
56 | } else {
57 | event.returnValue = false;// IE
58 | }
59 | },
60 | // 获取事件目标
61 | getTarget : function(event) {
62 | // 标准W3C 和 IE
63 | return event.target || event.srcElement;
64 | },
65 | // 获取event对象的引用,取到事件的所有信息,确保随时能使用event;
66 | getEvent : function(e) {
67 | var ev = e || window.event;
68 | if (!ev) {
69 | var c = this.getEvent.caller;
70 | while (c) {
71 | ev = c.arguments[0];
72 | if (ev && Event == ev.constructor) {
73 | break;
74 | }
75 | c = c.caller;
76 | }
77 | }
78 | return ev;
79 | }
80 | }
81 | }
82 |
83 | export default install
--------------------------------------------------------------------------------
/src/assets/less/accordion.less:
--------------------------------------------------------------------------------
1 | @import (once) "vars";
2 | @import (once) "utils";
3 | @import (once) "transform";
4 |
5 | .accordion {
6 | & > .frame {
7 | margin-top: 1px;
8 |
9 | &:first-child {
10 | margin-top: 0;
11 | }
12 |
13 | & > .heading {
14 | display: block;
15 | padding: 8px 16px 8px 20px;
16 | background-color: lighten(@grayLighter, 3%);
17 | cursor: pointer;
18 | font-size: .6875rem;
19 | text-transform: uppercase;
20 | font-weight: bold;
21 | position: relative;
22 | border: 1px @grayLighter solid;
23 | overflow: hidden;
24 | z-index: 2;
25 | .no-user-select;
26 | .transition(.3s);
27 |
28 | &:before {
29 | position: absolute;
30 | display: block;
31 | left: 4px;
32 | top: 6px;
33 | content: '';
34 | width: 0;
35 | height: 0;
36 | border-left: 6px solid transparent;
37 | border-top: 6px solid transparent;
38 | border-bottom: 6px solid black;
39 | .rotate-45;
40 | .transition(.3s);
41 | }
42 |
43 | &:hover {
44 | background-color: @grayLighter;
45 | }
46 |
47 | .icon {
48 | position: absolute;
49 | right: 0;
50 | top: 0;
51 | font-size: 3rem;
52 | width: 3rem;
53 | max-height: 3rem;
54 | opacity: .6;
55 | color: @grayLight;
56 | }
57 | }
58 |
59 | &.active > .heading {
60 | background-color: @cyan;
61 | border-color: @cyan;
62 | color: @white;
63 | .bottom-shadow;
64 | .text-shadow;
65 | .transition(.3s);
66 |
67 | .icon {
68 | color: @white;
69 | }
70 |
71 | &:before {
72 | left: 8px;
73 | border-bottom-color: @white;
74 | .transition(.3s);
75 | .rotate(0deg);
76 | .transformOrigin(50% 50%);
77 | }
78 | }
79 |
80 | &.active > .content {
81 | display: block;
82 | }
83 |
84 | & > .content {
85 | padding: .625rem;
86 | display: none;
87 | background-color: @white;
88 | z-index: 1;
89 | }
90 |
91 | &.disabled {
92 | & > .heading {
93 | cursor: default;
94 | background: @white linear-gradient(-45deg, rgba(255,255,255,.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,.15) 50%, rgba(255,255,255,.15) 75%, transparent 75%, transparent);
95 | background-size: 40px 40px;
96 | // .ribbed-white;
97 | }
98 |
99 | & > .content {
100 | }
101 | }
102 | }
103 |
104 | &.large-heading {
105 | & > .frame {
106 | & > .heading {
107 | font-size: 2rem;
108 | line-height: 1.1;
109 | font-weight: 300;
110 | padding-left: 32px;
111 | text-shadow: none;
112 |
113 | &:before {
114 | top: 10px;
115 | border-left: 12px solid transparent;
116 | border-top: 12px solid transparent;
117 | border-bottom: 12px solid black;
118 | }
119 | }
120 |
121 | &.active {
122 | & > .heading {
123 | &:before {
124 | border-bottom-color: @white;
125 | }
126 | }
127 | }
128 | }
129 | }
130 | }
--------------------------------------------------------------------------------
/src/assets/less/hints.less:
--------------------------------------------------------------------------------
1 | @import (once) "vars";
2 | @import (once) "transform";
3 |
4 | p [data-hint]{
5 | border-bottom: 1px #373737 dotted;
6 | white-space: nowrap;
7 | }
8 |
9 | .hint {
10 | position: fixed;
11 | color: @dark;
12 | padding: 10px;
13 | font-size: 12px;
14 | width: auto;
15 | max-width: 220px;
16 | margin-top: 10px;
17 | z-index: @zindexTooltip;
18 | display: none;
19 | border: 1px #eee solid;
20 |
21 | .hint-title, .hint-text {
22 | color: inherit;
23 | text-align: left;
24 | }
25 |
26 | .hint-title {
27 | font-size: 1.2em;
28 | font-weight: bold;
29 | }
30 |
31 | .hint-text {
32 | }
33 | }
34 |
35 | // hint bottom
36 |
37 | .hint {
38 | &:before {
39 | content: '';
40 | position: absolute;
41 | background-color: inherit;
42 | width: 10px;
43 | height: 10px;
44 | border: 1px #eee solid;
45 | .rotate(45deg);
46 | }
47 | &:before {
48 | z-index: 2;
49 | }
50 | }
51 |
52 | .hint {
53 | &.bottom {
54 | &:before {
55 | top: 1px;
56 | left: 5px;
57 | margin: -7px 0;
58 | border-bottom: none;
59 | border-right: none;
60 | }
61 | }
62 |
63 | &.top {
64 | &:before {
65 | top: 100%;
66 | margin-top: -5px;
67 | left: 5px;
68 | border-top: none;
69 | border-left: none;
70 | }
71 | }
72 |
73 | &.left {
74 | &:before {
75 | top: 5px;
76 | left: 100%;
77 | margin-left: -5px;
78 | border-bottom: none;
79 | border-left: none;
80 | }
81 | }
82 |
83 | &.right {
84 | &:before {
85 | top: 5px;
86 | left: -9px;
87 | margin: 1px 0 0 3px;
88 | border-top: none;
89 | border-right: none;
90 | }
91 | }
92 | }
93 |
94 | .hint2 {
95 | .hint;
96 |
97 | &.bottom {
98 | &:before {
99 | top: 1px;
100 | left: 50%;
101 | margin: -7px 0 0 -5px;
102 | border-bottom: none;
103 | border-right: none;
104 | }
105 | }
106 |
107 | &.top {
108 | &:before {
109 | top: 100%;
110 | margin-top: -5px;
111 | left: 50%;
112 | margin-left: -5px;
113 | border-top: none;
114 | border-left: none;
115 | }
116 | }
117 |
118 | &.left {
119 | &:before {
120 | top: 50%;
121 | margin-top: -5px;
122 | left: 100%;
123 | margin-left: -5px;
124 | border-bottom: none;
125 | border-left: none;
126 | }
127 | }
128 |
129 | &.right {
130 | &:before {
131 | top: 50%;
132 | margin: -5px 0 0 3px;
133 | left: -9px;
134 | border-top: none;
135 | border-right: none;
136 | }
137 | }
138 | }
139 |
140 | .hint, .hint2 {
141 | &.no-border {
142 | border: none;
143 | &:before {
144 | border: none;
145 | }
146 | &.right {
147 | &:before {
148 | left: -7px;
149 | }
150 | }
151 | }
152 | }
153 |
154 | .hint2.line {
155 | padding: 2px 4px;
156 | border: none;
157 | display: block;
158 | //width: 100%;
159 | max-width: 100%;
160 | margin: -5px 0 4px 0;
161 |
162 | &:before {
163 | display: none;
164 | }
165 | }
--------------------------------------------------------------------------------
/static/layer-v3.0.3/layer/mobile/layer.js:
--------------------------------------------------------------------------------
1 | /*! layer mobile-v2.0.0 Web弹层组件 MIT License http://layer.layui.com/mobile By 贤心 */
2 | ;!function(e){"use strict";var t=document,n="querySelectorAll",i="getElementsByClassName",a=function(e){return t[n](e)},s={type:0,shade:!0,shadeClose:!0,fixed:!0,anim:"scale"},l={extend:function(e){var t=JSON.parse(JSON.stringify(s));for(var n in e)t[n]=e[n];return t},timer:{},end:{}};l.touch=function(e,t){e.addEventListener("click",function(e){t.call(this,e)},!1)};var r=0,o=["layui-m-layer"],c=function(e){var t=this;t.config=l.extend(e),t.view()};c.prototype.view=function(){var e=this,n=e.config,s=t.createElement("div");e.id=s.id=o[0]+r,s.setAttribute("class",o[0]+" "+o[0]+(n.type||0)),s.setAttribute("index",r);var l=function(){var e="object"==typeof n.title;return n.title?''+(e?n.title[0]:n.title)+"
":""}(),c=function(){"string"==typeof n.btn&&(n.btn=[n.btn]);var e,t=(n.btn||[]).length;return 0!==t&&n.btn?(e=''+n.btn[0]+"",2===t&&(e=''+n.btn[1]+""+e),''+e+"
"):""}();if(n.fixed||(n.top=n.hasOwnProperty("top")?n.top:100,n.style=n.style||"",n.style+=" top:"+(t.body.scrollTop+n.top)+"px"),2===n.type&&(n.content=''+(n.content||"")+"
"),n.skin&&(n.anim="up"),"msg"===n.skin&&(n.shade=!1),s.innerHTML=(n.shade?"':"")+'",!n.type||2===n.type){var d=t[i](o[0]+n.type),y=d.length;y>=1&&layer.close(d[0].getAttribute("index"))}document.body.appendChild(s);var u=e.elem=a("#"+e.id)[0];n.success&&n.success(u),e.index=r++,e.action(n,u)},c.prototype.action=function(e,t){var n=this;e.time&&(l.timer[n.index]=setTimeout(function(){layer.close(n.index)},1e3*e.time));var a=function(){var t=this.getAttribute("type");0==t?(e.no&&e.no(),layer.close(n.index)):e.yes?e.yes(n.index):layer.close(n.index)};if(e.btn)for(var s=t[i]("layui-m-layerbtn")[0].children,r=s.length,o=0;o .star, &:hover > .star:after {
103 | color: gold ;
104 | &.half, &.on.half {
105 | color:gold;
106 | &:after {
107 | color:gold;
108 | }
109 | }
110 | }
111 |
112 | .star:hover ~ .star, .star:hover ~ .star:after {
113 | color: gray ;
114 | &.half, &.on.half {
115 | color:gray;
116 | &:after {
117 | color:gray;
118 | }
119 | }
120 | }
121 |
122 | }
123 |
124 | }
125 |
126 | .rating {
127 | &.small {
128 | .star {
129 | width: 14px;
130 | height: 16px;
131 | font-size: 14px;
132 | line-height: 14px;
133 |
134 | &.half {
135 | &:after {
136 | width: 6px;
137 | }
138 | }
139 | }
140 | }
141 |
142 | &.large {
143 | .star {
144 | width: 28px;
145 | height: 30px;
146 | font-size: 32px;
147 | line-height: 24px;
148 |
149 | &.half {
150 | &:after {
151 | width: 13px;
152 | }
153 | }
154 | }
155 | }
156 | }
157 |
158 | .rating {
159 | .score {
160 | display: block;
161 | font-size: .8rem;
162 | }
163 |
164 | &.small {
165 | .score {
166 | font-size: .6rem;
167 | }
168 | }
169 |
170 | &.large {
171 | .score {
172 | font-size: 1rem;
173 | }
174 | }
175 | }
--------------------------------------------------------------------------------
/src/assets/less/windows.less:
--------------------------------------------------------------------------------
1 | @import (once) "vars";
2 | @import (once) "typography";
3 | @import (once) "utils";
4 |
5 | .overlay {
6 | position: fixed;
7 | left: 0;
8 | top: 0;
9 | right: 0;
10 | bottom: 0;
11 | background-color: rgba(255,255,255, .5);
12 | z-index: @zindexModal - 1;
13 |
14 | &.transparent {
15 | background-color: rgba(255,255,255, 0);
16 | }
17 | }
18 |
19 | .window {
20 | display: block;
21 | position: relative;
22 | height: auto;
23 | width: 100%;
24 | background-color: @winFlatBackgroundColor;
25 |
26 | .block-shadow;
27 | }
28 |
29 | .window-caption {
30 | position: relative;
31 | background-color: @winFlatBackgroundColor;
32 | padding: .4375rem .3125rem;
33 | border-bottom: 1px @winFlatBorderColor solid;
34 | border-top: 0;
35 | cursor: default;
36 |
37 | .window-caption-title {
38 | font-size: .875rem;
39 | .text-bold;
40 | }
41 |
42 | .window-caption-icon {
43 | margin-left: .3125rem;
44 | * {
45 | height: 1rem;
46 | width: 1rem;
47 | }
48 | }
49 |
50 | .window-caption-icon ~ .window-caption-title {
51 | padding-left: .3125rem;
52 | }
53 |
54 | .btn-close, .btn-min, .btn-max {
55 | position: absolute;
56 | height: 1.5rem;
57 | width: 1.5rem;
58 | min-height: 1.5rem;
59 | text-align: center;
60 | vertical-align: middle;
61 | font-size: 1rem;
62 | font-weight: normal;
63 | padding: 0 0 .625rem 0;
64 | z-index: 3;
65 | outline: none;
66 | cursor: pointer;
67 | display: block;
68 |
69 | background-color: @winFlatBackgroundColor;
70 | color: @winFlatSystemButtonRestColor;
71 | top: .25rem;
72 | right: .25rem;
73 | &:hover {
74 | background-color: @winFlatSystemButtonHoverBackground;
75 | color: @winFlatSystemButtonActiveColor;
76 | &:after {
77 | border-color: @winFlatSystemButtonActiveColor;
78 | }
79 | }
80 | &:active {
81 | background-color: @winFlatSystemButtonActiveBackground;
82 | color: @white;
83 | }
84 | &:after {
85 | border-color: @winFlatSystemButtonRestColor;
86 | content: '\D7';
87 | position: absolute;
88 | left: 50%;
89 | top: -2px;
90 | margin-left: -.25em;
91 | }
92 | }
93 |
94 | .btn-min, .btn-max {
95 | &:after {
96 | display: block;
97 | position: absolute;
98 | width: .625rem;
99 | height: .625rem;
100 | border: 0 #000 solid;
101 | border-bottom-width: 2px;
102 | content: ' ';
103 | bottom: .375rem;
104 | left: 50%;
105 | margin-left: -.375rem;
106 | top: auto;
107 | }
108 | }
109 |
110 | .btn-max {
111 | &:after {
112 | height: .375rem;
113 | border: 1px #000 solid;
114 | border-top-width: 2px;
115 | }
116 | }
117 |
118 | .btn-max {
119 | right: 1.8125rem;
120 | }
121 | .btn-min {
122 | right: 3.375rem;
123 | }
124 | .btn-close {
125 | &:after {
126 | margin-top: .1875rem;
127 | margin-left: -.3125rem;
128 | }
129 | }
130 | }
131 |
132 | .window-content {
133 | position: relative;
134 | width: 100%;
135 | height: auto;
136 | display: block;
137 | padding: .25rem;
138 | }
139 |
140 | .window {
141 | &.success {
142 | .window-caption {
143 | background-color: @green;
144 | color: @white;
145 | }
146 | .block-shadow-success;
147 | }
148 | }
149 |
150 | .window {
151 | &.error {
152 | .window-caption {
153 | background-color: @red;
154 | color: @white;
155 | }
156 | .block-shadow-error;
157 | }
158 | }
159 |
160 | .window {
161 | &.warning {
162 | .window-caption {
163 | background-color: @orange;
164 | color: @white;
165 | }
166 | .block-shadow-warning;
167 | }
168 | }
169 |
--------------------------------------------------------------------------------
/src/assets/less/lists.less:
--------------------------------------------------------------------------------
1 | @import (once) "vars";
2 | @import (once) "typography";
3 | @import (once) "utils";
4 |
5 | .simple-list, .numeric-list {
6 | .unstyled-list;
7 | counter-reset:li;
8 | padding-left:0;
9 | margin-left: .625rem;
10 | color: @textColor;
11 |
12 | li {
13 | position:relative;
14 | padding: 4px 12px;
15 | list-style:none;
16 | color: inherit;
17 |
18 | &:before {
19 | position: absolute;
20 | top: 50%;
21 | margin-top: -.8rem;
22 | left: -.625rem;
23 | color: @lightCyan;
24 | font-size: 2rem;
25 | vertical-align: middle;
26 | .square(1.25rem);
27 | line-height: 1.25rem;
28 | }
29 | }
30 |
31 | ul {
32 | margin: 4px .5em 0;
33 | }
34 | }
35 |
36 | .simple-list {
37 | & > li:before {
38 | content: "\2022";
39 | }
40 |
41 | ul li:before {
42 | content: "\00B7";
43 | }
44 | }
45 |
46 | .numeric-list {
47 | & > li {
48 | padding: 4px 12px 4px 18px;
49 | }
50 |
51 | & > li:before {
52 | content:counter(li);
53 | counter-increment:li;
54 | font-size: .8rem ;
55 | color: @white;
56 | background-color: @lightCyan;
57 | border-radius: 50%;
58 | .align-center;
59 | margin-top: -.65rem;
60 | }
61 |
62 | &.square-marker, &.square-bullet {
63 | & > li:before {
64 | border-radius: 0;
65 | }
66 | }
67 | }
68 |
69 | .simple-list, .numeric-list {
70 | &.large-bullet {
71 |
72 | li {
73 |
74 | margin: 6px 0;
75 | padding-left: 2rem;
76 |
77 | &:before {
78 | line-height: 2rem;
79 | .square(2rem);
80 | margin-top: -1rem;
81 | }
82 | }
83 | }
84 | }
85 |
86 | .simple-list {
87 | &.large-bullet {
88 | li {
89 | padding-left: 1rem;
90 | &:before {
91 | margin-top: -1.3rem;
92 | font-size: 3rem;
93 | //color: inherit;
94 | }
95 | }
96 | }
97 | }
98 |
99 | .simple-list {
100 | &.dark-bullet {li:before {color: @dark;}}
101 | &.alert-bullet {li:before {color: @red;}}
102 | &.info-bullet {li:before {color: @cyan;}}
103 | &.success-bullet {li:before {color: @green;}}
104 | &.warning-bullet {li:before {color: @yellow;}}
105 | &.red-bullet {li:before {color: @red;}}
106 | &.blue-bullet {li:before {color: @cyan;}}
107 | &.green-bullet {li:before {color: @green;}}
108 | &.yellow-bullet {li:before {color: @yellow;}}
109 | }
110 |
111 | .numeric-list {
112 | &.dark-bullet {li:before {background-color: @dark;}}
113 | &.alert-bullet {li:before {background-color: @red;}}
114 | &.info-bullet {li:before {background-color: @cyan;}}
115 | &.success-bullet {li:before {background-color: @green;}}
116 | &.warning-bullet {li:before {background-color: @yellow;}}
117 | &.red-bullet {li:before {background-color: @red;}}
118 | &.blue-bullet {li:before {background-color: @cyan;}}
119 | &.green-bullet {li:before {background-color: @green;}}
120 | &.yellow-bullet {li:before {background-color: @yellow;}}
121 | }
122 |
123 | .step-list {
124 | margin: 0 0 0 2rem;
125 | padding: 0;
126 | list-style-type: none;
127 | counter-reset:li;
128 |
129 | & > li {
130 | border-left: 1px #ccc solid;
131 | position: relative;
132 | padding: 0 .625rem;
133 | margin: .625rem;
134 | vertical-align: top;
135 | }
136 |
137 | & > li:before {
138 | position: absolute;
139 | content:counter(li);
140 | counter-increment:li;
141 | font-size: 2rem;
142 | color: @grayLight;
143 | left: 0;
144 | top: .3125rem;
145 | margin-left: -1.5rem;
146 | }
147 | }
--------------------------------------------------------------------------------
/src/assets/less/notify.less:
--------------------------------------------------------------------------------
1 | @import (once) "vars";
2 | @import (once) "utils";
3 |
4 | .notify-container {
5 | position: fixed;
6 | top: 0;
7 | right: 0;
8 | width: auto;
9 | .clear-float;
10 | z-index: @zindexCharms + 1;
11 |
12 | &.position-left {
13 | left: 0;
14 | right: auto;
15 | }
16 |
17 | &.position-top {
18 | left: 0;
19 | right: 0;
20 | top: 0;
21 | height: auto;
22 |
23 | .notify {
24 | float: left;
25 | }
26 | }
27 |
28 | &.position-bottom {
29 | left: 0;
30 | right: 0;
31 | bottom: 0;
32 | top: auto;
33 | height: auto;
34 |
35 | .notify {
36 | float: left;
37 | }
38 | }
39 | }
40 |
41 | .notify {
42 | display: block;
43 | margin: .3125rem;
44 | padding: .625rem;
45 | min-width: 200px;
46 | cursor: default;
47 | max-width: 300px;
48 | position: relative;
49 |
50 | .notify-icon {
51 | width: 32px;
52 | height: 32px;
53 | font-size: 32px;
54 | text-align: center;
55 | position: absolute;
56 | margin: -16px 10px;
57 | top: 50%;
58 | left: 0;
59 | }
60 |
61 | .notify-icon ~ .notify-title, .notify-icon ~ .notify-text {
62 | position: relative;
63 | margin-left: 42px;
64 | }
65 |
66 | .notify-title, .notify-text {
67 | display: block;
68 | margin-right: 20px;
69 | }
70 |
71 | .notify-title {
72 | font-weight: 500;
73 | font-size: 1rem;
74 | }
75 |
76 | .notify-text {
77 | font-size: .875rem;
78 | }
79 |
80 | .notify-closer {
81 | position: absolute;
82 | height: 1rem;
83 | width: 1rem;
84 | text-align: center;
85 | vertical-align: middle;
86 | font-size: 1rem;
87 | font-weight: normal;
88 | padding: 0 0 .625rem 0;
89 | z-index: 3;
90 | outline: none;
91 | cursor: pointer;
92 |
93 | background-color: @winFlatBackgroundColor;
94 | color: @winFlatSystemButtonRestColor;
95 | top: .25rem;
96 | right: .25rem;
97 |
98 | &:after {
99 | border-color: @winFlatSystemButtonRestColor;
100 | content: '\D7';
101 | position: absolute;
102 | left: 50%;
103 | top: 50%;
104 | margin-top: -.65rem;
105 | margin-left: -.35rem;
106 | }
107 |
108 | &:hover {
109 | background-color: @winFlatSystemButtonHoverBackground;
110 | color: @white;
111 | }
112 |
113 | &:active {
114 | background-color: @winFlatSystemButtonActiveBackground;
115 | color: @white;
116 | }
117 | }
118 | }
119 |
120 | .notify {
121 | background-color: rgba(229, 243, 251, 1);
122 | color: @dark;
123 |
124 | &.success {
125 | background-color: @green;
126 | color: @white;
127 | .notify-closer {
128 | background-color: @green;
129 | color: @white;
130 | &:hover {
131 | background-color: @lightGreen;
132 | }
133 | &:active {
134 | background-color: @darkGreen;
135 | }
136 | }
137 | }
138 |
139 | &.alert {
140 | background-color: @red;
141 | color: @white;
142 | .notify-closer {
143 | background-color: @red;
144 | color: @white;
145 | &:hover {
146 | background-color: @lightRed;
147 | }
148 | &:active {
149 | background-color: @darkRed;
150 | }
151 | }
152 | }
153 |
154 | &.warning {
155 | background-color: @orange;
156 | color: @white;
157 | .notify-closer {
158 | background-color: @orange;
159 | color: @white;
160 | &:hover {
161 | background-color: @lightOrange;
162 | }
163 | &:active {
164 | background-color: @darkOrange;
165 | }
166 | }
167 | }
168 |
169 | &.info {
170 | background-color: @cyan;
171 | color: @white;
172 | .notify-closer {
173 | background-color: @cyan;
174 | color: @white;
175 | &:hover {
176 | background-color: @lightCyan;
177 | }
178 | &:active {
179 | background-color: @darkCyan;
180 | }
181 | }
182 | }
183 | }
--------------------------------------------------------------------------------
/src/assets/less/reset.less:
--------------------------------------------------------------------------------
1 | html, body {
2 | padding: 0;
3 | margin: 0;
4 | height: 100%;
5 | }
6 |
7 | html, body, * {
8 | -webkit-box-sizing: border-box;
9 | -moz-box-sizing: border-box;
10 | box-sizing: border-box;
11 | }
12 |
13 | article,
14 | aside,
15 | details,
16 | figcaption,
17 | figure,
18 | footer,
19 | header,
20 | nav,
21 | section {
22 | display: block;
23 | }
24 |
25 | audio,
26 | canvas,
27 | video {
28 | display: inline-block;
29 | }
30 |
31 | audio:not([controls]) {
32 | display: none;
33 | }
34 |
35 | html {
36 | // -webkit-text-size-adjust: 100%;
37 | // -ms-text-size-adjust: 100%;
38 | }
39 |
40 | a:hover,
41 | a:active,
42 | .tile:active {
43 | outline: 0;
44 | }
45 |
46 | sub,
47 | sup {
48 | position: relative;
49 | font-size: 75%;
50 | line-height: 0;
51 | vertical-align: baseline;
52 | }
53 | sup {
54 | top: -0.5em;
55 | }
56 | sub {
57 | bottom: -0.25em;
58 | }
59 |
60 | img {
61 | max-width: 100%;
62 | height: auto;
63 |
64 | vertical-align: middle;
65 | border: 0;
66 | //-ms-interpolation-mode: bicubic;
67 | }
68 |
69 | #map_canvas img,
70 | .google-maps img {
71 | max-width: none;
72 | }
73 |
74 | button,
75 | input,
76 | select,
77 | textarea {
78 | margin: 0;
79 | font-size: 100%;
80 | vertical-align: middle;
81 | }
82 |
83 | button,
84 | input {
85 | line-height: normal;
86 | }
87 |
88 | button::-moz-focus-inner,
89 | input::-moz-focus-inner {
90 | padding: 0;
91 | border: 0;
92 | }
93 |
94 | button,
95 | html input[type="button"],
96 | input[type="reset"],
97 | input[type="submit"] {
98 | -webkit-appearance: button;
99 | cursor: pointer;
100 | }
101 | label,
102 | select,
103 | button,
104 | input[type="button"],
105 | input[type="reset"],
106 | input[type="submit"],
107 | input[type="radio"],
108 | input[type="checkbox"] {
109 | cursor: pointer;
110 | }
111 | input[type="search"] {
112 | box-sizing: content-box;
113 | appearance: textfield;
114 | }
115 | input[type="search"]::-webkit-search-decoration,
116 | input[type="search"]::-webkit-search-cancel-button {
117 | -webkit-appearance: none;
118 | }
119 | textarea {
120 | overflow: auto;
121 | vertical-align: top;
122 | }
123 |
124 | input[type=text]::-ms-clear,
125 | input[type=email]::-ms-clear,
126 | input[type=url]::-ms-clear,
127 | input[type=tel]::-ms-clear,
128 | input[type=number]::-ms-clear,
129 | input[type=time]::-ms-clear {
130 | display: none;
131 | }
132 |
133 | input[type=password]::-ms-reveal {
134 | display: none;
135 | }
136 |
137 | * {
138 | border-collapse: collapse;
139 | }
140 |
141 | a {
142 | text-decoration: none;
143 | }
144 |
145 | div, p, span {
146 | //position: relative;
147 | }
148 |
149 |
150 | @media print {
151 | a,
152 | a:visited {
153 | text-decoration: underline;
154 | }
155 |
156 | a[href]:after {
157 | content: " (" attr(href) ")";
158 | }
159 |
160 | abbr[title]:after {
161 | content: " (" attr(title) ")";
162 | }
163 |
164 | .ir a:after,
165 | a[href^="javascript:"]:after,
166 | a[href^="#"]:after {
167 | content: "";
168 | }
169 |
170 | pre,
171 | blockquote {
172 | border: 1px solid #999;
173 | page-break-inside: avoid;
174 | }
175 |
176 | thead {
177 | display: table-header-group;
178 | }
179 |
180 | tr,
181 | img {
182 | page-break-inside: avoid;
183 | }
184 |
185 | img {
186 | max-width: 100%;
187 | }
188 |
189 | //@page {margin: 0.5cm;}
190 |
191 | p,
192 | h2,
193 | h3 {
194 | orphans: 3;
195 | widows: 3;
196 | }
197 |
198 | h2,
199 | h3 {
200 | page-break-after: avoid;
201 | }
202 | }
--------------------------------------------------------------------------------
/src/assets/loaded.css:
--------------------------------------------------------------------------------
1 | /*
2 |
24 |
25 | */
26 |
27 | .loadingContainer{
28 | width: 100%;
29 | height: 100%;
30 | background: rgba(0, 0, 0, .1);
31 | position: fixed;
32 | top: 0%;
33 | left: 0%;
34 | }
35 |
36 |
37 | .spinner {
38 | width: 40px;
39 | height: 40px;
40 | position: absolute;
41 | top: 50%;
42 | left: 50%;
43 | transform: translate(-50%, -50%);
44 | -webkit-transform: translate(-50%, -50%);
45 |
46 | }
47 |
48 | .container1 > div, .container2 > div, .container3 > div {
49 | width: 10px;
50 | height: 10px;
51 | background-color: #333;
52 |
53 | border-radius: 100%;
54 | position: absolute;
55 | -webkit-animation: bouncedelay 1.2s infinite ease-in-out;
56 | animation: bouncedelay 1.2s infinite ease-in-out;
57 | -webkit-animation-fill-mode: both;
58 | animation-fill-mode: both;
59 | }
60 |
61 | .spinner .spinner-container {
62 | position: absolute;
63 | width: 100%;
64 | height: 100%;
65 | }
66 |
67 | .container2 {
68 | -webkit-transform: rotateZ(45deg);
69 | transform: rotateZ(45deg);
70 | }
71 |
72 | .container3 {
73 | -webkit-transform: rotateZ(90deg);
74 | transform: rotateZ(90deg);
75 | }
76 |
77 | .circle1 { top: 0; left: 0; }
78 | .circle2 { top: 0; right: 0; }
79 | .circle3 { right: 0; bottom: 0; }
80 | .circle4 { left: 0; bottom: 0; }
81 |
82 | .container2 .circle1 {
83 | -webkit-animation-delay: -1.1s;
84 | animation-delay: -1.1s;
85 | }
86 |
87 | .container3 .circle1 {
88 | -webkit-animation-delay: -1.0s;
89 | animation-delay: -1.0s;
90 | }
91 |
92 | .container1 .circle2 {
93 | -webkit-animation-delay: -0.9s;
94 | animation-delay: -0.9s;
95 | }
96 |
97 | .container2 .circle2 {
98 | -webkit-animation-delay: -0.8s;
99 | animation-delay: -0.8s;
100 | }
101 |
102 | .container3 .circle2 {
103 | -webkit-animation-delay: -0.7s;
104 | animation-delay: -0.7s;
105 | }
106 |
107 | .container1 .circle3 {
108 | -webkit-animation-delay: -0.6s;
109 | animation-delay: -0.6s;
110 | }
111 |
112 | .container2 .circle3 {
113 | -webkit-animation-delay: -0.5s;
114 | animation-delay: -0.5s;
115 | }
116 |
117 | .container3 .circle3 {
118 | -webkit-animation-delay: -0.4s;
119 | animation-delay: -0.4s;
120 | }
121 |
122 | .container1 .circle4 {
123 | -webkit-animation-delay: -0.3s;
124 | animation-delay: -0.3s;
125 | }
126 |
127 | .container2 .circle4 {
128 | -webkit-animation-delay: -0.2s;
129 | animation-delay: -0.2s;
130 | }
131 |
132 | .container3 .circle4 {
133 | -webkit-animation-delay: -0.1s;
134 | animation-delay: -0.1s;
135 | }
136 |
137 | @-webkit-keyframes bouncedelay {
138 | 0%, 80%, 100% { -webkit-transform: scale(0.0) }
139 | 40% { -webkit-transform: scale(1.0) }
140 | }
141 |
142 | @keyframes bouncedelay {
143 | 0%, 80%, 100% {
144 | transform: scale(0.0);
145 | -webkit-transform: scale(0.0);
146 | } 40% {
147 | transform: scale(1.0);
148 | -webkit-transform: scale(1.0);
149 | }
150 | }
--------------------------------------------------------------------------------
/src/assets/less/video-player.less:
--------------------------------------------------------------------------------
1 | @import (once) "vars";
2 | @import (once) "animations";
3 |
4 | @inactive_button: darken(@white, 30%);
5 | @active_button: @white;
6 |
7 | .video-player:-webkit-full-screen {
8 | position: fixed;
9 | top: 0;
10 | min-width: 100%;
11 | min-height: 100%;
12 | width: 100%;
13 | height: 100%;
14 |
15 | video {
16 | width: 100%;
17 | height: 100%;
18 | }
19 | }
20 |
21 | :-moz-full-screen {
22 | }
23 |
24 | :-ms-fullscreen {
25 | }
26 |
27 | .video-player:fullscreen {
28 | position: fixed;
29 | top: 0;
30 | min-width: 100%;
31 | min-height: 100%;
32 |
33 | video {
34 | width: 100%;
35 | height: 100%;
36 | }
37 | }
38 |
39 | .video-player {
40 | display: block;
41 | background: @dark;
42 | position: relative;
43 | width: 100%;
44 | height: auto;
45 | z-index: 1;
46 |
47 | .video-preloader {
48 | position: absolute;
49 | z-index: @zindexVideoControls;
50 | top: 50%;
51 | left: 50%;
52 | margin-top: -32px;
53 | margin-left: -32px;
54 | }
55 |
56 | .video-logo {
57 | position: absolute;
58 | z-index: @zindexVideoControls;
59 | right: 20px;
60 | top: 20px;
61 | height: 32px;
62 | }
63 |
64 | video {
65 | width: 100%;
66 | height: 100%;
67 | z-index: 1;
68 | }
69 |
70 | .controls {
71 | position: absolute;
72 | height: auto;
73 | padding: .625rem;
74 | z-index: @zindexVideoControls;
75 | background: rgba(34, 34, 34, 0.5);
76 |
77 | .info-box {
78 | float: left;
79 | background: inherit;
80 | margin: 0 2px;
81 | padding: .75rem 1rem;
82 | color: @white;
83 | height: 2.125rem;
84 | text-align: center;
85 | font-size: .8em;
86 | }
87 |
88 | .control-slider {
89 | height: 2.125rem;
90 | float: left;
91 | padding: 0 1rem 0;
92 | margin: 0 2px;
93 | background: inherit;
94 |
95 | .slider .complete {
96 | //.animate(ani-bg-stripes 2s linear infinite);
97 | }
98 | }
99 |
100 | .volume-slider-wrapper {
101 | width: 6rem;
102 | }
103 |
104 | .stream-slider-wrapper {
105 | float: none;
106 | width: 100%;
107 | .slider .complete {
108 | //.animate(ani-bg-stripes 2s linear infinite);
109 | }
110 | }
111 |
112 | .control-button {
113 | float: left;
114 | background: inherit;
115 | border: 0;
116 | //border-color: @inactive_button;
117 | color: @inactive_button;
118 | outline: none;
119 | position: relative;
120 | margin: 0 2px;
121 |
122 | &:hover, &:active {
123 | //border-color: @active_button;
124 | color: @active_button;
125 | }
126 |
127 | &.loop {
128 | &.active {
129 | color: @green;
130 | }
131 | }
132 |
133 | &.play {
134 | }
135 |
136 | &.stop:disabled {
137 | color: @gray;
138 | }
139 |
140 | &.full {
141 | float: right;
142 | }
143 | }
144 | }
145 |
146 | .controls {
147 | &.position-bottom {
148 | bottom: 0;
149 | left: 0;
150 | right: 0;
151 | }
152 | }
153 |
154 | &.full-screen {
155 | position: fixed;
156 | top: 0;
157 | left: 0;
158 | bottom: 0;
159 | right: 0;
160 | width: auto !important;
161 | z-index: @zindexFullScreen;
162 | }
163 | }
164 |
165 | video::-webkit-media-controls {
166 | display:none !important;
167 | }
168 | video::-webkit-media-controls-enclosure {
169 | display:none !important;
170 | }
171 |
--------------------------------------------------------------------------------
/src/assets/less/images.less:
--------------------------------------------------------------------------------
1 | @import (once) "vars";
2 | @import (once) "utils";
3 | @import (once) "transform";
4 | @import (once) "animations";
5 |
6 | .image-container {
7 | display: inline-block;
8 | position: relative;
9 | vertical-align: middle;
10 | max-width: 100%;
11 | background-color: @transparent;
12 | //.block-shadow;
13 |
14 | .frame {
15 | background-color: @white;
16 | position: relative;
17 | width: 100%;
18 | height: 100%;
19 | }
20 |
21 | img {
22 | display: block;
23 | width: 100%;
24 | height: 100%;
25 | }
26 |
27 | .image-overlay {
28 | position: absolute;
29 | top: 0;
30 | bottom: 0;
31 | left: 0;
32 | right: 0;
33 | opacity: 0;
34 | overflow: hidden;
35 | font-size: .875rem;
36 | line-height: 1rem;
37 | padding: 1em 1.5em;
38 | .op-default;
39 | color: @white;
40 | text-align: center;
41 | border-radius: inherit;
42 | .transition(.65s);
43 |
44 | &:hover {
45 | opacity: 1;
46 |
47 | &:before, &:after {
48 | opacity: 1;
49 | .scale(1);
50 | }
51 | }
52 |
53 | &:before, &:after {
54 | display: block;
55 | position: absolute;
56 | content: "";
57 | border: 1px solid rgba(255, 255, 255, 0.7);
58 | top: 1em;
59 | bottom: 1em;
60 | left: 1em;
61 | right: 1em;
62 | opacity: 0;
63 | border-radius: inherit;
64 |
65 | .scale(1.5);
66 | .transition(.65s);
67 | }
68 |
69 | &:after {
70 | border-left: none;
71 | border-right: none;
72 | bottom: 1em;
73 | top: 1em;
74 | }
75 | &:before {
76 | border-top: none;
77 | border-bottom: none;
78 | bottom: 1em;
79 | top: 1em;
80 | }
81 | }
82 |
83 | &.diamond {
84 | overflow: hidden;
85 | .frame {
86 | .rotate(45deg);
87 | overflow: hidden;
88 |
89 | img, .image-replacer {
90 | .rotate(-45deg);
91 | }
92 | }
93 | }
94 |
95 | &.rounded {
96 | img {
97 | border-radius: @borderRadius;
98 | }
99 | }
100 |
101 | &.bordered {
102 | .frame {
103 | border: 1px @grayLighter solid;
104 | padding: .5rem;
105 | }
106 | }
107 | &.polaroid {
108 | .frame {
109 | border: 1px @grayLighter solid;
110 | padding: .5rem .5rem 2rem;
111 | }
112 |
113 | }
114 | &.handing {
115 | margin-top: 20px;
116 |
117 | .frame {
118 | border: 1px @grayLighter solid;
119 | position: relative;
120 | padding: .5rem;
121 |
122 | &:after {
123 | content: "";
124 | position: absolute;
125 | width: .625rem;
126 | height: .625rem;
127 | background-color: @steel;
128 | border-radius: 50%;
129 | top: -20%;
130 | left: 50%;
131 | margin-left: -.3125rem;
132 | z-index: 3;
133 | .shadow;
134 | }
135 | }
136 |
137 | &.image-format-hd {
138 | .frame:after {
139 | top: -25%;
140 | }
141 | }
142 |
143 | &.image-format-square {
144 | .frame:after {
145 | top: -15%;
146 | }
147 | }
148 |
149 | &:after {
150 | position: absolute;
151 | content: "";
152 | background-color: transparent;
153 | border-top: 1px solid @grayLighter;
154 | .rotate(-16deg);
155 | z-index: 2;
156 | top: 0;
157 | left: 0;
158 | width: 50%;
159 | height: 50%;
160 | .transformOrigin(top left);
161 | }
162 |
163 | &:before {
164 | position: absolute;
165 | content: "";
166 | background-color: transparent;
167 | border-top: 1px solid @grayLighter;
168 | .rotate(16deg);
169 | z-index: 2;
170 | top: 0;
171 | right: 0;
172 | width: 50%;
173 | height: 50%;
174 | .transformOrigin(top right);
175 | }
176 |
177 | &.ani {
178 | .transformOrigin(50% -25px);
179 | .animate(swinging 10s ease-in-out 0s infinite);
180 |
181 | // -webkit-animation: swinging 10s ease-in-out 0s infinite;
182 | // -o-animation: swinging 10s ease-in-out 0s infinite;
183 | // -moz-animation: swinging 10s ease-in-out 0s infinite;
184 | // -ms-animation: swinging 10s ease-in-out 0s infinite;
185 | // animation: swinging 10s ease-in-out 0s infinite;
186 | }
187 |
188 | &.ani-hover {
189 | &:hover {
190 | .transformOrigin(50% -25px);
191 | .animate(swinging 5s ease-in-out 0s);
192 | }
193 | }
194 |
195 | }
196 | }
197 |
198 |
--------------------------------------------------------------------------------
/src/assets/less/audio-player.less:
--------------------------------------------------------------------------------
1 | @import (once) "vars";
2 | @import (once) "utils";
3 |
4 | @audio_inactive_button: darken(@white, 30%);
5 | @audio_active_button: @white;
6 |
7 | .audio-player {
8 | display: inline-block;
9 | position: relative;
10 | background: @dark;
11 | height: auto;
12 |
13 | .controls {
14 | position: relative;
15 | width: 100%;
16 | height: auto;
17 | padding: 4px;
18 | background: inherit;
19 | .clear-float;
20 |
21 | .control-element {
22 | height: 2.125rem;
23 | display: inline-block;
24 | border: none;
25 | background: rgba(34, 34, 34, 0.5);
26 | vertical-align: middle;
27 | }
28 |
29 | .stream-wrapper {
30 | padding: 0 .25rem;
31 | }
32 |
33 | .stream-slider {
34 | width: 200px;
35 | }
36 |
37 | .info-box {
38 | margin: 0 2px;
39 | padding: .75rem 1rem;
40 | color: @white;
41 | height: 2.125rem;
42 | line-height: 1;
43 | text-align: center;
44 | font-size: .8em;
45 | }
46 |
47 | .volume-wrapper {
48 | width: 100px;
49 | padding: 0 .25rem 0;
50 | }
51 |
52 | .play, .stop, .loop, .volume, .next, .prev, .shuffle, .random, .plist {
53 | color: @audio_inactive_button;
54 | &:hover, &:active {
55 | color: @audio_active_button;
56 | }
57 | }
58 |
59 | .loop {
60 | &.active {
61 | color: @lightGreen;
62 | }
63 | }
64 |
65 | .control-element:disabled {
66 | color: @gray;
67 | }
68 | }
69 | }
70 |
71 | .audio-player {
72 |
73 | .play-list-wrapper {
74 | display: block;
75 | position: relative;
76 | padding: .625rem;
77 | .clear-float;
78 | border-bottom: 1px solid @gray;
79 |
80 | &.not-visible {
81 | display: none;
82 | }
83 | }
84 |
85 | .album-title {
86 | font-size: 2rem;
87 | color: @white;
88 | font-weight: lighter;
89 | margin: 0 0 .625rem;
90 | padding-bottom: .625rem;
91 | border-bottom: 1px solid @gray;
92 | }
93 |
94 | .poster {
95 | float: left;
96 | width: 10rem;
97 | height: 100%;
98 | }
99 |
100 | .album-desc {
101 | padding: .625rem;
102 | color: @grayLighter;
103 | font-size: .6875rem;
104 | }
105 |
106 | .play-list {
107 | list-style: none;
108 | padding: 10px;
109 | color: @white;
110 | display: block;
111 | font-size: .8em;
112 | width: 100%;
113 | //max-height: 200px;
114 | //overflow-x: hidden;
115 | //overflow-y: auto;
116 |
117 | li {
118 | padding: .125rem 1rem;
119 | cursor: pointer;
120 | position: relative;
121 |
122 | &:hover {
123 | background: @gray;
124 | }
125 |
126 | &.current {
127 | color: @cyan;
128 | .text-shadow;
129 |
130 | &:before {
131 | content: "\25B6";
132 | position: absolute;
133 | left: .25rem;
134 | }
135 | }
136 | }
137 | }
138 |
139 | .poster ~ .play-list {
140 | margin: 0 0 0 11rem;
141 | width: ~"calc(100% - 11rem)";
142 | }
143 | }
144 |
145 | .audio-player {
146 | &.micro {
147 | .plist, .loop, .next, .prev, .random, .stop, .stream-wrapper, .info-box, .volume-wrapper, .volume {
148 | display: none;
149 | }
150 | }
151 |
152 | &.small {
153 | .plist, .stop, .stream-wrapper, .next, .prev, .random, .loop {
154 | display: none;
155 | }
156 | }
157 |
158 | &.medium {
159 | .plist, .stop, .next, .prev, .random, .loop {
160 | display: none;
161 | }
162 | }
163 | }
164 |
--------------------------------------------------------------------------------
/src/assets/less/calendar.less:
--------------------------------------------------------------------------------
1 | @import (once) "vars";
2 | @import (once) "colors";
3 | @import (once) "utils";
4 |
5 | .calendar {
6 | min-width: 13.75rem;
7 | border: 1px @grayLighter solid;
8 | font-size: .75rem;
9 | padding: .3125rem;
10 | background-color: @white;
11 |
12 | .calendar-grid {
13 | margin: 0;
14 | padding: 0;
15 | }
16 |
17 | .calendar-row {
18 | margin: 0 0 .3125rem;
19 | width: 100%;
20 | .clear-float;
21 |
22 | &:last-child {
23 | margin-bottom: 0;
24 | }
25 | }
26 |
27 | .calendar-cell {
28 | width: 12.46201429%;
29 | margin: 0 0 0 2.12765%;
30 | display: block;
31 | float: left;
32 |
33 | &:first-child {
34 | margin-left: 0;
35 | }
36 |
37 | &.sel-month {
38 | width: 41.64134286%;
39 | }
40 |
41 | &.sel-year {
42 | width: 48.936175%;
43 | }
44 |
45 | &.sel-plus, &.sel-minus {
46 | width: 23.4042625%;
47 | }
48 |
49 | &.month-cell, &.year-cell {
50 | width: 23.4042625%;
51 | }
52 | }
53 |
54 | .calendar-actions {
55 | .button {
56 | margin: .15625rem;
57 | }
58 | }
59 |
60 | .day-of-week {
61 | padding: .3125rem;
62 | cursor: default;
63 | }
64 |
65 | a {
66 | display: block;
67 | padding: .3125rem 0;
68 |
69 | &:hover {
70 | background-color: lighten(@cyan, 20%);
71 | color: @white;
72 | border-radius: inherit;
73 | }
74 | }
75 |
76 | .calendar-header {
77 | background-color: @lightCyan;
78 | color: @white;
79 |
80 | a {
81 | color: @white;
82 | padding: .325rem;
83 | &:hover {
84 | background-color: lighten(@cyan, 10%);
85 | color: @white;
86 | }
87 | }
88 | }
89 |
90 | .week-days {
91 | // background-color: @brown;
92 | // color: @white;
93 | }
94 |
95 | .calendar-actions {
96 | .clear-float;
97 | }
98 |
99 | .today {
100 | a {
101 | background-color: @green;
102 | color: @white;
103 | .text-shadow;
104 | }
105 | }
106 |
107 | .day {
108 |
109 | border: 1px @borderColor solid;
110 | text-align: center;
111 |
112 | a {
113 | display: block;
114 | position: relative;
115 | text-align: center;
116 | //border: 2px transparent solid;
117 | }
118 |
119 | a.selected {
120 |
121 | }
122 | }
123 |
124 | .month, .year {
125 | border: 1px @borderColor solid;
126 |
127 | a {
128 | padding-top: 1.3125rem;
129 | padding-bottom: 1.3125rem;
130 | }
131 | }
132 |
133 | .empty {
134 | cursor: default;
135 | }
136 |
137 | .other-day {
138 | display: block;
139 | text-align: center;
140 | color: @grayLight;
141 | padding: .325rem;
142 | background-color: @grayLighter;
143 | border: 1px @borderColor solid;
144 | }
145 |
146 | .exclude {
147 | background-color: @red;
148 | a {
149 | cursor: not-allowed;
150 | background-color: @red;
151 | color: @white;
152 | }
153 | }
154 | .stored {
155 | background-color: @lightPink;
156 | a {
157 | cursor: pointer;
158 | background-color: @lightPink;
159 | color: @white;
160 | }
161 | }
162 | .selected {
163 | background-color: @lightCyan;
164 | a {
165 | background-color: @lightCyan;
166 | color: @white;
167 | }
168 | }
169 | }
170 |
171 | .calendar {
172 | &.rounded {
173 | button {
174 | border-radius: @borderRadius;
175 | }
176 |
177 | .day, .month, .year, .other-day, .today, .calendar-header, .selected {
178 | border-radius: @borderRadius;
179 | }
180 |
181 | .today a, .selected a, .exclude a {
182 | border-radius: @borderRadius;
183 | }
184 |
185 | .calendar-header {
186 | a {
187 | &:hover {
188 | border-radius: @borderRadius;
189 | }
190 | }
191 | }
192 | }
193 | }
194 |
195 | .calendar {
196 | &.no-border {
197 |
198 | .day, .month, .year, .other-day, .today, .calendar-header {
199 | border: 0;
200 | }
201 |
202 | .today a {
203 | border: 0;
204 | }
205 | }
206 | }
207 |
208 | .calendar-dropdown {
209 | border: 0;
210 | .block-shadow;
211 | }
212 |
--------------------------------------------------------------------------------
/src/assets/less/tables.less:
--------------------------------------------------------------------------------
1 | @import (once) "vars";
2 | @import (once) "typography";
3 | @import (once) "utils";
4 |
5 |
6 | .table {
7 | width: 100%;
8 | margin: .625rem 0;
9 |
10 | th, td {
11 | padding: 0.625rem;
12 | }
13 |
14 | thead {
15 | border-bottom: 4px solid @grayLight;
16 |
17 | tr:last-child {
18 | }
19 |
20 | th, td {
21 | cursor: default;
22 | color: @textColor2;
23 | border-color: transparent;
24 | .align-left;
25 | .text-bold;
26 | line-height: 100%;
27 | }
28 | }
29 |
30 | tfoot {
31 | border-top: 4px solid @grayLight;
32 |
33 | tr:last-child {
34 | }
35 |
36 | th, td {
37 | cursor: default;
38 | color: @textColor2;
39 | border-color: transparent;
40 | .align-left;
41 | .text-bold;
42 | line-height: 100%;
43 | }
44 | }
45 |
46 | tbody {
47 | td {
48 | padding: 0.625rem 0.85rem;
49 | }
50 | }
51 |
52 | .sortable-column {
53 | position: relative;
54 | cursor: pointer;
55 | .no-user-select;
56 | &:after {
57 | position: absolute;
58 | content: "";
59 | width: 1rem;
60 | height: 1rem;
61 | left: 100%;
62 | margin-left: -20px;
63 | top: 50%;
64 | margin-top: -.5rem;
65 | color: inherit;
66 | font-size: 1rem;
67 | line-height: 1;
68 | }
69 |
70 | &.sort-asc, &.sort-desc {
71 | background-color: @grayLighter;
72 | &:after {
73 | color: @dark;
74 | }
75 | }
76 |
77 | &.sort-asc {
78 | &:after {
79 | content: "\2191";
80 | }
81 | }
82 |
83 | &.sort-desc {
84 | &:after {
85 | content: "\2193";
86 | }
87 | }
88 | }
89 |
90 | &.sortable-markers-on-left {
91 | .sortable-column {
92 | padding-left: 30px;
93 | &:before, &:after {
94 | left: 0;
95 | margin-left: 10px;
96 | }
97 | }
98 | }
99 |
100 | tr.selected {
101 | td {background-color: rgba(28, 183, 236, 0.10);}
102 | }
103 |
104 | td.selected {
105 | background-color: rgba(28, 183, 236, 0.30);
106 | }
107 |
108 | &.striped {
109 | tbody tr:nth-child(odd) {
110 | background: @grayLighter;
111 | }
112 | }
113 |
114 | &.hovered {
115 | tbody {
116 | tr {
117 | &:hover {
118 | background-color: rgba(28, 183, 236, 0.10);
119 | }
120 | }
121 | }
122 | }
123 |
124 | &.cell-hovered {
125 | tbody {
126 | td {
127 | &:hover {
128 | background-color: rgba(28, 183, 236, 0.30);
129 | }
130 | }
131 | }
132 | }
133 |
134 | &.border {
135 | border: 1px @grayLight solid;
136 | }
137 |
138 | &.bordered {
139 | th, td {
140 | border: 1px @grayLight solid;
141 | }
142 |
143 | thead {
144 | tr:first-child {
145 | th, td {
146 | border-top: none;
147 |
148 | &:first-child {
149 | border-left: none;
150 | }
151 | &:last-child {
152 | border-right: none;
153 | }
154 | }
155 | }
156 | }
157 |
158 | tbody {
159 | tr {
160 |
161 | &:first-child {
162 | td {
163 | border-top: none;
164 | }
165 | }
166 |
167 | td {
168 | &:first-child {
169 | border-left: none;
170 | }
171 | &:last-child {
172 | border-right: none;
173 | }
174 | }
175 |
176 | &:last-child {
177 | td {
178 | border-bottom: none;
179 | }
180 | }
181 | }
182 | }
183 | }
184 |
185 | .condensed {
186 | th, td {padding: .3125rem;}
187 | }
188 | .super-condensed {
189 | th, td {padding: .125rem;}
190 | }
191 | }
192 |
193 | .table {
194 | tbody tr {
195 | &.error {
196 | background-color: @red;
197 | color: @white;
198 | &:hover {
199 | background-color: @lightRed;
200 | }
201 | }
202 | &.warning {
203 | background-color: @orange;
204 | color: @white;
205 | &:hover {
206 | background-color: @lightOrange;
207 | }
208 | }
209 | &.success {
210 | background-color: @green;
211 | color: @white;
212 | &:hover {
213 | background-color: @lightGreen;
214 | }
215 | }
216 | &.info {
217 | background-color: @cyan;
218 | color: @white;
219 | &:hover {
220 | background-color: @lightCyan;
221 | }
222 | }
223 | }
224 | }
--------------------------------------------------------------------------------
/src/assets/less/tabcontrol.less:
--------------------------------------------------------------------------------
1 | @import (once) "vars";
2 | @import (once) "utils";
3 |
4 | .tabcontrol {
5 | //overflow: hidden;
6 | position: relative;
7 | width: 100%;
8 |
9 | .tabs {
10 | width: 100%;
11 | margin: 0;
12 | padding: 0;
13 | list-style: none inside;
14 | border-bottom: 2px @cyan solid;
15 | white-space: nowrap;
16 | overflow: visible;
17 | .clear-float;
18 |
19 | li {
20 | display: block;
21 | //margin: 0 0 -4px -4px;
22 | float: left;
23 | position: relative;
24 | white-space: nowrap;
25 |
26 | a {
27 | display: block;
28 | float: left;
29 | padding: 8px 24px;
30 | color: @dark;
31 | font-size: .6875rem;
32 | font-weight: bold;
33 | text-transform: uppercase;
34 | position: relative;
35 | white-space: nowrap;
36 | }
37 | }
38 |
39 | li {
40 |
41 | &:hover {
42 | a {
43 | background-color: @grayLighter;
44 | }
45 | }
46 |
47 | &.active {
48 | a {
49 | background-color: @cyan;
50 | color: @white;
51 | .text-shadow;
52 | }
53 | }
54 |
55 | &.disabled {
56 | a {
57 | background: @grayLighter linear-gradient(-45deg, rgba(255,255,255,.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,.15) 50%, rgba(255,255,255,.15) 75%, transparent 75%, transparent);
58 | background-size: 40px 40px;
59 | color: @grayLight;
60 |
61 | //.ribbed-grayLighter;
62 | //.fg-grayLight;
63 | cursor: default;
64 | }
65 | }
66 | }
67 |
68 | li {
69 | &.non-visible-tabs {
70 | display: block;
71 | float: right;
72 |
73 | &:empty {
74 | display: none;
75 | }
76 |
77 | &.dropdown-toggle {
78 | height: 100% ;
79 | }
80 | }
81 | }
82 | }
83 |
84 | &.tabs-bottom {
85 | .tabs {
86 | border-bottom: none;
87 | border-top: 2px @cyan solid;
88 |
89 | li.disabled {
90 | top: 0;
91 | }
92 | li:hover {
93 | top: 0;
94 | }
95 | }
96 | }
97 |
98 | .frames {
99 | width: 100%;
100 | //overflow: hidden;
101 | position: relative;
102 |
103 | .frame {
104 | display: block;
105 | position: relative;
106 | width: 100%;
107 | padding: 20px;
108 | background-color: @grayLight;
109 | }
110 | }
111 | }
112 |
113 | .tabcontrol2 {
114 | .tabcontrol;
115 |
116 | .tabs {
117 | border-bottom: 0;
118 | vertical-align: bottom;
119 | z-index: 2;
120 |
121 | li {
122 | padding-top: 2px;
123 | overflow: visible;
124 | margin: 0 2px;
125 |
126 | &:after {
127 | content: "";
128 | position: absolute;
129 | left: 0;
130 | top: 100%;
131 | //margin-top: 1px;
132 | width: 100%;
133 | background-color: @white;
134 | height: 2px;
135 | z-index: 3;
136 | }
137 |
138 | &:not(.active) {
139 | &:after {
140 | background-color: @grayLighter;
141 | height: 1px;
142 | }
143 | }
144 |
145 | &:first-child {
146 | margin-left: 10px;
147 | }
148 |
149 | a {
150 | background-color: @grayLighter;
151 | padding-top: .3125rem;
152 | text-shadow: none ;
153 | }
154 |
155 | &.active {
156 | padding-top: 0;
157 | padding-bottom: 0;
158 | a {
159 | background-color: @white;
160 | border: 1px @grayLighter solid;
161 | border-top: 2px @red solid;
162 | border-bottom: 0;
163 | color: @cyan;
164 | }
165 |
166 | &:hover {
167 | a {background-color: inherit;}
168 | }
169 | }
170 |
171 | &:hover {
172 | a {
173 | background-color: darken(@grayLighter, 5%);
174 | }
175 | }
176 | }
177 | }
178 |
179 | &.tabs-bottom {
180 | .tabs {
181 | border-top: 0;
182 |
183 | li {
184 | padding: 0;
185 |
186 | &:after {
187 | top: -1px ;
188 | background-color: @white;
189 | }
190 |
191 | &.active {
192 | padding-bottom: 0;
193 | a {
194 | border: 1px @grayLighter solid;
195 | border-bottom: 2px @red solid;
196 | border-top: 0;
197 | }
198 | }
199 |
200 | &:not(.active) {
201 | margin-bottom: 0;
202 | &:after {
203 | background-color: @grayLighter;
204 | }
205 | }
206 | }
207 | }
208 | }
209 |
210 | .frames {
211 | z-index: 1;
212 | border: 1px @grayLighter solid;
213 |
214 | .frame {
215 | background-color: @white;
216 | }
217 | }
218 | }
--------------------------------------------------------------------------------
/src/assets/less/breadcrumbs.less:
--------------------------------------------------------------------------------
1 | @import (once) "vars";
2 | @import (once) "typography";
3 | @import (once) "utils";
4 |
5 | .breadcrumbs {
6 | .flush-list;
7 | background-color: @white;
8 | color: #999;
9 | padding: 1rem;
10 |
11 | & > li {
12 | display: inline-block;
13 | color: inherit;
14 | margin: 0 1rem 0 0;
15 | position: relative;
16 | vertical-align: middle;
17 |
18 | &:before, &:after {
19 | display: block;
20 | position: absolute;
21 | vertical-align: middle;
22 | color: transparent;
23 | font-size: 0;
24 | content: "";
25 | height: 1px;
26 | width: .375rem;
27 | background-color: @dark;
28 | top: 50%;
29 | left: 100%;
30 | margin-left: .5rem;
31 | }
32 |
33 | &:before {
34 | .rotate(45deg);
35 | margin-top: -.125rem;
36 | }
37 |
38 | &:after {
39 | .rotate(-45deg);
40 | margin-top: .125rem;
41 | }
42 |
43 | & > a {
44 | color: inherit;
45 | display: inline-block;
46 | line-height: 1;
47 | }
48 |
49 | &:last-child {
50 | color: @dark;
51 | font-weight: bolder;
52 | a {cursor: default;}
53 | &:before, &:after {
54 | background-color: @transparent;
55 | }
56 | }
57 |
58 | &:hover {
59 | color: @dark;
60 | }
61 | }
62 |
63 | img, .icon {
64 | display: inline-block;
65 | line-height: .8;
66 | height: 1rem;
67 | width: 1rem;
68 | font-size: 1rem;
69 | vertical-align: -15%;
70 | }
71 |
72 | &.dark {
73 | background-color: #393832;
74 |
75 | & > li {
76 | &:hover, &:last-child {
77 | color: @white;
78 | }
79 |
80 | &:before, &:after {
81 | background-color: @white;
82 | }
83 | }
84 | }
85 | }
86 |
87 |
88 | .breadcrumbs2 {
89 | margin: 0.625rem 0;
90 | padding: 0;
91 | list-style: none;
92 | overflow: hidden;
93 | width: 100%;
94 |
95 | li {
96 | float: left;
97 | margin: 0 .2em 0 1em;
98 | }
99 |
100 | a {
101 | background: @inputRestState;
102 | padding: .3em 1em;
103 | float: left;
104 | text-decoration: none;
105 | color: @linkColor;
106 | position: relative;
107 |
108 | &:hover {
109 | background: @cyan;
110 | color: @white;
111 |
112 | &:before {
113 | border-color: @cyan @cyan @cyan transparent;
114 | }
115 |
116 | &:after {
117 | border-left-color: @cyan;
118 | }
119 | }
120 |
121 | &:before {
122 | content: "";
123 | position: absolute;
124 | top: 50%;
125 | margin-top: -1.5em;
126 | border-width: 1.5em 0 1.5em 1em;
127 | border-style: solid;
128 | border-color: @inputRestState @inputRestState @inputRestState transparent;
129 | left: -1em;
130 | margin-left: 1px;
131 | }
132 |
133 | &:after {
134 | content: "";
135 | position: absolute;
136 | top: 50%;
137 | margin-top: -1.5em;
138 | border-top: 1.5em solid transparent;
139 | border-bottom: 1.5em solid transparent;
140 | border-left: 1em solid @inputRestState;
141 | right: -1em;
142 | margin-right: 1px;
143 | }
144 | }
145 |
146 | & > li:first-child {
147 | margin-left: 0;
148 | a:before {
149 | content: normal;
150 | }
151 | }
152 |
153 | & > li:last-child {
154 | background: none;
155 | a {
156 | color: @dark;
157 | }
158 | &:after, &:before {
159 | content: normal;
160 | }
161 | &:hover {
162 | a {
163 | color: @white;
164 | }
165 | }
166 | }
167 |
168 | .active, .active:hover {
169 | background: none;
170 | a {
171 | color: @dark;
172 | }
173 | }
174 |
175 | .active:hover {
176 | a {
177 | color: @white;
178 | }
179 | }
180 |
181 | .active {
182 | &:after, &:before {
183 | content: normal;
184 | }
185 | }
186 |
187 | &.small {
188 | a {
189 | padding: .2em 1em;
190 | font-size: 11.9px;
191 | }
192 | }
193 | &.mini {
194 | a {
195 | padding: .1em 1em;
196 | font-size: 10.5px;
197 | }
198 | }
199 |
200 | & > li > a > [class*=mif] {
201 | vertical-align: -10%;
202 | }
203 | }
--------------------------------------------------------------------------------
/src/assets/less/metro-schemes.less:
--------------------------------------------------------------------------------
1 | @import (once) "vars";
2 | @import (once) "scheme-builder";
3 |
4 | // app-bar
5 | /*
6 | * params: name, background, backgroundHover, item, itemHover, itemDisabled, divider, dropdown-toggle
7 | */
8 | #scheme-builder > .app-bar-scheme(pink, @pink, @darkPink, @white, @white, @gray, @lightPink, @white);
9 | #scheme-builder > .app-bar-scheme(darcula, @appBarBackgroundDarcula, @appBarBackgroundActiveDarcula, @white, @white, @gray, @appBarDividerColorDarcula, @white);
10 | #scheme-builder > .app-bar-scheme(navy, @appBarBackground, @appBarBackgroundActive, @white, @white, @gray, @appBarDividerColor, @white);
11 | #scheme-builder > .app-bar-scheme(red, @red, @darkRed, @white, @white, @gray, @lightRed, @white);
12 | #scheme-builder > .app-bar-scheme(green, @green, @darkGreen, @white, @white, @gray, @lightGreen, @white);
13 | #scheme-builder > .app-bar-scheme(orange, @orange, @darkOrange, @white, @white, @gray, @lightOrange, @white);
14 |
15 | // menus
16 | // v-menu, d-menu
17 | /*
18 | * params: name, background, backgroundHover, item, itemHover, itemDisabled, divider, dropdown-toggle
19 | */
20 | #scheme-builder > .d-menu-scheme(darcula, @appBarBackgroundDarcula, @appBarBackgroundActiveDarcula, @white, @white, @gray, @appBarDividerColorDarcula, @white);
21 | #scheme-builder > .d-menu-scheme(pink, @pink, @darkPink, @white, @white, @gray, @lightPink, @white);
22 | #scheme-builder > .d-menu-scheme(navy, @appBarBackground, @appBarBackgroundActive, @white, @white, @gray, @appBarDividerColor, @white);
23 | #scheme-builder > .d-menu-scheme(red, @red, @darkRed, @white, @white, @gray, @lightRed, @white);
24 | #scheme-builder > .d-menu-scheme(green, @green, @darkGreen, @white, @white, @gray, @lightGreen, @white);
25 | #scheme-builder > .d-menu-scheme(orange, @orange, @darkOrange, @white, @white, @gray, @lightOrange, @white);
26 |
27 | // t-menu
28 | /*
29 | * params: name, background, backgroundHover, item, itemHover, itemDisabled, divider, dropdown-toggle
30 | */
31 | #scheme-builder > .t-menu-scheme(darcula, @appBarBackgroundDarcula, @appBarBackgroundActiveDarcula, @white, @white, @gray, @appBarDividerColorDarcula, @white);
32 | #scheme-builder > .t-menu-scheme(pink, @pink, @darkPink, @white, @white, @gray, @lightPink, @white);
33 | #scheme-builder > .t-menu-scheme(navy, @appBarBackground, @appBarBackgroundActive, @white, @white, @gray, @appBarDividerColor, @white);
34 | #scheme-builder > .t-menu-scheme(red, @red, @darkRed, @white, @white, @gray, @lightRed, @white);
35 | #scheme-builder > .t-menu-scheme(green, @green, @darkGreen, @white, @white, @gray, @lightGreen, @white);
36 | #scheme-builder > .t-menu-scheme(orange, @orange, @darkOrange, @white, @white, @gray, @lightOrange, @white);
37 |
38 | // sidebar
39 | /*
40 | * params: name, background, backgroundHover, backgroundActive, item, itemHover, itemActive, itemDisabled
41 | */
42 | #scheme-builder > .sidebar-scheme(darcula, @appBarBackgroundDarcula, lighten(@appBarBackgroundDarcula, 7%), @appBarBackgroundActiveDarcula, @white, @white, @white, @gray);
43 | #scheme-builder > .sidebar-scheme(pink, @pink, lighten(@darkPink, 7%), @darkPink, @white, @white, @white, @gray);
44 | #scheme-builder > .sidebar-scheme(navy, @appBarBackground, lighten(@appBarBackgroundActive, 7%), @appBarBackgroundActive, @white, @white, @white, @gray);
45 | #scheme-builder > .sidebar-scheme(red, @red, lighten(@darkRed, 7%), @darkRed, @white, @white, @white, @gray);
46 | #scheme-builder > .sidebar-scheme(green, @green, lighten(@darkGreen, 7%), @darkGreen, @white, @white, @white, @gray);
47 | #scheme-builder > .sidebar-scheme(orange, @orange, lighten(@darkOrange, 7%), @darkOrange, @white, @white, @white, @gray);
48 |
49 | // calendar
50 | /*
51 | * params: name, background, backgroundHover, backgroundActive, item, itemHover, itemActive, itemDisabled
52 | */
53 | #scheme-builder > .calendar-scheme(darcula, @appBarBackgroundDarcula, lighten(@appBarBackgroundDarcula, 7%), @appBarBackgroundActiveDarcula, @white, @white, @white, @gray, @orange, @appBarBackgroundActiveDarcula, @transparent);
54 | #scheme-builder > .calendar-scheme(pink, @pink, lighten(@darkPink, 7%), @darkPink, @white, @white, @white, @lightPink, @orange, @darkPink, @transparent);
55 | #scheme-builder > .calendar-scheme(navy, @appBarBackground, lighten(@appBarBackgroundActive, 7%), @appBarBackgroundActive, @white, @white, @white, @lightCyan, @orange, @darkBlue, @transparent);
56 | #scheme-builder > .calendar-scheme(red, @red, lighten(@darkRed, 7%), @darkRed, @white, @white, @white, @lightRed, @orange, @darkRed, @transparent);
57 | #scheme-builder > .calendar-scheme(green, @green, lighten(@darkGreen, 7%), @darkGreen, @white, @white, @white, @lightGreen, @orange, @darkGreen, @transparent);
58 | #scheme-builder > .calendar-scheme(orange, @orange, lighten(@darkOrange, 7%), @darkOrange, @white, @white, @white, @lightOrange, @orange, @darkOrange, @transparent);
59 |
--------------------------------------------------------------------------------
/src/template/login.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |

7 |
8 |
APP后台管理系统
9 |
17 |
18 |
19 |
20 |
99 |
--------------------------------------------------------------------------------
/src/assets/less/slider.less:
--------------------------------------------------------------------------------
1 | @import (once) "vars";
2 | @import (once) "animations";
3 | @import (once) "utils";
4 |
5 | .slider {
6 | height: 2.125rem;
7 | line-height: 1;
8 | width: auto;
9 | position: relative;
10 |
11 | .marker {
12 | height: 1rem;
13 | width: 1rem;
14 | cursor: pointer;
15 | position: absolute;
16 | top: 50%;
17 | margin-top: -.5rem;
18 | left: 0;
19 | background-color: @dark;
20 | z-index: 2;
21 |
22 | &:focus, &:active, &hover {
23 | border: 2px @red solid;
24 | }
25 | }
26 |
27 | .slider-backside, .complete {
28 | height: .5rem;
29 | background: @grayLight;
30 | width: 100%;
31 | line-height: 2.125rem;
32 | top: 50%;
33 | margin-top: -.25rem;
34 | position: absolute;
35 | }
36 |
37 | .complete {
38 | width: auto;
39 | background-color: @teal;
40 | z-index: 2;
41 | transition: background .3s ease;
42 | left: 0;
43 | }
44 |
45 | .buffer {
46 | height: 4px;
47 | width: auto;
48 | background-color: @white;
49 | z-index: 1;
50 | transition: background .3s ease;
51 | position: absolute;
52 | top: 50%;
53 | margin-top: -2px;
54 | left: 0;
55 | }
56 |
57 | .slider-hint {
58 | min-width: 1.8rem;
59 | width: auto;
60 | height: auto;
61 | position: absolute;
62 | z-index: 3;
63 | border: 1px #ccc solid;
64 | padding: .25rem;
65 | top: -1.2rem;
66 | text-align: center;
67 | font-size: .625rem;
68 | display: none;
69 | background: @hintColor;
70 |
71 | &:before {
72 | border: 1px #ccc solid;
73 | border-left: 0;
74 | border-top: 0;
75 | content: "";
76 | width: .25rem;
77 | height: .25rem;
78 | display: block;
79 | position: absolute;
80 | background-color: inherit;
81 | margin-top: -0.125rem;
82 | margin-left: -0.15625rem;
83 | top: 100%;
84 | left: 50%;
85 | .rotate(45deg);
86 | }
87 | }
88 |
89 | &.hint-bottom {
90 | .slider-hint {
91 | top: 100%;
92 | margin-top: -.125rem;
93 | &:before {
94 | top: -.0625rem;
95 | .rotate(-135deg);
96 | }
97 | }
98 | }
99 |
100 | &.permanent-hint {
101 | & > .slider-hint {
102 | display: block;
103 | }
104 | }
105 |
106 | &:hover {
107 | .complete {
108 | background-color: @lightTeal;
109 | }
110 | }
111 |
112 | &:active, &:active + .marker:active {
113 | .complete {
114 | background-color: @lightTeal;
115 | }
116 | }
117 |
118 | &.place-left {
119 | margin-right: 20px;
120 | }
121 | &.place-right {
122 | margin-left: 20px;
123 | }
124 |
125 | &.ani {
126 | .complete {
127 | .animate(ani-bg-stripes 2s linear infinite);
128 | }
129 | }
130 | }
131 |
132 | .slider {
133 | &.vertical {
134 | min-height: 100px;
135 | width: 2.125rem;
136 | display: inline-block;
137 |
138 | .slider-backside, .complete {
139 | position: absolute;
140 | height: 100%;
141 | width: .5rem;
142 | bottom: 0;
143 | left: 50%;
144 | margin-left: -.25rem;
145 | top: auto;
146 | }
147 |
148 | .marker {
149 | left: 50%;
150 | top: auto;
151 | margin-left: -.5rem;
152 | }
153 |
154 | .complete {
155 | }
156 |
157 | .buffer {
158 | position: absolute;
159 | height: auto;
160 | width: 6px ;
161 | bottom: 0;
162 | left: 50%;
163 | margin-left: -3px;
164 | top: auto;
165 | }
166 |
167 | .slider-hint {
168 | left: 100%;
169 | margin-top: 0;
170 |
171 | &:before {
172 | height: .25rem;
173 | width: .25rem;
174 | .rotate(135deg);
175 | left: -1px;
176 | top: 50%;
177 | margin-top: -.125rem;
178 | margin-left: -.135rem;
179 | }
180 | }
181 |
182 | &.hint-left {
183 | .slider-hint {
184 | left: -100%;
185 | margin-left: .25rem;
186 |
187 | &:before {
188 | left: 100%;
189 | .rotate(-45deg);
190 | }
191 | }
192 | }
193 | }
194 | }
195 |
196 | .slider.cycle-marker {
197 | .marker {
198 | border-radius: 50%;
199 | }
200 | }
--------------------------------------------------------------------------------
/static/layer-v3.0.3/layer/mobile/need/layer.css:
--------------------------------------------------------------------------------
1 | .layui-m-layer{position:relative;z-index:19891014}.layui-m-layer *{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}.layui-m-layermain,.layui-m-layershade{position:fixed;left:0;top:0;width:100%;height:100%}.layui-m-layershade{background-color:rgba(0,0,0,.7);pointer-events:auto}.layui-m-layermain{display:table;font-family:Helvetica,arial,sans-serif;pointer-events:none}.layui-m-layermain .layui-m-layersection{display:table-cell;vertical-align:middle;text-align:center}.layui-m-layerchild{position:relative;display:inline-block;text-align:left;background-color:#fff;font-size:14px;border-radius:5px;box-shadow:0 0 8px rgba(0,0,0,.1);pointer-events:auto;-webkit-overflow-scrolling:touch;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-duration:.2s;animation-duration:.2s}@-webkit-keyframes layui-m-anim-scale{0%{opacity:0;-webkit-transform:scale(.5);transform:scale(.5)}100%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes layui-m-anim-scale{0%{opacity:0;-webkit-transform:scale(.5);transform:scale(.5)}100%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}.layui-m-anim-scale{animation-name:layui-m-anim-scale;-webkit-animation-name:layui-m-anim-scale}@-webkit-keyframes layui-m-anim-up{0%{opacity:0;-webkit-transform:translateY(800px);transform:translateY(800px)}100%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes layui-m-anim-up{0%{opacity:0;-webkit-transform:translateY(800px);transform:translateY(800px)}100%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}.layui-m-anim-up{-webkit-animation-name:layui-m-anim-up;animation-name:layui-m-anim-up}.layui-m-layer0 .layui-m-layerchild{width:90%;max-width:640px}.layui-m-layer1 .layui-m-layerchild{border:none;border-radius:0}.layui-m-layer2 .layui-m-layerchild{width:auto;max-width:260px;min-width:40px;border:none;background:0 0;box-shadow:none;color:#fff}.layui-m-layerchild h3{padding:0 10px;height:60px;line-height:60px;font-size:16px;font-weight:400;border-radius:5px 5px 0 0;text-align:center}.layui-m-layerbtn span,.layui-m-layerchild h3{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.layui-m-layercont{padding:50px 30px;line-height:22px;text-align:center}.layui-m-layer1 .layui-m-layercont{padding:0;text-align:left}.layui-m-layer2 .layui-m-layercont{text-align:center;padding:0;line-height:0}.layui-m-layer2 .layui-m-layercont i{width:25px;height:25px;margin-left:8px;display:inline-block;background-color:#fff;border-radius:100%;-webkit-animation:layui-m-anim-loading 1.4s infinite ease-in-out;animation:layui-m-anim-loading 1.4s infinite ease-in-out;-webkit-animation-fill-mode:both;animation-fill-mode:both}.layui-m-layerbtn,.layui-m-layerbtn span{position:relative;text-align:center;border-radius:0 0 5px 5px}.layui-m-layer2 .layui-m-layercont p{margin-top:20px}@-webkit-keyframes layui-m-anim-loading{0%,100%,80%{transform:scale(0);-webkit-transform:scale(0)}40%{transform:scale(1);-webkit-transform:scale(1)}}@keyframes layui-m-anim-loading{0%,100%,80%{transform:scale(0);-webkit-transform:scale(0)}40%{transform:scale(1);-webkit-transform:scale(1)}}.layui-m-layer2 .layui-m-layercont i:first-child{margin-left:0;-webkit-animation-delay:-.32s;animation-delay:-.32s}.layui-m-layer2 .layui-m-layercont i.layui-m-layerload{-webkit-animation-delay:-.16s;animation-delay:-.16s}.layui-m-layer2 .layui-m-layercont>div{line-height:22px;padding-top:7px;margin-bottom:20px;font-size:14px}.layui-m-layerbtn{display:box;display:-moz-box;display:-webkit-box;width:100%;height:50px;line-height:50px;font-size:0;border-top:1px solid #D0D0D0;background-color:#F2F2F2}.layui-m-layerbtn span{display:block;-moz-box-flex:1;box-flex:1;-webkit-box-flex:1;font-size:14px;cursor:pointer}.layui-m-layerbtn span[yes]{color:#40AFFE}.layui-m-layerbtn span[no]{border-right:1px solid #D0D0D0;border-radius:0 0 0 5px}.layui-m-layerbtn span:active{background-color:#F6F6F6}.layui-m-layerend{position:absolute;right:7px;top:10px;width:30px;height:30px;border:0;font-weight:400;background:0 0;cursor:pointer;-webkit-appearance:none;font-size:30px}.layui-m-layerend::after,.layui-m-layerend::before{position:absolute;left:5px;top:15px;content:'';width:18px;height:1px;background-color:#999;transform:rotate(45deg);-webkit-transform:rotate(45deg);border-radius:3px}.layui-m-layerend::after{transform:rotate(-45deg);-webkit-transform:rotate(-45deg)}body .layui-m-layer .layui-m-layer-footer{position:fixed;width:95%;max-width:100%;margin:0 auto;left:0;right:0;bottom:10px;background:0 0}.layui-m-layer-footer .layui-m-layercont{padding:20px;border-radius:5px 5px 0 0;background-color:rgba(255,255,255,.8)}.layui-m-layer-footer .layui-m-layerbtn{display:block;height:auto;background:0 0;border-top:none}.layui-m-layer-footer .layui-m-layerbtn span{background-color:rgba(255,255,255,.8)}.layui-m-layer-footer .layui-m-layerbtn span[no]{color:#FD482C;border-top:1px solid #c2c2c2;border-radius:0 0 5px 5px}.layui-m-layer-footer .layui-m-layerbtn span[yes]{margin-top:10px;border-radius:5px}body .layui-m-layer .layui-m-layer-msg{width:auto;max-width:90%;margin:0 auto;bottom:-150px;background-color:rgba(0,0,0,.7);color:#fff}.layui-m-layer-msg .layui-m-layercont{padding:10px 20px}
--------------------------------------------------------------------------------
/src/assets/less/sidebar.less:
--------------------------------------------------------------------------------
1 | @import (once) "vars";
2 | @import (once) "utils";
3 | @import (once) "transform";
4 | @import (once) "typography";
5 | @import (once) "menu";
6 |
7 | .sidebar-container {
8 | background-color: @sidebarBackground;
9 | color: @white;
10 | position: absolute;
11 | top: 0;
12 | left: 0;
13 | bottom: 0;
14 | overflow-x: hidden;
15 | overflow-y: scroll;
16 | }
17 |
18 | .sidebar {
19 | background-color: @sidebarBackground;
20 | color: @white;
21 | position: relative;
22 | width: 100%;
23 | .flush-list;
24 |
25 | li {
26 | display: block;
27 | background-color: inherit;
28 | color: inherit;
29 | position: relative;
30 | height: 52px;
31 |
32 | a {
33 | display: block;
34 | background-color: inherit;
35 | color: inherit;
36 | padding: .625rem 1rem .625rem 3.75rem;
37 | position: relative;
38 | width: 100%;
39 | height: 100%;
40 | line-height: .875rem;
41 |
42 | .icon {
43 | width: 28px;
44 | height: 28px;
45 | font-size: 28px;
46 | line-height: 28px;
47 | vertical-align: middle;
48 | text-align: center;
49 | position: absolute;
50 | left: .625rem;
51 | top: .625rem;
52 | }
53 |
54 | .title, .counter {
55 | display: block;
56 | margin: 0;
57 | white-space: nowrap;
58 | }
59 |
60 | .title {
61 | font-size: .6875rem;
62 | font-weight: bold;
63 | text-transform: uppercase;
64 | }
65 |
66 | .counter {
67 | font-size: .7rem;
68 | font-weight: normal;
69 | }
70 | }
71 | }
72 |
73 | li {
74 |
75 | &:hover {
76 | background-color: #7cc1de;
77 | }
78 |
79 | &.active {
80 | background-color: @sidebarBackgroundActive;
81 | color: @sidebarColor;
82 | }
83 | }
84 | }
85 |
86 | .sidebar {
87 | .transition(.2s, ease);
88 |
89 | &.compact {
90 | width: 52px;
91 | .transition(.2s, ease);
92 |
93 | a {
94 | padding-right: 0;
95 | padding-left: 0;
96 | width: 52px;
97 | }
98 |
99 | .title {
100 | display: none ;
101 | }
102 |
103 | .counter {
104 | position: absolute;
105 | top: 0;
106 | right: 4px;
107 | }
108 | }
109 | }
110 |
111 | .sidebar2 {
112 | .v-menu;
113 | .v-menu > .subdown;
114 | border: 1px @grayLighter solid;
115 | width: 100%;
116 |
117 | li {
118 | border-top: 1px @grayLighter solid;
119 | cursor: default;
120 |
121 | &.stick {
122 | position: relative;
123 | &:before {
124 | content: "";
125 | position: absolute;
126 | width: 7px;
127 | height: 44px;
128 | left: -7px;
129 | text-indent: -9999px;
130 | border-top-left-radius: 5px;
131 | border-bottom-left-radius: 5px;
132 | background-color: inherit;
133 | }
134 | }
135 |
136 | &.disabled {
137 | background-color: inherit;
138 | &:hover {border-top: 1px @grayLighter solid;}
139 | }
140 |
141 | a {
142 | background-color: @white;
143 | color: #323232;
144 | white-space: normal;
145 | min-width: 0;
146 |
147 | .icon {
148 | color: inherit ;
149 | }
150 | }
151 | }
152 |
153 | li.title {
154 | padding: 20px 20px 10px 20px;
155 | font-size: 24px;
156 | border: 0;
157 |
158 | &:hover {
159 | background-color: inherit;
160 | }
161 | }
162 |
163 | li:not(.title) + li.title {
164 | border-top: 1px @grayLighter solid;
165 |
166 | }
167 |
168 | li.active {
169 | background-color: #71b1d1;
170 | border: none;
171 |
172 | a {
173 | background-color: #71b1d1;
174 | color: @white;
175 |
176 | .icon {
177 | color: inherit;
178 | }
179 | }
180 | }
181 |
182 | li {
183 | &:hover {
184 | a {background-color: #7cc1de;}
185 | }
186 | &.disabled {
187 | &:hover a {
188 | background-color: inherit;
189 | }
190 | }
191 | }
192 |
193 | li li:not(:hover) {
194 | color: @dark ;
195 |
196 | a {
197 | background-color: @white;
198 | }
199 | }
200 |
201 | .dropdown-toggle {
202 | &:before {
203 | .transition(.3s);
204 | }
205 |
206 | &.active-toggle {
207 | &:before {
208 | .rotate135;
209 | .transition(.3s);
210 | }
211 | }
212 | }
213 | }
214 |
215 | .sidebar2 {
216 | &.dark {
217 | li {
218 | border-top: 1px #5c5c5c solid;
219 |
220 | &.title {
221 | background-color: #3D3D3D;
222 | color: @white;
223 | }
224 | }
225 |
226 | li a {
227 | background-color: #3D3D3D;
228 | color: @white;
229 |
230 | &:hover {
231 | background-color: #262626;
232 | color: @white;
233 | }
234 | }
235 |
236 | li:not(.title) + li.title, li.disabled {
237 | border-top-color: #5c5c5c;
238 |
239 | }
240 |
241 | li.disabled {
242 | &:hover {
243 | border-top-color: #5c5c5c ;
244 | a {
245 | background-color: #3D3D3D;
246 | }
247 | }
248 |
249 | a {
250 | color: @grayLight;
251 | }
252 | }
253 |
254 | li.active {
255 | a {
256 | background-color: @red;
257 | }
258 | }
259 |
260 | .dropdown-toggle {
261 | &:before {
262 | border-color: @white;
263 | }
264 | }
265 |
266 | .d-menu {
267 | li a {
268 | background-color: #3D3D3D;
269 | color: @white;
270 |
271 | &:hover {
272 | background-color: #262626;
273 | color: @white;
274 | }
275 | }
276 | }
277 | }
278 | }
279 |
--------------------------------------------------------------------------------
/src/assets/less/metro-icons-animation.less:
--------------------------------------------------------------------------------
1 | @import (once) "transform";
2 | @import (once) "animations";
3 |
4 | .mif-ani-spin,
5 | .mif-ani-hover-spin:hover {
6 | .animate( ani-spin 1.5s linear infinite);
7 | }
8 |
9 | .mif-ani-spin.mif-ani-fast,
10 | .mif-ani-hover-spin.mif-ani-fast:hover {
11 | .animate(ani-spin 0.7s linear infinite);
12 | }
13 |
14 | .mif-ani-spin.mif-ani-slow,
15 | .mif-ani-hover-spin.mif-ani-slow:hover {
16 | .animate(ani-spin 2.2s linear infinite);
17 | }
18 |
19 | .mif-ani-pulse,
20 | .mif-ani-hover-pulse:hover {
21 | .animate(ani-pulse 1.7s infinite);
22 | }
23 |
24 | .mif-ani-pulse.mif-ani-fast,
25 | .mif-ani-hover-pulse.mif-ani-fast:hover {
26 | .animate(ani-pulse 1s infinite);
27 | }
28 |
29 | .mif-ani-pulse.mif-ani-slow,
30 | .mif-ani-hover-pulse.mif-ani-slow:hover {
31 | .animate(ani-pulse 3s infinite);
32 | }
33 |
34 | .mif-ani-spanner,
35 | .mif-ani-hover-spanner:hover {
36 | transform-origin-x: 90%;
37 | transform-origin-y: 35%;
38 | transform-origin-z: initial;
39 | .animate( ani-wrench 2.5s ease infinite );
40 | }
41 |
42 | .mif-ani-spanner.mif-ani-fast,
43 | .mif-ani-hover-spanner.mif-ani-fast:hover {
44 | .animate(ani-wrench 1.2s ease infinite);
45 | }
46 |
47 | .mif-ani-spanner.mif-ani-slow,
48 | .mif-ani-hover-spanner.mif-ani-slow:hover {
49 | .animate(ani-wrench 3.7s ease infinite);
50 | }
51 |
52 | .mif-ani-ring,
53 | .mif-ani-hover-ring:hover {
54 | transform-origin-x: 50%;
55 | transform-origin-y: 0px;
56 | transform-origin-z: initial;
57 | .animate(ani-ring 2s ease infinite);
58 | }
59 |
60 | .mif-ani-ring.mif-ani-fast,
61 | .mif-ani-hover-ring.mif-ani-fast:hover {
62 | .animate(ani-ring 1s ease infinite);
63 | }
64 |
65 | .mif-ani-ring.mif-ani-slow,
66 | .mif-ani-hover-ring.mif-ani-slow:hover {
67 | .animate( ani-ring 3s ease infinite );
68 | }
69 |
70 | .mif-ani-vertical,
71 | .mif-ani-hover-vertical:hover {
72 | .animate(ani-vertical 2s ease infinite);
73 | }
74 |
75 | .mif-ani-vertical.mif-ani-fast,
76 | .mif-ani-vertical.mif-ani-fast:hover {
77 | .animate( ani-vertical 1s ease infinite);
78 | }
79 |
80 | .mif-ani-vertical.mif-ani-slow,
81 | .mif-ani-hover-vertical.mif-ani-slow:hover {
82 | .animate( ani-vertical 4s ease infinite);
83 | }
84 |
85 | .mif-ani-horizontal,
86 | .mif-ani-hover-horizontal:hover {
87 | .animate(ani-horizontal 2s ease infinite);
88 | }
89 |
90 | .mif-ani-horizontal.mif-ani-fast,
91 | .mif-ani-horizontal.mif-ani-fast:hover {
92 | .animate(ani-horizontal 1s ease infinite);
93 | }
94 |
95 | .mif-ani-horizontal.mif-ani-slow,
96 | .mif-ani-horizontal.mif-ani-slow:hover {
97 | .animate( ani-horizontal 3s ease infinite);
98 | }
99 |
100 | .mif-ani-flash,
101 | .mif-ani-hover-flash:hover {
102 | .animate(ani-flash 2s ease infinite);
103 | }
104 |
105 | .mif-ani-flash.mif-ani-fast,
106 | .mif-ani-hover-flash.mif-ani-fast:hover {
107 | .animate(ani-flash 1s ease infinite);
108 | }
109 |
110 | .mif-ani-flash.mif-ani-slow,
111 | .mif-ani-hover-flash.mif-ani-slow:hover {
112 | .animate(ani-flash 3s ease infinite);
113 | }
114 |
115 | .mif-ani-bounce,
116 | .mif-ani-hover-bounce:hover {
117 | .animate(ani-bounce 2s ease infinite);
118 | }
119 |
120 | .mif-ani-bounce.mif-ani-fast,
121 | .mif-ani-hover-bounce.mif-ani-fast:hover {
122 | .animate(ani-bounce 1s ease infinite);
123 | }
124 |
125 | .mif-ani-bounce.mif-ani-slow,
126 | .mif-ani-hover-bounce.mif-ani-slow:hover {
127 | .animate(ani-bounce 3s ease infinite);
128 | }
129 |
130 | .mif-ani-float,
131 | .mif-ani-hover-float:hover {
132 | .animate(ani-float 2s linear infinite);
133 | }
134 |
135 | .mif-ani-float.mif-ani-fast,
136 | .mif-ani-hover-float.mif-ani-fast:hover {
137 | .animate(ani-float 1s linear infinite);
138 | }
139 |
140 | .mif-ani-float.mif-ani-slow,
141 | .mif-ani-hover-float.mif-ani-slow:hover {
142 | .animate(ani-float 3s linear infinite);
143 | }
144 |
145 | .mif-ani-heartbeat,
146 | .mif-ani-hover-heartbeat:hover {
147 | .animate(ani-heartbeat 2s linear infinite);
148 | }
149 |
150 | .mif-ani-heartbeat.mif-ani-fast,
151 | .mif-ani-hover-heartbeat.mif-ani-fast:hover {
152 | .animate(ani-heartbeat 1s linear infinite);
153 | }
154 |
155 | .mif-ani-heartbeat.mif-ani-slow,
156 | .mif-ani-hover-heartbeat.mif-ani-slow:hover {
157 | .animate(ani-heartbeat 3s linear infinite);
158 | }
159 |
160 | .mif-ani-shake,
161 | .mif-ani-hover-shake:hover {
162 | .animate(ani-wrench 2.5s ease infinite);
163 | }
164 |
165 | .mif-ani-shake.mif-ani-fast,
166 | .mif-ani-hover-shake.mif-ani-fast:hover {
167 | .animate(ani-wrench 1.2s ease infinite);
168 | }
169 |
170 | .mif-ani-shake.mif-ani-slow,
171 | .mif-ani-hover-shake.mif-ani-slow:hover {
172 | .animate(ani-wrench 3.7s ease infinite);
173 | }
174 |
175 | .mif-ani-shuttle,
176 | .mif-ani-hover-shuttle:hover {
177 | .animate(ani-shuttle 2s linear infinite);
178 | }
179 |
180 | .mif-ani-shuttle.mif-ani-fast,
181 | .mif-ani-hover-shuttle.mif-ani-fast:hover {
182 | .animate(ani-shuttle 1s linear infinite);
183 | }
184 |
185 | .mif-ani-shuttle.mif-ani-slow,
186 | .mif-ani-hover-shuttle.mif-ani-slow:hover {
187 | .animate(ani-shuttle 3s linear infinite);
188 | }
189 |
190 | .mif-ani-pass,
191 | .mif-ani-hover-pass:hover {
192 | .animate(ani-pass 2s linear infinite);
193 | }
194 |
195 | .mif-ani-pass.mif-ani-fast,
196 | .mif-ani-hover-pass.mif-ani-fast:hover {
197 | .animate(ani-pass 1s linear infinite);
198 | }
199 |
200 | .mif-ani-pass.mif-ani-slow,
201 | .mif-ani-hover-pass.mif-ani-slow:hover {
202 | .animate(ani-pass 3s linear infinite);
203 | }
204 |
205 | .mif-ani-ripple,
206 | .mif-ani-hover-ripple:hover {
207 | .animate(ani-ripple 2s infinite linear);
208 | }
209 |
210 | .mif-ani-ripple.mif-ani-fast,
211 | .mif-ani-hover-ripple.mif-ani-fast:hover {
212 | .animate(ani-ripple 1s infinite linear);
213 | }
214 |
215 | .mif-ani-ripple.mif-ani-slow,
216 | .mif-ani-hover-ripple.mif-ani-slow:hover {
217 | .animate(ani-ripple 3s infinite linear);
218 | }
219 |
220 |
--------------------------------------------------------------------------------
/src/assets/less/fluent-menu.less:
--------------------------------------------------------------------------------
1 | @import (once) "vars";
2 | @import (once) "utils";
3 |
4 | .fluent-menu {
5 |
6 | .tabs-holder {
7 | list-style: none;
8 | position: relative;
9 | margin: 0;
10 | padding: 0;
11 | display: block;
12 | z-index: 2;
13 | .clear-float;
14 |
15 | li {
16 | display: block;
17 | float: left;
18 | margin-right: 5px;
19 | background-color: #ffffff;
20 |
21 | a {
22 | display: block;
23 | float: left;
24 | padding: .25rem 1rem;
25 | text-transform: uppercase;
26 | font-size: .8em;
27 | color: @fmTabRestColor;
28 |
29 | &:hover {
30 | color: @fmTabActiveColor;
31 | }
32 | }
33 |
34 | &:first-child {
35 | margin-left: 0;
36 | }
37 |
38 | &.active {
39 | border: 1px @fmBorderColor solid;
40 | border-bottom-color: @white;
41 | a {
42 | color: @fmTabActiveColor;
43 | }
44 | }
45 | &.special {
46 | border: 1px @fmTabActiveColor solid;
47 | background-color: @fmTabActiveColor;
48 | a {
49 | color: @white;
50 | &:hover {
51 | color: @white;
52 | }
53 | }
54 | }
55 | }
56 | }
57 |
58 | .tabs-content {
59 | z-index: 1;
60 | position: relative;
61 | margin-top: -1px;
62 | border: 1px @fmBorderColor solid;
63 | background-color: #ffffff;
64 | height: 120px;
65 |
66 | .tab-panel {
67 | display: block;
68 | height: 100%;
69 | padding: 5px 0 2px;
70 |
71 |
72 | .tab-panel-group {
73 | height: 100%;
74 | position: relative;
75 | display: block;
76 | float: left;
77 | padding: 0 5px;
78 | border-right: 1px @fmBorderColor solid;
79 |
80 | &:last-child {
81 | margin-right: 0;
82 | }
83 | }
84 |
85 | .tab-group-caption {
86 | font-size: 10px;
87 | margin: 2px 0 -2px;
88 | text-align: center;
89 | display: block;
90 | position: absolute;
91 | bottom: 0;
92 | right: 0;
93 | left: 0;
94 | white-space: nowrap;
95 | background: @grayLighter;
96 | }
97 |
98 | .tab-group-content {
99 |
100 | }
101 |
102 | .tab-content-segment {
103 | display: block;
104 | float: left;
105 | position: relative;
106 | }
107 |
108 | .tab-content-composit {
109 |
110 | }
111 | }
112 | }
113 | }
114 |
115 | // Buttons
116 |
117 | .fluent-menu {
118 | .fluent-button, .fluent-big-button, .fluent-tool-button {
119 | background-color: @white;
120 | padding: .3125rem;
121 | display: block;
122 | cursor: default;
123 | border: 0;
124 | outline: none;
125 | font-size: .8em;
126 | line-height: 1.2;
127 | vertical-align: middle;
128 |
129 | &:hover {
130 | background-color: @fmElementHoverBackground;
131 | }
132 | img, .icon, [class*=mif-] {
133 | line-height: 1.2;
134 | display: block;
135 | float: left;
136 | margin-right: 5px;
137 | width: 16px;
138 | height: 16px;
139 | color: @fmTabRestColor;
140 | vertical-align: middle;
141 | }
142 |
143 | .label {
144 | display: inline-block;
145 | color: inherit;
146 | font: inherit;
147 | }
148 |
149 | &:active {
150 | top: 0;
151 | left: 0;
152 | background-color: darken(@fmElementHoverBackground, 20%);
153 | }
154 |
155 | &.dropdown-toggle {
156 | &:before {
157 | margin-top: -.3125rem;
158 | }
159 | }
160 | }
161 |
162 | .fluent-big-button {
163 | padding: 7px 5px;
164 | text-align: center;
165 | white-space: normal;
166 | line-height: 12px;
167 | float: left;
168 | position: relative;
169 |
170 | img, .icon, [class*=mif-] {
171 | display: block;
172 | width: 40px;
173 | height: 40px;
174 | font-size: 40px;
175 | float: none;
176 | text-align: center;
177 | margin: 5px auto 5px;
178 | }
179 |
180 | br {
181 | line-height: 4px;
182 | height: 4px;
183 | font-size: 4px;
184 | }
185 |
186 | }
187 |
188 | .fluent-tool-button {
189 | padding: 4px;
190 | img, [class*="icon-"] {
191 | display: block;
192 | width: 16px;
193 | height: 16px;
194 | font-size: 16px;
195 | float: none;
196 | text-align: center;
197 | }
198 | img {
199 | margin-right: 0;
200 | }
201 | }
202 |
203 | .dropdown-toggle {
204 | padding-right: 24px;
205 | }
206 |
207 | .d-menu {
208 | position: absolute;
209 | top: 100%;
210 | z-index: 100;
211 | a {
212 | padding: 4px 24px;
213 | font-size: .8em;
214 | &:hover {
215 | background-color: @fmElementHoverBackground;
216 | color: @fmTabRestColor;
217 | }
218 | }
219 | }
220 | }
--------------------------------------------------------------------------------