├── src
├── icons
│ ├── iconfont.js
│ ├── index.js
│ └── svg
│ │ ├── icon-quanxian.svg
│ │ ├── icon-shangcheng.svg
│ │ ├── icon-caidan.svg
│ │ ├── icon-zhibo.svg
│ │ ├── icon-kecheng.svg
│ │ ├── icon-jiaowu.svg
│ │ ├── icon-shouye.svg
│ │ └── icon-zhanghu.svg
├── router
│ ├── import-production.js
│ └── import-development.js
├── assets
│ ├── img
│ │ ├── car.png
│ │ ├── deal.png
│ │ ├── line.png
│ │ ├── time.png
│ │ ├── address.png
│ │ ├── alpay.png
│ │ ├── avatar.png
│ │ ├── buyer.png
│ │ ├── icons.png
│ │ ├── invoice.png
│ │ ├── message.png
│ │ ├── remarks.png
│ │ ├── revise.png
│ │ ├── userImg.jpg
│ │ ├── visit.png
│ │ ├── bitmap@2x.png
│ │ ├── buyer-img.png
│ │ ├── icon_pdf.png
│ │ ├── login-bg.png
│ │ ├── unionpay.png
│ │ ├── weixinpay.png
│ │ ├── base_z36574a.png
│ │ ├── emptyPic
│ │ │ ├── 404.png
│ │ │ ├── cart-empty.png
│ │ │ ├── not-found.png
│ │ │ ├── address-empty.png
│ │ │ ├── collect-empty.png
│ │ │ ├── coupon-empty.png
│ │ │ ├── loading-fail.png
│ │ │ ├── order-empty.png
│ │ │ └── search-empty.png
│ │ ├── icon-pay-wx.png
│ │ ├── login-logo.png
│ │ ├── notebook@3x.png
│ │ ├── pay-success.png
│ │ ├── pom-pom@3x.png
│ │ ├── icon_customer.png
│ │ ├── index_z354723.png
│ │ ├── protractor@3x.png
│ │ ├── icon-pay-school.png
│ │ ├── icon_service@2x.png
│ │ ├── login_illustration.png
│ │ ├── bg_mobile_foot_default2968da.png
│ │ ├── bg_mobile_head_default2968da.png
│ │ └── message.svg
│ └── scss
│ │ ├── wechat
│ │ └── index.scss
│ │ ├── index.scss
│ │ └── _variables.scss
├── components
│ ├── v-calendar
│ │ ├── utils
│ │ │ ├── defaults
│ │ │ │ ├── screens.json
│ │ │ │ ├── touch.json
│ │ │ │ ├── masks.json
│ │ │ │ └── index.js
│ │ │ ├── mixins
│ │ │ │ ├── index.js
│ │ │ │ ├── safeScopedSlot.js
│ │ │ │ └── child.js
│ │ │ ├── index.js
│ │ │ ├── setup.js
│ │ │ ├── buildMediaQuery.js
│ │ │ ├── _.js
│ │ │ ├── attributeStore.js
│ │ │ ├── screens.js
│ │ │ └── popovers.js
│ │ ├── components
│ │ │ ├── index.js
│ │ │ ├── SvgIcon.vue
│ │ │ ├── TimeSelect.vue
│ │ │ └── CustomTransition.vue
│ │ └── lib.js
│ ├── icon-svg
│ │ └── index.vue
│ ├── pic-upload
│ │ └── index.vue
│ ├── pagination.vue
│ └── img-upload
│ │ └── index.vue
├── element-ui-theme
│ └── fonts
│ │ ├── element-icons.ttf
│ │ └── element-icons.woff
├── views
│ ├── common
│ │ ├── home.vue
│ │ ├── home copy.vue
│ │ └── 404.vue
│ ├── store
│ │ ├── about.vue
│ │ └── css
│ │ │ └── uc-order.css
│ ├── modules
│ │ ├── corp
│ │ │ ├── pset
│ │ │ │ ├── base-config.vue
│ │ │ │ ├── quick-config.vue
│ │ │ │ ├── wx-config.vue
│ │ │ │ └── oss-config.vue
│ │ │ └── log.vue
│ │ ├── user
│ │ │ └── meal.vue
│ │ ├── teacher
│ │ │ └── live.vue
│ │ └── edu
│ │ │ ├── distr-add-or-update.vue
│ │ │ └── distr.vue
│ ├── college
│ │ └── pay-success.vue
│ ├── headmaster
│ │ ├── article-detail.vue
│ │ └── notice-detail.vue
│ └── main-sidebar-sub-menu.vue
├── store
│ ├── modules
│ │ ├── cartNumber.js
│ │ ├── user.js
│ │ ├── prod.js
│ │ └── common.js
│ └── index.js
├── utils
│ ├── constant.js
│ ├── validate.js
│ ├── addr.js
│ └── pageUtil.js
├── App.vue
├── crud
│ ├── corp
│ │ ├── area.js
│ │ ├── shortmsg.js
│ │ ├── role.js
│ │ ├── config.js
│ │ ├── log.js
│ │ └── user.js
│ ├── basis
│ │ ├── job.js
│ │ ├── school.js
│ │ └── staff.js
│ ├── prod
│ │ ├── spec.js
│ │ ├── transport.js
│ │ ├── prodTag.js
│ │ ├── prodComm.js
│ │ ├── course-select.js
│ │ ├── prodList.js
│ │ └── indexImg.js
│ ├── edu
│ │ ├── distr.js
│ │ ├── distr-detail.js
│ │ └── course.js
│ ├── tenant
│ │ └── corp.js
│ └── user
│ │ └── balance.js
├── i18n
│ └── i18n.js
└── main.js
├── test
├── unit
│ ├── setup.js
│ ├── .eslintrc
│ ├── specs
│ │ └── HelloWorld.spec.js
│ └── jest.conf.js
└── e2e
│ ├── specs
│ └── test.js
│ ├── custom-assertions
│ └── elementCount.js
│ ├── nightwatch.conf.js
│ └── runner.js
├── .eslintignore
├── config
├── prod.env.js
├── test.env.js
└── dev.env.js
├── screenshots
├── IMG_1.png
├── IMG_2.png
├── IMG_3.png
├── IMG_4.png
├── IMG_5.png
├── IMG_6.png
├── IMG_7.png
├── IMG_8.png
├── IMG_9.png
└── IMG_10.png
├── static
├── doctype
│ └── pdf.png
├── plugins
│ └── tinymce.4.9.4
│ │ ├── plugins
│ │ ├── help
│ │ │ ├── img
│ │ │ │ └── logo.png
│ │ │ └── index.js
│ │ ├── emoticons
│ │ │ ├── img
│ │ │ │ ├── smiley-cool.gif
│ │ │ │ ├── smiley-cry.gif
│ │ │ │ ├── smiley-kiss.gif
│ │ │ │ ├── smiley-wink.gif
│ │ │ │ ├── smiley-yell.gif
│ │ │ │ ├── smiley-frown.gif
│ │ │ │ ├── smiley-sealed.gif
│ │ │ │ ├── smiley-smile.gif
│ │ │ │ ├── smiley-innocent.gif
│ │ │ │ ├── smiley-laughing.gif
│ │ │ │ ├── smiley-surprised.gif
│ │ │ │ ├── smiley-undecided.gif
│ │ │ │ ├── smiley-embarassed.gif
│ │ │ │ ├── smiley-money-mouth.gif
│ │ │ │ ├── smiley-tongue-out.gif
│ │ │ │ └── smiley-foot-in-mouth.gif
│ │ │ ├── index.js
│ │ │ ├── plugin.min.js
│ │ │ └── plugin.js
│ │ ├── hr
│ │ │ ├── index.js
│ │ │ ├── plugin.min.js
│ │ │ └── plugin.js
│ │ ├── toc
│ │ │ └── index.js
│ │ ├── code
│ │ │ ├── index.js
│ │ │ └── plugin.min.js
│ │ ├── link
│ │ │ └── index.js
│ │ ├── save
│ │ │ ├── index.js
│ │ │ └── plugin.min.js
│ │ ├── anchor
│ │ │ ├── index.js
│ │ │ └── plugin.min.js
│ │ ├── bbcode
│ │ │ ├── index.js
│ │ │ └── plugin.min.js
│ │ ├── image
│ │ │ └── index.js
│ │ ├── lists
│ │ │ └── index.js
│ │ ├── media
│ │ │ └── index.js
│ │ ├── paste
│ │ │ └── index.js
│ │ ├── print
│ │ │ ├── index.js
│ │ │ ├── plugin.min.js
│ │ │ └── plugin.js
│ │ ├── table
│ │ │ └── index.js
│ │ ├── advlist
│ │ │ ├── index.js
│ │ │ └── plugin.min.js
│ │ ├── charmap
│ │ │ └── index.js
│ │ ├── preview
│ │ │ ├── index.js
│ │ │ └── plugin.min.js
│ │ ├── autolink
│ │ │ ├── index.js
│ │ │ └── plugin.min.js
│ │ ├── autosave
│ │ │ └── index.js
│ │ ├── fullpage
│ │ │ └── index.js
│ │ ├── tabfocus
│ │ │ ├── index.js
│ │ │ └── plugin.min.js
│ │ ├── template
│ │ │ └── index.js
│ │ ├── importcss
│ │ │ └── index.js
│ │ ├── pagebreak
│ │ │ ├── index.js
│ │ │ └── plugin.min.js
│ │ ├── textcolor
│ │ │ └── index.js
│ │ ├── wordcount
│ │ │ └── index.js
│ │ ├── autoresize
│ │ │ ├── index.js
│ │ │ └── plugin.min.js
│ │ ├── codesample
│ │ │ └── index.js
│ │ ├── colorpicker
│ │ │ ├── index.js
│ │ │ └── plugin.min.js
│ │ ├── contextmenu
│ │ │ ├── index.js
│ │ │ └── plugin.min.js
│ │ ├── fullscreen
│ │ │ ├── index.js
│ │ │ └── plugin.min.js
│ │ ├── imagetools
│ │ │ └── index.js
│ │ ├── nonbreaking
│ │ │ ├── index.js
│ │ │ └── plugin.min.js
│ │ ├── noneditable
│ │ │ ├── index.js
│ │ │ └── plugin.min.js
│ │ ├── textpattern
│ │ │ └── index.js
│ │ ├── visualchars
│ │ │ └── index.js
│ │ ├── legacyoutput
│ │ │ └── index.js
│ │ ├── spellchecker
│ │ │ └── index.js
│ │ ├── visualblocks
│ │ │ ├── index.js
│ │ │ └── plugin.min.js
│ │ ├── searchreplace
│ │ │ └── index.js
│ │ ├── directionality
│ │ │ ├── index.js
│ │ │ ├── plugin.min.js
│ │ │ └── plugin.js
│ │ └── insertdatetime
│ │ │ ├── index.js
│ │ │ └── plugin.min.js
│ │ ├── skins
│ │ └── lightgray
│ │ │ ├── img
│ │ │ ├── trans.gif
│ │ │ ├── anchor.gif
│ │ │ ├── loader.gif
│ │ │ └── object.gif
│ │ │ ├── fonts
│ │ │ ├── tinymce.eot
│ │ │ ├── tinymce.ttf
│ │ │ ├── tinymce.woff
│ │ │ ├── tinymce-small.eot
│ │ │ ├── tinymce-small.ttf
│ │ │ ├── tinymce-mobile.woff
│ │ │ └── tinymce-small.woff
│ │ │ └── content.mobile.min.css
│ │ └── themes
│ │ ├── inlite
│ │ └── index.js
│ │ ├── mobile
│ │ └── index.js
│ │ └── modern
│ │ └── index.js
└── config
│ ├── index.js
│ ├── index-dev.js
│ └── index-prod.js
├── .editorconfig
├── .postcssrc.js
├── .gitignore
├── .babelrc
├── .prettierrc
├── .eslintrc.js
├── LICENSE
├── README.md
└── index.html
/src/icons/iconfont.js:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/test/unit/setup.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue'
2 |
3 | Vue.config.productionTip = false
4 |
--------------------------------------------------------------------------------
/.eslintignore:
--------------------------------------------------------------------------------
1 | /build/
2 | /config/
3 | /dist/
4 | /*.js
5 | /test/unit/coverage/
6 | /src/
7 |
--------------------------------------------------------------------------------
/config/prod.env.js:
--------------------------------------------------------------------------------
1 | 'use strict'
2 | module.exports = {
3 | NODE_ENV: '"production"'
4 | }
5 |
--------------------------------------------------------------------------------
/src/router/import-production.js:
--------------------------------------------------------------------------------
1 | module.exports = file => () => import('@/views/' + file + '.vue')
2 |
--------------------------------------------------------------------------------
/screenshots/IMG_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sixnine-edu/sixnine-edu-school/HEAD/screenshots/IMG_1.png
--------------------------------------------------------------------------------
/screenshots/IMG_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sixnine-edu/sixnine-edu-school/HEAD/screenshots/IMG_2.png
--------------------------------------------------------------------------------
/screenshots/IMG_3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sixnine-edu/sixnine-edu-school/HEAD/screenshots/IMG_3.png
--------------------------------------------------------------------------------
/screenshots/IMG_4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sixnine-edu/sixnine-edu-school/HEAD/screenshots/IMG_4.png
--------------------------------------------------------------------------------
/screenshots/IMG_5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sixnine-edu/sixnine-edu-school/HEAD/screenshots/IMG_5.png
--------------------------------------------------------------------------------
/screenshots/IMG_6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sixnine-edu/sixnine-edu-school/HEAD/screenshots/IMG_6.png
--------------------------------------------------------------------------------
/screenshots/IMG_7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sixnine-edu/sixnine-edu-school/HEAD/screenshots/IMG_7.png
--------------------------------------------------------------------------------
/screenshots/IMG_8.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sixnine-edu/sixnine-edu-school/HEAD/screenshots/IMG_8.png
--------------------------------------------------------------------------------
/screenshots/IMG_9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sixnine-edu/sixnine-edu-school/HEAD/screenshots/IMG_9.png
--------------------------------------------------------------------------------
/src/router/import-development.js:
--------------------------------------------------------------------------------
1 | module.exports = file => require('@/views/' + file + '.vue').default
2 |
--------------------------------------------------------------------------------
/test/unit/.eslintrc:
--------------------------------------------------------------------------------
1 | {
2 | "env": {
3 | "jest": true
4 | },
5 | "globals": {
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/screenshots/IMG_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sixnine-edu/sixnine-edu-school/HEAD/screenshots/IMG_10.png
--------------------------------------------------------------------------------
/src/assets/img/car.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sixnine-edu/sixnine-edu-school/HEAD/src/assets/img/car.png
--------------------------------------------------------------------------------
/src/assets/img/deal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sixnine-edu/sixnine-edu-school/HEAD/src/assets/img/deal.png
--------------------------------------------------------------------------------
/src/assets/img/line.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sixnine-edu/sixnine-edu-school/HEAD/src/assets/img/line.png
--------------------------------------------------------------------------------
/src/assets/img/time.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sixnine-edu/sixnine-edu-school/HEAD/src/assets/img/time.png
--------------------------------------------------------------------------------
/static/doctype/pdf.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sixnine-edu/sixnine-edu-school/HEAD/static/doctype/pdf.png
--------------------------------------------------------------------------------
/src/assets/img/address.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sixnine-edu/sixnine-edu-school/HEAD/src/assets/img/address.png
--------------------------------------------------------------------------------
/src/assets/img/alpay.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sixnine-edu/sixnine-edu-school/HEAD/src/assets/img/alpay.png
--------------------------------------------------------------------------------
/src/assets/img/avatar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sixnine-edu/sixnine-edu-school/HEAD/src/assets/img/avatar.png
--------------------------------------------------------------------------------
/src/assets/img/buyer.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sixnine-edu/sixnine-edu-school/HEAD/src/assets/img/buyer.png
--------------------------------------------------------------------------------
/src/assets/img/icons.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sixnine-edu/sixnine-edu-school/HEAD/src/assets/img/icons.png
--------------------------------------------------------------------------------
/src/assets/img/invoice.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sixnine-edu/sixnine-edu-school/HEAD/src/assets/img/invoice.png
--------------------------------------------------------------------------------
/src/assets/img/message.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sixnine-edu/sixnine-edu-school/HEAD/src/assets/img/message.png
--------------------------------------------------------------------------------
/src/assets/img/remarks.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sixnine-edu/sixnine-edu-school/HEAD/src/assets/img/remarks.png
--------------------------------------------------------------------------------
/src/assets/img/revise.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sixnine-edu/sixnine-edu-school/HEAD/src/assets/img/revise.png
--------------------------------------------------------------------------------
/src/assets/img/userImg.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sixnine-edu/sixnine-edu-school/HEAD/src/assets/img/userImg.jpg
--------------------------------------------------------------------------------
/src/assets/img/visit.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sixnine-edu/sixnine-edu-school/HEAD/src/assets/img/visit.png
--------------------------------------------------------------------------------
/src/assets/img/bitmap@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sixnine-edu/sixnine-edu-school/HEAD/src/assets/img/bitmap@2x.png
--------------------------------------------------------------------------------
/src/assets/img/buyer-img.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sixnine-edu/sixnine-edu-school/HEAD/src/assets/img/buyer-img.png
--------------------------------------------------------------------------------
/src/assets/img/icon_pdf.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sixnine-edu/sixnine-edu-school/HEAD/src/assets/img/icon_pdf.png
--------------------------------------------------------------------------------
/src/assets/img/login-bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sixnine-edu/sixnine-edu-school/HEAD/src/assets/img/login-bg.png
--------------------------------------------------------------------------------
/src/assets/img/unionpay.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sixnine-edu/sixnine-edu-school/HEAD/src/assets/img/unionpay.png
--------------------------------------------------------------------------------
/src/assets/img/weixinpay.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sixnine-edu/sixnine-edu-school/HEAD/src/assets/img/weixinpay.png
--------------------------------------------------------------------------------
/src/assets/img/base_z36574a.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sixnine-edu/sixnine-edu-school/HEAD/src/assets/img/base_z36574a.png
--------------------------------------------------------------------------------
/src/assets/img/emptyPic/404.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sixnine-edu/sixnine-edu-school/HEAD/src/assets/img/emptyPic/404.png
--------------------------------------------------------------------------------
/src/assets/img/icon-pay-wx.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sixnine-edu/sixnine-edu-school/HEAD/src/assets/img/icon-pay-wx.png
--------------------------------------------------------------------------------
/src/assets/img/login-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sixnine-edu/sixnine-edu-school/HEAD/src/assets/img/login-logo.png
--------------------------------------------------------------------------------
/src/assets/img/notebook@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sixnine-edu/sixnine-edu-school/HEAD/src/assets/img/notebook@3x.png
--------------------------------------------------------------------------------
/src/assets/img/pay-success.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sixnine-edu/sixnine-edu-school/HEAD/src/assets/img/pay-success.png
--------------------------------------------------------------------------------
/src/assets/img/pom-pom@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sixnine-edu/sixnine-edu-school/HEAD/src/assets/img/pom-pom@3x.png
--------------------------------------------------------------------------------
/src/assets/img/icon_customer.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sixnine-edu/sixnine-edu-school/HEAD/src/assets/img/icon_customer.png
--------------------------------------------------------------------------------
/src/assets/img/index_z354723.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sixnine-edu/sixnine-edu-school/HEAD/src/assets/img/index_z354723.png
--------------------------------------------------------------------------------
/src/assets/img/protractor@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sixnine-edu/sixnine-edu-school/HEAD/src/assets/img/protractor@3x.png
--------------------------------------------------------------------------------
/src/assets/img/icon-pay-school.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sixnine-edu/sixnine-edu-school/HEAD/src/assets/img/icon-pay-school.png
--------------------------------------------------------------------------------
/src/assets/img/icon_service@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sixnine-edu/sixnine-edu-school/HEAD/src/assets/img/icon_service@2x.png
--------------------------------------------------------------------------------
/src/assets/img/emptyPic/cart-empty.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sixnine-edu/sixnine-edu-school/HEAD/src/assets/img/emptyPic/cart-empty.png
--------------------------------------------------------------------------------
/src/assets/img/emptyPic/not-found.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sixnine-edu/sixnine-edu-school/HEAD/src/assets/img/emptyPic/not-found.png
--------------------------------------------------------------------------------
/src/assets/img/login_illustration.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sixnine-edu/sixnine-edu-school/HEAD/src/assets/img/login_illustration.png
--------------------------------------------------------------------------------
/src/assets/img/emptyPic/address-empty.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sixnine-edu/sixnine-edu-school/HEAD/src/assets/img/emptyPic/address-empty.png
--------------------------------------------------------------------------------
/src/assets/img/emptyPic/collect-empty.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sixnine-edu/sixnine-edu-school/HEAD/src/assets/img/emptyPic/collect-empty.png
--------------------------------------------------------------------------------
/src/assets/img/emptyPic/coupon-empty.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sixnine-edu/sixnine-edu-school/HEAD/src/assets/img/emptyPic/coupon-empty.png
--------------------------------------------------------------------------------
/src/assets/img/emptyPic/loading-fail.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sixnine-edu/sixnine-edu-school/HEAD/src/assets/img/emptyPic/loading-fail.png
--------------------------------------------------------------------------------
/src/assets/img/emptyPic/order-empty.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sixnine-edu/sixnine-edu-school/HEAD/src/assets/img/emptyPic/order-empty.png
--------------------------------------------------------------------------------
/src/assets/img/emptyPic/search-empty.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sixnine-edu/sixnine-edu-school/HEAD/src/assets/img/emptyPic/search-empty.png
--------------------------------------------------------------------------------
/src/components/v-calendar/utils/defaults/screens.json:
--------------------------------------------------------------------------------
1 | {
2 | "sm": "640px",
3 | "md": "768px",
4 | "lg": "1024px",
5 | "xl": "1280px"
6 | }
--------------------------------------------------------------------------------
/src/element-ui-theme/fonts/element-icons.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sixnine-edu/sixnine-edu-school/HEAD/src/element-ui-theme/fonts/element-icons.ttf
--------------------------------------------------------------------------------
/src/element-ui-theme/fonts/element-icons.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sixnine-edu/sixnine-edu-school/HEAD/src/element-ui-theme/fonts/element-icons.woff
--------------------------------------------------------------------------------
/src/assets/img/bg_mobile_foot_default2968da.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sixnine-edu/sixnine-edu-school/HEAD/src/assets/img/bg_mobile_foot_default2968da.png
--------------------------------------------------------------------------------
/src/assets/img/bg_mobile_head_default2968da.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sixnine-edu/sixnine-edu-school/HEAD/src/assets/img/bg_mobile_head_default2968da.png
--------------------------------------------------------------------------------
/src/components/v-calendar/utils/defaults/touch.json:
--------------------------------------------------------------------------------
1 | {
2 | "maxSwipeTime": 300,
3 | "minHorizontalSwipeDistance": 60,
4 | "maxVerticalSwipeDistance": 80
5 | }
--------------------------------------------------------------------------------
/static/plugins/tinymce.4.9.4/plugins/help/img/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sixnine-edu/sixnine-edu-school/HEAD/static/plugins/tinymce.4.9.4/plugins/help/img/logo.png
--------------------------------------------------------------------------------
/static/plugins/tinymce.4.9.4/skins/lightgray/img/trans.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sixnine-edu/sixnine-edu-school/HEAD/static/plugins/tinymce.4.9.4/skins/lightgray/img/trans.gif
--------------------------------------------------------------------------------
/static/plugins/tinymce.4.9.4/skins/lightgray/img/anchor.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sixnine-edu/sixnine-edu-school/HEAD/static/plugins/tinymce.4.9.4/skins/lightgray/img/anchor.gif
--------------------------------------------------------------------------------
/static/plugins/tinymce.4.9.4/skins/lightgray/img/loader.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sixnine-edu/sixnine-edu-school/HEAD/static/plugins/tinymce.4.9.4/skins/lightgray/img/loader.gif
--------------------------------------------------------------------------------
/static/plugins/tinymce.4.9.4/skins/lightgray/img/object.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sixnine-edu/sixnine-edu-school/HEAD/static/plugins/tinymce.4.9.4/skins/lightgray/img/object.gif
--------------------------------------------------------------------------------
/static/plugins/tinymce.4.9.4/skins/lightgray/fonts/tinymce.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sixnine-edu/sixnine-edu-school/HEAD/static/plugins/tinymce.4.9.4/skins/lightgray/fonts/tinymce.eot
--------------------------------------------------------------------------------
/static/plugins/tinymce.4.9.4/skins/lightgray/fonts/tinymce.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sixnine-edu/sixnine-edu-school/HEAD/static/plugins/tinymce.4.9.4/skins/lightgray/fonts/tinymce.ttf
--------------------------------------------------------------------------------
/static/plugins/tinymce.4.9.4/skins/lightgray/fonts/tinymce.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sixnine-edu/sixnine-edu-school/HEAD/static/plugins/tinymce.4.9.4/skins/lightgray/fonts/tinymce.woff
--------------------------------------------------------------------------------
/config/test.env.js:
--------------------------------------------------------------------------------
1 | 'use strict'
2 | const merge = require('webpack-merge')
3 | const devEnv = require('./dev.env')
4 |
5 | module.exports = merge(devEnv, {
6 | NODE_ENV: '"testing"'
7 | })
8 |
--------------------------------------------------------------------------------
/static/plugins/tinymce.4.9.4/plugins/emoticons/img/smiley-cool.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sixnine-edu/sixnine-edu-school/HEAD/static/plugins/tinymce.4.9.4/plugins/emoticons/img/smiley-cool.gif
--------------------------------------------------------------------------------
/static/plugins/tinymce.4.9.4/plugins/emoticons/img/smiley-cry.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sixnine-edu/sixnine-edu-school/HEAD/static/plugins/tinymce.4.9.4/plugins/emoticons/img/smiley-cry.gif
--------------------------------------------------------------------------------
/static/plugins/tinymce.4.9.4/plugins/emoticons/img/smiley-kiss.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sixnine-edu/sixnine-edu-school/HEAD/static/plugins/tinymce.4.9.4/plugins/emoticons/img/smiley-kiss.gif
--------------------------------------------------------------------------------
/static/plugins/tinymce.4.9.4/plugins/emoticons/img/smiley-wink.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sixnine-edu/sixnine-edu-school/HEAD/static/plugins/tinymce.4.9.4/plugins/emoticons/img/smiley-wink.gif
--------------------------------------------------------------------------------
/static/plugins/tinymce.4.9.4/plugins/emoticons/img/smiley-yell.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sixnine-edu/sixnine-edu-school/HEAD/static/plugins/tinymce.4.9.4/plugins/emoticons/img/smiley-yell.gif
--------------------------------------------------------------------------------
/static/plugins/tinymce.4.9.4/plugins/emoticons/img/smiley-frown.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sixnine-edu/sixnine-edu-school/HEAD/static/plugins/tinymce.4.9.4/plugins/emoticons/img/smiley-frown.gif
--------------------------------------------------------------------------------
/static/plugins/tinymce.4.9.4/plugins/emoticons/img/smiley-sealed.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sixnine-edu/sixnine-edu-school/HEAD/static/plugins/tinymce.4.9.4/plugins/emoticons/img/smiley-sealed.gif
--------------------------------------------------------------------------------
/static/plugins/tinymce.4.9.4/plugins/emoticons/img/smiley-smile.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sixnine-edu/sixnine-edu-school/HEAD/static/plugins/tinymce.4.9.4/plugins/emoticons/img/smiley-smile.gif
--------------------------------------------------------------------------------
/static/plugins/tinymce.4.9.4/skins/lightgray/fonts/tinymce-small.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sixnine-edu/sixnine-edu-school/HEAD/static/plugins/tinymce.4.9.4/skins/lightgray/fonts/tinymce-small.eot
--------------------------------------------------------------------------------
/static/plugins/tinymce.4.9.4/skins/lightgray/fonts/tinymce-small.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sixnine-edu/sixnine-edu-school/HEAD/static/plugins/tinymce.4.9.4/skins/lightgray/fonts/tinymce-small.ttf
--------------------------------------------------------------------------------
/.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 |
--------------------------------------------------------------------------------
/src/assets/scss/wechat/index.scss:
--------------------------------------------------------------------------------
1 |
2 | @import "./wechat/css/base.css";
3 | @import "./wechat/css/index.css";
4 | @import "./wechat/css/media_dialog&emotion_editor&msg_tab&emoji&msg_sender&tooltip.css";
5 |
--------------------------------------------------------------------------------
/static/plugins/tinymce.4.9.4/plugins/emoticons/img/smiley-innocent.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sixnine-edu/sixnine-edu-school/HEAD/static/plugins/tinymce.4.9.4/plugins/emoticons/img/smiley-innocent.gif
--------------------------------------------------------------------------------
/static/plugins/tinymce.4.9.4/plugins/emoticons/img/smiley-laughing.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sixnine-edu/sixnine-edu-school/HEAD/static/plugins/tinymce.4.9.4/plugins/emoticons/img/smiley-laughing.gif
--------------------------------------------------------------------------------
/static/plugins/tinymce.4.9.4/plugins/emoticons/img/smiley-surprised.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sixnine-edu/sixnine-edu-school/HEAD/static/plugins/tinymce.4.9.4/plugins/emoticons/img/smiley-surprised.gif
--------------------------------------------------------------------------------
/static/plugins/tinymce.4.9.4/plugins/emoticons/img/smiley-undecided.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sixnine-edu/sixnine-edu-school/HEAD/static/plugins/tinymce.4.9.4/plugins/emoticons/img/smiley-undecided.gif
--------------------------------------------------------------------------------
/static/plugins/tinymce.4.9.4/skins/lightgray/fonts/tinymce-mobile.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sixnine-edu/sixnine-edu-school/HEAD/static/plugins/tinymce.4.9.4/skins/lightgray/fonts/tinymce-mobile.woff
--------------------------------------------------------------------------------
/static/plugins/tinymce.4.9.4/skins/lightgray/fonts/tinymce-small.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sixnine-edu/sixnine-edu-school/HEAD/static/plugins/tinymce.4.9.4/skins/lightgray/fonts/tinymce-small.woff
--------------------------------------------------------------------------------
/src/assets/scss/index.scss:
--------------------------------------------------------------------------------
1 | @import "normalize"; // api: https://github.com/necolas/normalize.css/
2 | @import "variables"; // 站点变量
3 | @import "base";
4 | //微信
5 | @import './wechat/index.scss';
6 |
--------------------------------------------------------------------------------
/static/plugins/tinymce.4.9.4/plugins/emoticons/img/smiley-embarassed.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sixnine-edu/sixnine-edu-school/HEAD/static/plugins/tinymce.4.9.4/plugins/emoticons/img/smiley-embarassed.gif
--------------------------------------------------------------------------------
/static/plugins/tinymce.4.9.4/plugins/emoticons/img/smiley-money-mouth.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sixnine-edu/sixnine-edu-school/HEAD/static/plugins/tinymce.4.9.4/plugins/emoticons/img/smiley-money-mouth.gif
--------------------------------------------------------------------------------
/static/plugins/tinymce.4.9.4/plugins/emoticons/img/smiley-tongue-out.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sixnine-edu/sixnine-edu-school/HEAD/static/plugins/tinymce.4.9.4/plugins/emoticons/img/smiley-tongue-out.gif
--------------------------------------------------------------------------------
/static/plugins/tinymce.4.9.4/plugins/emoticons/img/smiley-foot-in-mouth.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sixnine-edu/sixnine-edu-school/HEAD/static/plugins/tinymce.4.9.4/plugins/emoticons/img/smiley-foot-in-mouth.gif
--------------------------------------------------------------------------------
/src/views/common/home.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 | welcome
4 |
5 |
6 |
7 |
12 |
13 |
16 |
--------------------------------------------------------------------------------
/src/views/common/home copy.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 | welcome
4 |
5 |
6 |
7 |
12 |
13 |
16 |
--------------------------------------------------------------------------------
/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 | OPEN_PROXY: true // 是否开启代理, 重置后需重启vue-cli
8 | })
9 |
--------------------------------------------------------------------------------
/static/plugins/tinymce.4.9.4/plugins/hr/index.js:
--------------------------------------------------------------------------------
1 | // Exports the "hr" plugin for usage with module loaders
2 | // Usage:
3 | // CommonJS:
4 | // require('tinymce/plugins/hr')
5 | // ES2015:
6 | // import 'tinymce/plugins/hr'
7 | require('./plugin.js');
--------------------------------------------------------------------------------
/static/plugins/tinymce.4.9.4/plugins/toc/index.js:
--------------------------------------------------------------------------------
1 | // Exports the "toc" plugin for usage with module loaders
2 | // Usage:
3 | // CommonJS:
4 | // require('tinymce/plugins/toc')
5 | // ES2015:
6 | // import 'tinymce/plugins/toc'
7 | require('./plugin.js');
--------------------------------------------------------------------------------
/src/components/v-calendar/components/index.js:
--------------------------------------------------------------------------------
1 | export { default as Calendar } from './Calendar';
2 | export { default as CalendarNav } from './CalendarNav';
3 | export { default as DatePicker } from './DatePicker';
4 | export { default as Popover } from './Popover';
5 |
--------------------------------------------------------------------------------
/static/plugins/tinymce.4.9.4/plugins/code/index.js:
--------------------------------------------------------------------------------
1 | // Exports the "code" plugin for usage with module loaders
2 | // Usage:
3 | // CommonJS:
4 | // require('tinymce/plugins/code')
5 | // ES2015:
6 | // import 'tinymce/plugins/code'
7 | require('./plugin.js');
--------------------------------------------------------------------------------
/static/plugins/tinymce.4.9.4/plugins/help/index.js:
--------------------------------------------------------------------------------
1 | // Exports the "help" plugin for usage with module loaders
2 | // Usage:
3 | // CommonJS:
4 | // require('tinymce/plugins/help')
5 | // ES2015:
6 | // import 'tinymce/plugins/help'
7 | require('./plugin.js');
--------------------------------------------------------------------------------
/static/plugins/tinymce.4.9.4/plugins/link/index.js:
--------------------------------------------------------------------------------
1 | // Exports the "link" plugin for usage with module loaders
2 | // Usage:
3 | // CommonJS:
4 | // require('tinymce/plugins/link')
5 | // ES2015:
6 | // import 'tinymce/plugins/link'
7 | require('./plugin.js');
--------------------------------------------------------------------------------
/static/plugins/tinymce.4.9.4/plugins/save/index.js:
--------------------------------------------------------------------------------
1 | // Exports the "save" plugin for usage with module loaders
2 | // Usage:
3 | // CommonJS:
4 | // require('tinymce/plugins/save')
5 | // ES2015:
6 | // import 'tinymce/plugins/save'
7 | require('./plugin.js');
--------------------------------------------------------------------------------
/static/plugins/tinymce.4.9.4/themes/inlite/index.js:
--------------------------------------------------------------------------------
1 | // Exports the "inlite" theme for usage with module loaders
2 | // Usage:
3 | // CommonJS:
4 | // require('tinymce/themes/inlite')
5 | // ES2015:
6 | // import 'tinymce/themes/inlite'
7 | require('./theme.js');
--------------------------------------------------------------------------------
/static/plugins/tinymce.4.9.4/themes/mobile/index.js:
--------------------------------------------------------------------------------
1 | // Exports the "mobile" theme for usage with module loaders
2 | // Usage:
3 | // CommonJS:
4 | // require('tinymce/themes/mobile')
5 | // ES2015:
6 | // import 'tinymce/themes/mobile'
7 | require('./theme.js');
--------------------------------------------------------------------------------
/static/plugins/tinymce.4.9.4/themes/modern/index.js:
--------------------------------------------------------------------------------
1 | // Exports the "modern" theme for usage with module loaders
2 | // Usage:
3 | // CommonJS:
4 | // require('tinymce/themes/modern')
5 | // ES2015:
6 | // import 'tinymce/themes/modern'
7 | require('./theme.js');
--------------------------------------------------------------------------------
/static/plugins/tinymce.4.9.4/plugins/anchor/index.js:
--------------------------------------------------------------------------------
1 | // Exports the "anchor" plugin for usage with module loaders
2 | // Usage:
3 | // CommonJS:
4 | // require('tinymce/plugins/anchor')
5 | // ES2015:
6 | // import 'tinymce/plugins/anchor'
7 | require('./plugin.js');
--------------------------------------------------------------------------------
/static/plugins/tinymce.4.9.4/plugins/bbcode/index.js:
--------------------------------------------------------------------------------
1 | // Exports the "bbcode" plugin for usage with module loaders
2 | // Usage:
3 | // CommonJS:
4 | // require('tinymce/plugins/bbcode')
5 | // ES2015:
6 | // import 'tinymce/plugins/bbcode'
7 | require('./plugin.js');
--------------------------------------------------------------------------------
/static/plugins/tinymce.4.9.4/plugins/image/index.js:
--------------------------------------------------------------------------------
1 | // Exports the "image" plugin for usage with module loaders
2 | // Usage:
3 | // CommonJS:
4 | // require('tinymce/plugins/image')
5 | // ES2015:
6 | // import 'tinymce/plugins/image'
7 | require('./plugin.js');
--------------------------------------------------------------------------------
/static/plugins/tinymce.4.9.4/plugins/lists/index.js:
--------------------------------------------------------------------------------
1 | // Exports the "lists" plugin for usage with module loaders
2 | // Usage:
3 | // CommonJS:
4 | // require('tinymce/plugins/lists')
5 | // ES2015:
6 | // import 'tinymce/plugins/lists'
7 | require('./plugin.js');
--------------------------------------------------------------------------------
/static/plugins/tinymce.4.9.4/plugins/media/index.js:
--------------------------------------------------------------------------------
1 | // Exports the "media" plugin for usage with module loaders
2 | // Usage:
3 | // CommonJS:
4 | // require('tinymce/plugins/media')
5 | // ES2015:
6 | // import 'tinymce/plugins/media'
7 | require('./plugin.js');
--------------------------------------------------------------------------------
/static/plugins/tinymce.4.9.4/plugins/paste/index.js:
--------------------------------------------------------------------------------
1 | // Exports the "paste" plugin for usage with module loaders
2 | // Usage:
3 | // CommonJS:
4 | // require('tinymce/plugins/paste')
5 | // ES2015:
6 | // import 'tinymce/plugins/paste'
7 | require('./plugin.js');
--------------------------------------------------------------------------------
/static/plugins/tinymce.4.9.4/plugins/print/index.js:
--------------------------------------------------------------------------------
1 | // Exports the "print" plugin for usage with module loaders
2 | // Usage:
3 | // CommonJS:
4 | // require('tinymce/plugins/print')
5 | // ES2015:
6 | // import 'tinymce/plugins/print'
7 | require('./plugin.js');
--------------------------------------------------------------------------------
/static/plugins/tinymce.4.9.4/plugins/table/index.js:
--------------------------------------------------------------------------------
1 | // Exports the "table" plugin for usage with module loaders
2 | // Usage:
3 | // CommonJS:
4 | // require('tinymce/plugins/table')
5 | // ES2015:
6 | // import 'tinymce/plugins/table'
7 | require('./plugin.js');
--------------------------------------------------------------------------------
/.postcssrc.js:
--------------------------------------------------------------------------------
1 | // https://github.com/michael-ciniawsky/postcss-load-config
2 |
3 | module.exports = {
4 | "plugins": {
5 | // to edit target browsers: use "browserslist" field in package.json
6 | "postcss-import": {},
7 | "autoprefixer": {}
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/static/plugins/tinymce.4.9.4/plugins/advlist/index.js:
--------------------------------------------------------------------------------
1 | // Exports the "advlist" plugin for usage with module loaders
2 | // Usage:
3 | // CommonJS:
4 | // require('tinymce/plugins/advlist')
5 | // ES2015:
6 | // import 'tinymce/plugins/advlist'
7 | require('./plugin.js');
--------------------------------------------------------------------------------
/static/plugins/tinymce.4.9.4/plugins/charmap/index.js:
--------------------------------------------------------------------------------
1 | // Exports the "charmap" plugin for usage with module loaders
2 | // Usage:
3 | // CommonJS:
4 | // require('tinymce/plugins/charmap')
5 | // ES2015:
6 | // import 'tinymce/plugins/charmap'
7 | require('./plugin.js');
--------------------------------------------------------------------------------
/static/plugins/tinymce.4.9.4/plugins/preview/index.js:
--------------------------------------------------------------------------------
1 | // Exports the "preview" plugin for usage with module loaders
2 | // Usage:
3 | // CommonJS:
4 | // require('tinymce/plugins/preview')
5 | // ES2015:
6 | // import 'tinymce/plugins/preview'
7 | require('./plugin.js');
--------------------------------------------------------------------------------
/static/plugins/tinymce.4.9.4/plugins/autolink/index.js:
--------------------------------------------------------------------------------
1 | // Exports the "autolink" plugin for usage with module loaders
2 | // Usage:
3 | // CommonJS:
4 | // require('tinymce/plugins/autolink')
5 | // ES2015:
6 | // import 'tinymce/plugins/autolink'
7 | require('./plugin.js');
--------------------------------------------------------------------------------
/static/plugins/tinymce.4.9.4/plugins/autosave/index.js:
--------------------------------------------------------------------------------
1 | // Exports the "autosave" plugin for usage with module loaders
2 | // Usage:
3 | // CommonJS:
4 | // require('tinymce/plugins/autosave')
5 | // ES2015:
6 | // import 'tinymce/plugins/autosave'
7 | require('./plugin.js');
--------------------------------------------------------------------------------
/static/plugins/tinymce.4.9.4/plugins/fullpage/index.js:
--------------------------------------------------------------------------------
1 | // Exports the "fullpage" plugin for usage with module loaders
2 | // Usage:
3 | // CommonJS:
4 | // require('tinymce/plugins/fullpage')
5 | // ES2015:
6 | // import 'tinymce/plugins/fullpage'
7 | require('./plugin.js');
--------------------------------------------------------------------------------
/static/plugins/tinymce.4.9.4/plugins/tabfocus/index.js:
--------------------------------------------------------------------------------
1 | // Exports the "tabfocus" plugin for usage with module loaders
2 | // Usage:
3 | // CommonJS:
4 | // require('tinymce/plugins/tabfocus')
5 | // ES2015:
6 | // import 'tinymce/plugins/tabfocus'
7 | require('./plugin.js');
--------------------------------------------------------------------------------
/static/plugins/tinymce.4.9.4/plugins/template/index.js:
--------------------------------------------------------------------------------
1 | // Exports the "template" plugin for usage with module loaders
2 | // Usage:
3 | // CommonJS:
4 | // require('tinymce/plugins/template')
5 | // ES2015:
6 | // import 'tinymce/plugins/template'
7 | require('./plugin.js');
--------------------------------------------------------------------------------
/static/plugins/tinymce.4.9.4/plugins/emoticons/index.js:
--------------------------------------------------------------------------------
1 | // Exports the "emoticons" plugin for usage with module loaders
2 | // Usage:
3 | // CommonJS:
4 | // require('tinymce/plugins/emoticons')
5 | // ES2015:
6 | // import 'tinymce/plugins/emoticons'
7 | require('./plugin.js');
--------------------------------------------------------------------------------
/static/plugins/tinymce.4.9.4/plugins/importcss/index.js:
--------------------------------------------------------------------------------
1 | // Exports the "importcss" plugin for usage with module loaders
2 | // Usage:
3 | // CommonJS:
4 | // require('tinymce/plugins/importcss')
5 | // ES2015:
6 | // import 'tinymce/plugins/importcss'
7 | require('./plugin.js');
--------------------------------------------------------------------------------
/static/plugins/tinymce.4.9.4/plugins/pagebreak/index.js:
--------------------------------------------------------------------------------
1 | // Exports the "pagebreak" plugin for usage with module loaders
2 | // Usage:
3 | // CommonJS:
4 | // require('tinymce/plugins/pagebreak')
5 | // ES2015:
6 | // import 'tinymce/plugins/pagebreak'
7 | require('./plugin.js');
--------------------------------------------------------------------------------
/static/plugins/tinymce.4.9.4/plugins/textcolor/index.js:
--------------------------------------------------------------------------------
1 | // Exports the "textcolor" plugin for usage with module loaders
2 | // Usage:
3 | // CommonJS:
4 | // require('tinymce/plugins/textcolor')
5 | // ES2015:
6 | // import 'tinymce/plugins/textcolor'
7 | require('./plugin.js');
--------------------------------------------------------------------------------
/static/plugins/tinymce.4.9.4/plugins/wordcount/index.js:
--------------------------------------------------------------------------------
1 | // Exports the "wordcount" plugin for usage with module loaders
2 | // Usage:
3 | // CommonJS:
4 | // require('tinymce/plugins/wordcount')
5 | // ES2015:
6 | // import 'tinymce/plugins/wordcount'
7 | require('./plugin.js');
--------------------------------------------------------------------------------
/static/plugins/tinymce.4.9.4/plugins/autoresize/index.js:
--------------------------------------------------------------------------------
1 | // Exports the "autoresize" plugin for usage with module loaders
2 | // Usage:
3 | // CommonJS:
4 | // require('tinymce/plugins/autoresize')
5 | // ES2015:
6 | // import 'tinymce/plugins/autoresize'
7 | require('./plugin.js');
--------------------------------------------------------------------------------
/static/plugins/tinymce.4.9.4/plugins/codesample/index.js:
--------------------------------------------------------------------------------
1 | // Exports the "codesample" plugin for usage with module loaders
2 | // Usage:
3 | // CommonJS:
4 | // require('tinymce/plugins/codesample')
5 | // ES2015:
6 | // import 'tinymce/plugins/codesample'
7 | require('./plugin.js');
--------------------------------------------------------------------------------
/static/plugins/tinymce.4.9.4/plugins/colorpicker/index.js:
--------------------------------------------------------------------------------
1 | // Exports the "colorpicker" plugin for usage with module loaders
2 | // Usage:
3 | // CommonJS:
4 | // require('tinymce/plugins/colorpicker')
5 | // ES2015:
6 | // import 'tinymce/plugins/colorpicker'
7 | require('./plugin.js');
--------------------------------------------------------------------------------
/static/plugins/tinymce.4.9.4/plugins/contextmenu/index.js:
--------------------------------------------------------------------------------
1 | // Exports the "contextmenu" plugin for usage with module loaders
2 | // Usage:
3 | // CommonJS:
4 | // require('tinymce/plugins/contextmenu')
5 | // ES2015:
6 | // import 'tinymce/plugins/contextmenu'
7 | require('./plugin.js');
--------------------------------------------------------------------------------
/static/plugins/tinymce.4.9.4/plugins/fullscreen/index.js:
--------------------------------------------------------------------------------
1 | // Exports the "fullscreen" plugin for usage with module loaders
2 | // Usage:
3 | // CommonJS:
4 | // require('tinymce/plugins/fullscreen')
5 | // ES2015:
6 | // import 'tinymce/plugins/fullscreen'
7 | require('./plugin.js');
--------------------------------------------------------------------------------
/static/plugins/tinymce.4.9.4/plugins/imagetools/index.js:
--------------------------------------------------------------------------------
1 | // Exports the "imagetools" plugin for usage with module loaders
2 | // Usage:
3 | // CommonJS:
4 | // require('tinymce/plugins/imagetools')
5 | // ES2015:
6 | // import 'tinymce/plugins/imagetools'
7 | require('./plugin.js');
--------------------------------------------------------------------------------
/static/plugins/tinymce.4.9.4/plugins/nonbreaking/index.js:
--------------------------------------------------------------------------------
1 | // Exports the "nonbreaking" plugin for usage with module loaders
2 | // Usage:
3 | // CommonJS:
4 | // require('tinymce/plugins/nonbreaking')
5 | // ES2015:
6 | // import 'tinymce/plugins/nonbreaking'
7 | require('./plugin.js');
--------------------------------------------------------------------------------
/static/plugins/tinymce.4.9.4/plugins/noneditable/index.js:
--------------------------------------------------------------------------------
1 | // Exports the "noneditable" plugin for usage with module loaders
2 | // Usage:
3 | // CommonJS:
4 | // require('tinymce/plugins/noneditable')
5 | // ES2015:
6 | // import 'tinymce/plugins/noneditable'
7 | require('./plugin.js');
--------------------------------------------------------------------------------
/static/plugins/tinymce.4.9.4/plugins/textpattern/index.js:
--------------------------------------------------------------------------------
1 | // Exports the "textpattern" plugin for usage with module loaders
2 | // Usage:
3 | // CommonJS:
4 | // require('tinymce/plugins/textpattern')
5 | // ES2015:
6 | // import 'tinymce/plugins/textpattern'
7 | require('./plugin.js');
--------------------------------------------------------------------------------
/static/plugins/tinymce.4.9.4/plugins/visualchars/index.js:
--------------------------------------------------------------------------------
1 | // Exports the "visualchars" plugin for usage with module loaders
2 | // Usage:
3 | // CommonJS:
4 | // require('tinymce/plugins/visualchars')
5 | // ES2015:
6 | // import 'tinymce/plugins/visualchars'
7 | require('./plugin.js');
--------------------------------------------------------------------------------
/static/plugins/tinymce.4.9.4/plugins/legacyoutput/index.js:
--------------------------------------------------------------------------------
1 | // Exports the "legacyoutput" plugin for usage with module loaders
2 | // Usage:
3 | // CommonJS:
4 | // require('tinymce/plugins/legacyoutput')
5 | // ES2015:
6 | // import 'tinymce/plugins/legacyoutput'
7 | require('./plugin.js');
--------------------------------------------------------------------------------
/static/plugins/tinymce.4.9.4/plugins/spellchecker/index.js:
--------------------------------------------------------------------------------
1 | // Exports the "spellchecker" plugin for usage with module loaders
2 | // Usage:
3 | // CommonJS:
4 | // require('tinymce/plugins/spellchecker')
5 | // ES2015:
6 | // import 'tinymce/plugins/spellchecker'
7 | require('./plugin.js');
--------------------------------------------------------------------------------
/static/plugins/tinymce.4.9.4/plugins/visualblocks/index.js:
--------------------------------------------------------------------------------
1 | // Exports the "visualblocks" plugin for usage with module loaders
2 | // Usage:
3 | // CommonJS:
4 | // require('tinymce/plugins/visualblocks')
5 | // ES2015:
6 | // import 'tinymce/plugins/visualblocks'
7 | require('./plugin.js');
--------------------------------------------------------------------------------
/static/plugins/tinymce.4.9.4/skins/lightgray/content.mobile.min.css:
--------------------------------------------------------------------------------
1 | .tinymce-mobile-unfocused-selections .tinymce-mobile-unfocused-selection{position:absolute;display:inline-block;background-color:green;opacity:.5}body{-webkit-text-size-adjust:none}body img{max-width:96vw}body table img{max-width:95%}
--------------------------------------------------------------------------------
/static/plugins/tinymce.4.9.4/plugins/searchreplace/index.js:
--------------------------------------------------------------------------------
1 | // Exports the "searchreplace" plugin for usage with module loaders
2 | // Usage:
3 | // CommonJS:
4 | // require('tinymce/plugins/searchreplace')
5 | // ES2015:
6 | // import 'tinymce/plugins/searchreplace'
7 | require('./plugin.js');
--------------------------------------------------------------------------------
/static/plugins/tinymce.4.9.4/plugins/directionality/index.js:
--------------------------------------------------------------------------------
1 | // Exports the "directionality" plugin for usage with module loaders
2 | // Usage:
3 | // CommonJS:
4 | // require('tinymce/plugins/directionality')
5 | // ES2015:
6 | // import 'tinymce/plugins/directionality'
7 | require('./plugin.js');
--------------------------------------------------------------------------------
/static/plugins/tinymce.4.9.4/plugins/insertdatetime/index.js:
--------------------------------------------------------------------------------
1 | // Exports the "insertdatetime" plugin for usage with module loaders
2 | // Usage:
3 | // CommonJS:
4 | // require('tinymce/plugins/insertdatetime')
5 | // ES2015:
6 | // import 'tinymce/plugins/insertdatetime'
7 | require('./plugin.js');
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | node_modules/
3 | dist/
4 | npm-debug.log*
5 | yarn-debug.log*
6 | yarn-error.log*
7 | /test/unit/coverage/
8 | /test/e2e/reports/
9 | selenium-debug.log
10 | package-lock.json
11 |
12 | # Editor directories and files
13 | .idea
14 | .vscode
15 | *.suo
16 | *.ntvs*
17 | *.njsproj
18 | *.sln
19 |
--------------------------------------------------------------------------------
/src/components/v-calendar/utils/mixins/index.js:
--------------------------------------------------------------------------------
1 | import { childMixin as child } from './child';
2 | import { rootMixin as root } from './root';
3 | import { safeScopedSlotMixin as safeScopedSlot } from './safeScopedSlot';
4 |
5 | export const childMixin = child;
6 | export const rootMixin = root;
7 | export const safeScopedSlotMixin = safeScopedSlot;
8 |
--------------------------------------------------------------------------------
/src/components/v-calendar/utils/mixins/safeScopedSlot.js:
--------------------------------------------------------------------------------
1 | import { isFunction } from '../_';
2 |
3 | export const safeScopedSlotMixin = {
4 | methods: {
5 | safeScopedSlot(name, args, def = null) {
6 | return isFunction(this.$scopedSlots[name])
7 | ? this.$scopedSlots[name](args)
8 | : def;
9 | },
10 | },
11 | };
12 |
--------------------------------------------------------------------------------
/src/components/v-calendar/utils/index.js:
--------------------------------------------------------------------------------
1 | export { default as Locale } from './locale';
2 | export { default as DateInfo } from './dateInfo';
3 | export { default as Attribute } from './attribute';
4 | export { default as AttributeStore } from './attributeStore';
5 | export { default as setupCalendar } from './setup';
6 | export * from './helpers';
7 | export * from './touch';
8 |
--------------------------------------------------------------------------------
/src/components/v-calendar/utils/setup.js:
--------------------------------------------------------------------------------
1 | import { setupDefaults } from './defaults';
2 | import { setupScreens } from './screens';
3 |
4 | export default opts => {
5 | // Register plugin defaults
6 | const defaults = setupDefaults(opts);
7 | // Install support for responsive screens
8 | setupScreens(defaults.screens, true);
9 | return defaults;
10 | };
11 |
--------------------------------------------------------------------------------
/src/views/store/about.vue:
--------------------------------------------------------------------------------
1 |
9 |
10 |
11 | 关于我们
12 |
13 |
14 |
15 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/static/plugins/tinymce.4.9.4/plugins/print/plugin.min.js:
--------------------------------------------------------------------------------
1 | !function(){"use strict";var t=tinymce.util.Tools.resolve("tinymce.PluginManager"),n=function(t){t.addCommand("mcePrint",function(){t.getWin().print()})},i=function(t){t.addButton("print",{title:"Print",cmd:"mcePrint"}),t.addMenuItem("print",{text:"Print",cmd:"mcePrint",icon:"print"})};t.add("print",function(t){n(t),i(t),t.addShortcut("Meta+P","","mcePrint")})}();
--------------------------------------------------------------------------------
/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": [
3 | ["env", {
4 | "modules": false
5 | }],
6 | "stage-2"
7 | ],
8 | "plugins": ["transform-runtime", ["component", [
9 | {
10 | "libraryName": "element-ui"
11 | }
12 | ]]],
13 | "env": {
14 | "test": {
15 | "presets": ["env", "stage-2"],
16 | "plugins": ["transform-es2015-modules-commonjs", "dynamic-import-node"]
17 | }
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/test/unit/specs/HelloWorld.spec.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue'
2 | import HelloWorld from '@/components/HelloWorld'
3 |
4 | describe('HelloWorld.vue', () => {
5 | it('should render correct contents', () => {
6 | const Constructor = Vue.extend(HelloWorld)
7 | const vm = new Constructor().$mount()
8 | expect(vm.$el.querySelector('.hello h1').textContent)
9 | .toEqual('Welcome to Your Vue.js App')
10 | })
11 | })
12 |
--------------------------------------------------------------------------------
/src/assets/scss/_variables.scss:
--------------------------------------------------------------------------------
1 | // 站点主色
2 | // tips: 要达到整站主题修改效果, 请确保[$--color-primary]站点主色与[/src/element-ui-theme/index.js]文件中[import './element-[#17B3A3]/index.css']当前主题色一致
3 | $--color-primary: #002951;
4 |
5 | // Navbar
6 | $navbar--background-color: $--color-primary;
7 |
8 | // Sidebar
9 | $sidebar--background-color-dark: #2A3A42;
10 | $sidebar--color-text-dark: #8a979e;
11 |
12 | // Content
13 | $content--background-color: #f1f4f5;
14 |
--------------------------------------------------------------------------------
/src/store/modules/cartNumber.js:
--------------------------------------------------------------------------------
1 | /*
2 | * @Description:
3 | * @Version: 1.0
4 | * @Autor: yongqing
5 | * @Date: 2021-02-20 15:43:34
6 | * @LastEditors: yongqing
7 | * @LastEditTime: 2021-02-20 15:44:15
8 | */
9 | export default {
10 | namespaced: true,
11 | state: {
12 | cartNumbers: 0
13 | },
14 | mutations: {
15 | changeCartNumber (state, cartNumbers) {
16 | state.cartNumbers = cartNumbers
17 | }
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/src/utils/constant.js:
--------------------------------------------------------------------------------
1 | const PayType = {
2 | SCHOOLPAY:0,//学校支付
3 | WECHATPAY:1, // 小程序支付
4 | ALIPAY: 2,// 支付宝支付
5 | WECHATPAY_SWEEP_CODE:3,//微信扫码支付
6 | WECHATPAY_H5: 4, //微信H5支付
7 | WECHATPAY_MP: 5, //微信公众号支付
8 | SCOREPAY: 6, // 纯积分支付
9 | }
10 |
11 | const AppType = {
12 | MINI:1, // 小程序
13 | MP: 2,// 微信公众号
14 | PC:3,//pc
15 | H5: 4, //h5
16 | ANDROID: 5, //安卓
17 | IOS: 6, //苹果
18 | }
19 |
20 | module.exports = {
21 | PayType,
22 | AppType
23 | };
24 |
--------------------------------------------------------------------------------
/static/plugins/tinymce.4.9.4/plugins/hr/plugin.min.js:
--------------------------------------------------------------------------------
1 | !function(){"use strict";var n=tinymce.util.Tools.resolve("tinymce.PluginManager"),t=function(n){n.addCommand("InsertHorizontalRule",function(){n.execCommand("mceInsertContent",!1,"
")})},o=function(n){n.addButton("hr",{icon:"hr",tooltip:"Horizontal line",cmd:"InsertHorizontalRule"}),n.addMenuItem("hr",{icon:"hr",text:"Horizontal line",cmd:"InsertHorizontalRule",context:"insert"})};n.add("hr",function(n){t(n),o(n)})}();
--------------------------------------------------------------------------------
/src/views/modules/corp/pset/base-config.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
24 |
26 |
27 |
--------------------------------------------------------------------------------
/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "arrowParens": "avoid",
3 | "bracketSpacing": true,
4 | "endOfLine": "auto",
5 | "htmlWhitespaceSensitivity": "css",
6 | "insertPragma": false,
7 | "jsxBracketSameLine": false,
8 | "jsxSingleQuote": false,
9 | "printWidth": 180,
10 | "proseWrap": "preserve",
11 | "quoteProps": "as-needed",
12 | "requirePragma": false,
13 | "semi": false,
14 | "singleQuote": false,
15 | "tabWidth": 4,
16 | "trailingComma": "none",
17 | "useTabs": false,
18 | "vueIndentScriptAndStyle": false
19 | }
20 |
--------------------------------------------------------------------------------
/src/components/v-calendar/utils/defaults/masks.json:
--------------------------------------------------------------------------------
1 | {
2 | "title": "MMMM YYYY",
3 | "weekdays": "W",
4 | "navMonths": "MMM",
5 | "input": ["L", "YYYY-MM-DD", "YYYY/MM/DD"],
6 | "inputDateTime": ["L h:mm A", "YYYY-MM-DD h:mm A", "YYYY/MM/DD h:mm A"],
7 | "inputDateTime24hr": ["L HH:mm", "YYYY-MM-DD HH:mm", "YYYY/MM/DD HH:mm"],
8 | "inputTime": ["h:mm A"],
9 | "inputTime24hr": ["HH:mm"],
10 | "dayPopover": "WWW, MMM D, YYYY",
11 | "data": ["L", "YYYY-MM-DD", "YYYY/MM/DD"],
12 | "iso": "YYYY-MM-DDTHH:mm:ss.SSSZ"
13 | }
--------------------------------------------------------------------------------
/src/views/modules/corp/pset/quick-config.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
21 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/static/config/index.js:
--------------------------------------------------------------------------------
1 | /*
2 | * @Description:
3 | * @Version: 1.0
4 | * @Autor: yongqing
5 | * @Date: 2021-12-07 09:40:11
6 | * @LastEditors: yongqing
7 | * @LastEditTime: 2021-12-07 23:21:50
8 | */
9 | /**
10 | * 开发环境
11 | */
12 | ; (function () {
13 | window.SITE_CONFIG = {}
14 | // 静态资源文件url
15 | window.SITE_CONFIG['resourcesUrl'] = ''
16 | // cdn地址 = 域名 + 版本号
17 | window.SITE_CONFIG['domain'] = './' // 域名
18 | window.SITE_CONFIG['version'] = '' // 版本号(年月日时分)
19 | window.SITE_CONFIG['cdnUrl'] = window.SITE_CONFIG.domain + window.SITE_CONFIG.version
20 | })()
21 |
--------------------------------------------------------------------------------
/src/App.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
25 |
--------------------------------------------------------------------------------
/src/crud/corp/area.js:
--------------------------------------------------------------------------------
1 | import i18n from '../../i18n/i18n'
2 | export const tableOption = {
3 | border: true,
4 | index: true,
5 | indexLabel: i18n.t('sysManagement.serialNumber'),
6 | stripe: true,
7 | menuAlign: 'center',
8 | align: 'center',
9 | addBtn: false,
10 | editBtn: false,
11 | column: [
12 | {
13 | label: '',
14 | prop: 'areaId'
15 | },
16 | {
17 | label: '',
18 | prop: 'areaName'
19 | },
20 | {
21 | label: '',
22 | prop: 'parentId'
23 | },
24 | {
25 | label: '',
26 | prop: 'level'
27 | }
28 | ]
29 | }
30 |
--------------------------------------------------------------------------------
/src/utils/validate.js:
--------------------------------------------------------------------------------
1 | /**
2 | * 邮箱
3 | * @param {*} s
4 | */
5 | export function isEmail (s) {
6 | return /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((.[a-zA-Z0-9_-]{2,3}){1,2})$/.test(s)
7 | }
8 |
9 | /**
10 | * 手机号码
11 | * @param {*} s
12 | */
13 | export function isMobile (s) {
14 | return /^1[0-9]{10}$/.test(s)
15 | }
16 |
17 | /**
18 | * 电话号码
19 | * @param {*} s
20 | */
21 | export function isPhone (s) {
22 | return /^([0-9]{3,4}-)?[0-9]{7,8}$/.test(s)
23 | }
24 |
25 | /**
26 | * URL地址
27 | * @param {*} s
28 | */
29 | export function isURL (s) {
30 | return /^http[s]?:\/\/.*/.test(s)
31 | }
32 |
--------------------------------------------------------------------------------
/src/crud/corp/shortmsg.js:
--------------------------------------------------------------------------------
1 | import i18n from '../../i18n/i18n'
2 | export const tableOption = {
3 | border: true,
4 | index: true,
5 | indexLabel: i18n.t('sysManagement.serialNumber'),
6 | stripe: true,
7 | menuAlign: 'center',
8 | align: 'center',
9 | addBtn: false,
10 | editBtn: false,
11 | delBtn: false,
12 | column: [
13 | {
14 | label: i18n.t('sysManagement.sysManagement'),
15 | prop: 'shortmsgName'
16 | }
17 | // ,
18 | // {
19 | // label: '平台图片',
20 | // prop: 'pic',
21 | // type: 'upload',
22 | // imgWidth: 150
23 | // }
24 | ]
25 | }
26 |
--------------------------------------------------------------------------------
/src/crud/basis/job.js:
--------------------------------------------------------------------------------
1 | /*
2 | * @Description:
3 | * @Version: 1.0
4 | * @Autor: yongqing
5 | * @Date: 2021-01-14 10:45:04
6 | * @LastEditors: yongqing
7 | * @LastEditTime: 2021-01-23 23:01:44
8 | */
9 | export const tableOption = {
10 | border: true,
11 | index: true,
12 | indexLabel: "序号",
13 | stripe: true,
14 | menuAlign: "center",
15 | align: "center",
16 | addBtn: false,
17 | editBtn: false,
18 | delBtn: false,
19 | column: [
20 | {
21 | label: "职位名称",
22 | prop: "postName",
23 | search: true
24 | },
25 |
26 | ]
27 | }
28 |
--------------------------------------------------------------------------------
/src/crud/basis/school.js:
--------------------------------------------------------------------------------
1 | /*
2 | * @Description:
3 | * @Version: 1.0
4 | * @Autor: yongqing
5 | * @Date: 2021-01-14 10:45:04
6 | * @LastEditors: yongqing
7 | * @LastEditTime: 2021-01-21 11:26:27
8 | */
9 | export const tableOption = {
10 | border: true,
11 | index: true,
12 | indexLabel: "序号",
13 | stripe: true,
14 | menuAlign: "center",
15 | align: "center",
16 | addBtn: false,
17 | editBtn: false,
18 | delBtn: false,
19 | column: [
20 | {
21 | label: "校区名称",
22 | prop: "schoolName",
23 | search: true
24 | },
25 |
26 | ]
27 | }
28 |
--------------------------------------------------------------------------------
/test/e2e/specs/test.js:
--------------------------------------------------------------------------------
1 | // For authoring Nightwatch tests, see
2 | // http://nightwatchjs.org/guide#usage
3 |
4 | module.exports = {
5 | 'default e2e tests': function (browser) {
6 | // automatically uses dev Server port from /config.index.js
7 | // default: http://192.168.0.143:8080
8 | // see nightwatch.conf.js
9 | const devServer = browser.globals.devServerURL
10 |
11 | browser
12 | .url(devServer)
13 | .waitForElementVisible('#app', 5000)
14 | .assert.elementPresent('.hello')
15 | .assert.containsText('h1', 'Welcome to Your Vue.js App')
16 | .assert.elementCount('img', 1)
17 | .end()
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/src/store/modules/user.js:
--------------------------------------------------------------------------------
1 | /*
2 | * @Description:
3 | * @Version: 1.0
4 | * @Autor: yongqing
5 | * @Date: 2021-12-07 09:40:11
6 | * @LastEditors: yongqing
7 | * @LastEditTime: 2021-03-11 11:15:27
8 | */
9 | export default {
10 | namespaced: true,
11 | state: {
12 | id: 0,
13 | userName: "",
14 | empName: ""
15 | },
16 | mutations: {
17 | updateId(state, id) {
18 | state.id = id
19 | },
20 | updateUserName(state, name) {
21 | state.userName = name
22 | },
23 | updateEmpName(state, name) {
24 | state.empName = name
25 | }
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/src/crud/prod/spec.js:
--------------------------------------------------------------------------------
1 | export const tableOption = {
2 | border: true,
3 | index: true,
4 | indexLabel: '序号',
5 | stripe: true,
6 | menuAlign: 'center',
7 | menuWidth: 350,
8 | align: 'center',
9 | refreshBtn: true,
10 | searchSize: 'mini',
11 | addBtn: false,
12 | editBtn: false,
13 | viewBtn: false,
14 | delBtn: false,
15 | props: {
16 | label: 'label',
17 | value: 'value'
18 | },
19 | column: [{
20 | label: '属性ID',
21 | prop: 'propId'
22 | }, {
23 | label: '属性名称',
24 | prop: 'propName',
25 | search: true
26 | }, {
27 | label: '属性值',
28 | prop: 'prodPropValues',
29 | slot: true
30 | }]
31 | }
32 |
--------------------------------------------------------------------------------
/static/config/index-dev.js:
--------------------------------------------------------------------------------
1 | /*
2 | * @Description:
3 | * @Version: 1.0
4 | * @Autor: yongqing
5 | * @Date: 2021-12-07 09:40:11
6 | * @LastEditors: yongqing
7 | * @LastEditTime: 2021-12-16 21:42:24
8 | */
9 | /**
10 | * 开发环境
11 | */
12 | ; (function () {
13 | window.SITE_CONFIG = {}
14 |
15 | // api接口请求地址
16 | window.SITE_CONFIG['baseUrl'] = 'http://106.14.157.243:8113'
17 | // 静态资源文件url
18 | window.SITE_CONFIG['resourcesUrl'] = ''
19 | // cdn地址 = 域名 + 版本号
20 | window.SITE_CONFIG['domain'] = './' // 域名T
21 | window.SITE_CONFIG['version'] = '' // 版本号(年月日时分)
22 | window.SITE_CONFIG['cdnUrl'] = window.SITE_CONFIG.domain + window.SITE_CONFIG.version
23 | })()
24 |
--------------------------------------------------------------------------------
/static/config/index-prod.js:
--------------------------------------------------------------------------------
1 | /*
2 | * @Description:
3 | * @Version: 1.0
4 | * @Autor: yongqing
5 | * @Date: 2021-12-07 09:40:11
6 | * @LastEditors: yongqing
7 | * @LastEditTime: 2021-12-16 21:42:24
8 | */
9 | /**
10 | * 生产环境
11 | */
12 | ; (function () {
13 | window.SITE_CONFIG = {}
14 |
15 | // api接口请求地址
16 | window.SITE_CONFIG['baseUrl'] = 'http://106.14.157.243:8113'
17 | // 静态资源文件url
18 | window.SITE_CONFIG['resourcesUrl'] = ''
19 | // cdn地址 = 域名 + 版本号
20 | window.SITE_CONFIG['domain'] = './' // 域名T
21 | window.SITE_CONFIG['version'] = '' // 版本号(年月日时分)
22 | window.SITE_CONFIG['cdnUrl'] = window.SITE_CONFIG.domain + window.SITE_CONFIG.version
23 | })()
24 |
--------------------------------------------------------------------------------
/.eslintrc.js:
--------------------------------------------------------------------------------
1 | // https://eslint.org/docs/user-guide/configuring
2 |
3 | module.exports = {
4 | root: true,
5 | parser: 'babel-eslint',
6 | parserOptions: {
7 | sourceType: 'module'
8 | },
9 | env: {
10 | browser: true,
11 | },
12 | // https://github.com/standard/standard/blob/master/docs/RULES-en.md
13 | extends: 'standard',
14 | // required to lint *.vue files
15 | plugins: [
16 | 'html'
17 | ],
18 | // add your custom rules here
19 | rules: {
20 | // allow async-await
21 | 'generator-star-spacing': 'off',
22 | // allow debugger during development
23 | 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off'
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/src/crud/prod/transport.js:
--------------------------------------------------------------------------------
1 | /*
2 | * @Description:
3 | * @Version: 1.0
4 | * @Autor: yongqing
5 | * @Date: 2021-07-18 22:34:25
6 | * @LastEditors: yongqing
7 | * @LastEditTime: 2021-01-09 22:12:28
8 | */
9 | export const tableOption = {
10 | border: false,
11 | index: false,
12 | indexLabel: '序号',
13 | stripe: true,
14 | menuAlign: 'center',
15 | menuWidth: 350,
16 | align: 'center',
17 | refreshBtn: true,
18 | searchSize: 'mini',
19 | addBtn: false,
20 | editBtn: false,
21 | delBtn: false,
22 | viewBtn: false,
23 | props: {
24 | label: 'label',
25 | value: 'value'
26 | },
27 | column: [{
28 | label: '模板名称',
29 | prop: 'transName',
30 | search: true
31 | }]
32 | }
33 |
--------------------------------------------------------------------------------
/src/i18n/i18n.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue'
2 | import VueI18n from 'vue-i18n'
3 | import enLocale from './langs/en'
4 | import zhCnLocale from './langs/zh_CN'
5 | import enElementLocale from 'element-ui/lib/locale/lang/en'
6 | import zhCnElementLocale from 'element-ui/lib/locale/lang/zh-CN'
7 | import Avue from '@smallwei/avue'
8 |
9 | Vue.use(VueI18n)
10 | const i18n = new VueI18n({
11 | locale: localStorage.getItem('lang') || 'zh_CN',
12 | messages: {
13 | en: {
14 | ...enLocale,
15 | ...enElementLocale,
16 | ...Avue.locale.en
17 | },
18 | zh_CN: {
19 | ...zhCnLocale,
20 | ...zhCnElementLocale,
21 | ...Avue.locale.zh
22 | }
23 | }
24 | })
25 |
26 | export default i18n
27 |
--------------------------------------------------------------------------------
/src/components/v-calendar/utils/mixins/child.js:
--------------------------------------------------------------------------------
1 | import { defaultsMixin } from '../defaults';
2 |
3 | export const childMixin = {
4 | inject: ['sharedState'],
5 | mixins: [defaultsMixin],
6 | computed: {
7 | masks() {
8 | return this.sharedState.masks;
9 | },
10 | theme() {
11 | return this.sharedState.theme;
12 | },
13 | locale() {
14 | return this.sharedState.locale;
15 | },
16 | dayPopoverId() {
17 | return this.sharedState.dayPopoverId;
18 | },
19 | },
20 | methods: {
21 | format(date, mask) {
22 | return this.locale.format(date, mask);
23 | },
24 | pageForDate(date) {
25 | return this.locale.getDateParts(this.locale.normalizeDate(date));
26 | },
27 | },
28 | };
29 |
--------------------------------------------------------------------------------
/src/crud/corp/role.js:
--------------------------------------------------------------------------------
1 | import i18n from '../../i18n/i18n'
2 | export const tableOption = {
3 | border: true,
4 | selection: true,
5 | index: false,
6 | indexLabel: i18n.t('sysManagement.serialNumber'),
7 | stripe: true,
8 | menuAlign: 'center',
9 | menuWidth: 350,
10 | align: 'center',
11 | refreshBtn: true,
12 | searchSize: 'mini',
13 | addBtn: false,
14 | editBtn: false,
15 | delBtn: false,
16 | viewBtn: false,
17 | props: {
18 | label: 'label',
19 | value: 'value'
20 | },
21 | column: [{
22 | label: i18n.t('corp.roleName'),
23 | prop: 'roleName',
24 | search: true
25 | }, {
26 | label: i18n.t('publics.remark'),
27 | prop: 'remark'
28 | }, {
29 | label: i18n.t('corp.creationTime'),
30 | prop: 'createTime'
31 | }]
32 | }
33 |
--------------------------------------------------------------------------------
/src/crud/corp/config.js:
--------------------------------------------------------------------------------
1 | import i18n from '../../i18n/i18n'
2 | export const tableOption = {
3 | border: true,
4 | selection: true,
5 | index: false,
6 | indexLabel: i18n.t('sysManagement.serialNumber'),
7 | stripe: true,
8 | menuAlign: 'center',
9 | menuWidth: 350,
10 | align: 'center',
11 | refreshBtn: true,
12 | searchSize: 'mini',
13 | addBtn: false,
14 | editBtn: false,
15 | delBtn: false,
16 | viewBtn: false,
17 | props: {
18 | label: 'label',
19 | value: 'value'
20 | },
21 | column: [{
22 | label: i18n.t('corp.parameteName'),
23 | prop: 'paramKey',
24 | search: true
25 | }, {
26 | label: i18n.t('corp.parameterValue'),
27 | prop: 'paramValue'
28 | }, {
29 | label: i18n.t('publics.remark'),
30 | prop: 'remark'
31 | }]
32 | }
33 |
--------------------------------------------------------------------------------
/src/crud/edu/distr.js:
--------------------------------------------------------------------------------
1 | /*
2 | * @Description:
3 | * @Version: 1.0
4 | * @Autor: yongqing
5 | * @Date: 2021-01-14 10:45:04
6 | * @LastEditors: yongqing
7 | * @LastEditTime: 2021-01-23 23:01:44
8 | */
9 |
10 | export const tableOption = {
11 | border: true,
12 | index: true,
13 | indexLabel: "序号",
14 | stripe: true,
15 | menuAlign: "center",
16 | align: "center",
17 | addBtn: false,
18 | editBtn: false,
19 | delBtn: false,
20 | filterBtn: false,
21 | columnBtn: false,
22 | refreshBtn: false,
23 | column: [{
24 | label: "教师姓名",
25 | prop: "empName"
26 | },
27 | {
28 | label: "电话",
29 | prop: "phone"
30 | },
31 | {
32 | label: "已分配课程数量",
33 | prop: "distrSum",
34 | },
35 |
36 | ]
37 | }
38 |
--------------------------------------------------------------------------------
/test/unit/jest.conf.js:
--------------------------------------------------------------------------------
1 | const path = require('path')
2 |
3 | module.exports = {
4 | rootDir: path.resolve(__dirname, '../../'),
5 | moduleFileExtensions: [
6 | 'js',
7 | 'json',
8 | 'vue'
9 | ],
10 | moduleNameMapper: {
11 | '^@/(.*)$': '/src/$1'
12 | },
13 | transform: {
14 | '^.+\\.js$': '/node_modules/babel-jest',
15 | '.*\\.(vue)$': '/node_modules/vue-jest'
16 | },
17 | testPathIgnorePatterns: [
18 | '/test/e2e'
19 | ],
20 | snapshotSerializers: ['/node_modules/jest-serializer-vue'],
21 | setupFiles: ['/test/unit/setup'],
22 | mapCoverage: true,
23 | coverageDirectory: '/test/unit/coverage',
24 | collectCoverageFrom: [
25 | 'src/**/*.{js,vue}',
26 | '!src/main.js',
27 | '!src/router/index.js',
28 | '!**/node_modules/**'
29 | ]
30 | }
31 |
--------------------------------------------------------------------------------
/src/crud/prod/prodTag.js:
--------------------------------------------------------------------------------
1 | export const tableOption = {
2 | border: true,
3 | index: true,
4 | indexLabel: '序号',
5 | stripe: true,
6 | menuAlign: 'center',
7 | align: 'center',
8 | addBtn: false,
9 | editBtn: false,
10 | delBtn: false,
11 | column: [
12 | {
13 | label: '标签名称',
14 | prop: 'title',
15 | search: true
16 | },
17 | {
18 | label: '状态',
19 | prop: 'status',
20 | type: 'select',
21 | slot: true,
22 | search: true,
23 | dicData: [
24 | {
25 | label: '禁用',
26 | value: 0
27 | }, {
28 | label: '正常',
29 | value: 1
30 | }
31 | ]
32 | },
33 | {
34 | label: '默认类型',
35 | prop: 'isDfault',
36 | slot: true
37 | },
38 | {
39 | label: '排序',
40 | prop: 'seq'
41 | }
42 | ]
43 | }
44 |
--------------------------------------------------------------------------------
/src/views/store/css/uc-order.css:
--------------------------------------------------------------------------------
1 | /* 个人中心-我的订单 */
2 | .user-center .uc-order {
3 | font-size: 12px;
4 | }
5 | .user-center .uc-order .uc-nav .recycle-bin {
6 | position: relative;
7 | display: block;
8 | line-height: 16px;
9 | font-size: 12px;
10 | color: #999;
11 | cursor: pointer;
12 | padding-left: 20px;
13 | }
14 |
15 | .user-center .uc-order .uc-nav .recycle-bin::before {
16 | position: absolute;
17 | left: 0;
18 | top: 1px;
19 | content: " ";
20 | display: block;
21 | width: 14px;
22 | height: 14px;
23 | background: url(../../../assets/img/icons.png) no-repeat 0 -633px;
24 | }
25 |
26 | .user-center .uc-order .uc-nav .recycle-bin:hover {
27 | color: #e1251b;
28 | }
29 |
30 | .user-center .uc-order .uc-nav .recycle-bin:hover::before {
31 | background-position: -19px -633px;
32 | }
33 |
34 | /* 个人中心-我的订单 end */
35 |
--------------------------------------------------------------------------------
/static/plugins/tinymce.4.9.4/plugins/directionality/plugin.min.js:
--------------------------------------------------------------------------------
1 | !function(){"use strict";var t=tinymce.util.Tools.resolve("tinymce.PluginManager"),c=tinymce.util.Tools.resolve("tinymce.util.Tools"),e=function(t,e){var i,n=t.dom,o=t.selection.getSelectedBlocks();o.length&&(i=n.getAttrib(o[0],"dir"),c.each(o,function(t){n.getParent(t.parentNode,'*[dir="'+e+'"]',n.getRoot())||n.setAttrib(t,"dir",i!==e?e:null)}),t.nodeChanged())},i=function(t){t.addCommand("mceDirectionLTR",function(){e(t,"ltr")}),t.addCommand("mceDirectionRTL",function(){e(t,"rtl")})},n=function(e){var i=[];return c.each("h1 h2 h3 h4 h5 h6 div p".split(" "),function(t){i.push(t+"[dir="+e+"]")}),i.join(",")},o=function(t){t.addButton("ltr",{title:"Left to right",cmd:"mceDirectionLTR",stateSelector:n("ltr")}),t.addButton("rtl",{title:"Right to left",cmd:"mceDirectionRTL",stateSelector:n("rtl")})};t.add("directionality",function(t){i(t),o(t)})}();
--------------------------------------------------------------------------------
/src/icons/index.js:
--------------------------------------------------------------------------------
1 | /**
2 | * 字体图标, 统一使用SVG Sprite矢量图标(http://www.iconfont.cn/)
3 | * 8a8a8a 32
4 | * 使用:
5 | * 1. 在阿里矢量图标站创建一个项目, 并添加图标(这一步非必须, 创建方便项目图标管理)
6 | * 2-1. 添加icon, 选中新增的icon图标, 复制代码 -> 下载 -> SVG下载 -> 粘贴代码(重命名)
7 | * 2-2. 添加icons, 下载图标库对应[iconfont.js]文件, 替换项目[./iconfont.js]文件
8 | * 3. 组件模版中使用 [ ]
9 | *
10 | * 注意:
11 | * 1. 通过2-2 添加icons, getNameList方法无法返回对应数据
12 | */
13 | import Vue from 'vue'
14 | import IconSvg from '@/components/icon-svg'
15 | import './iconfont.js'
16 |
17 | Vue.component('IconSvg', IconSvg)
18 |
19 | const svgFiles = require.context('./svg', true, /\.svg$/)
20 | const iconList = svgFiles.keys().map(item => svgFiles(item))
21 |
22 | export default {
23 | // 获取图标icon-(*).svg名称列表, 例如[shouye, xitong, zhedie, ...]
24 | getNameList () {
25 | return iconList.map(item => item.default.id.split('-')[1])
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/src/icons/svg/icon-quanxian.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/test/e2e/custom-assertions/elementCount.js:
--------------------------------------------------------------------------------
1 | // A custom Nightwatch assertion.
2 | // The assertion name is the filename.
3 | // Example usage:
4 | //
5 | // browser.assert.elementCount(selector, count)
6 | //
7 | // For more information on custom assertions see:
8 | // http://nightwatchjs.org/guide#writing-custom-assertions
9 |
10 | exports.assertion = function (selector, count) {
11 | this.message = 'Testing if element <' + selector + '> has count: ' + count
12 | this.expected = count
13 | this.pass = function (val) {
14 | return val === this.expected
15 | }
16 | this.value = function (res) {
17 | return res.value
18 | }
19 | this.command = function (cb) {
20 | var self = this
21 | return this.api.execute(function (selectorToCount) {
22 | return document.querySelectorAll(selectorToCount).length
23 | }, [selector], function (res) {
24 | cb.call(self, res)
25 | })
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/src/components/v-calendar/utils/buildMediaQuery.js:
--------------------------------------------------------------------------------
1 | import { isString, isArray, map, has, get } from './_';
2 |
3 | // This function gratuitously borrowed from TailwindCSS
4 | // https://github.com/tailwindcss/tailwindcss/blob/master/src/util/buildMediaQuery.js
5 | export default function buildMediaQuery(screens) {
6 | // Default min width
7 | if (isString(screens)) {
8 | screens = { min: screens };
9 | }
10 | // Wrap in array
11 | if (!isArray(screens)) {
12 | screens = [screens];
13 | }
14 | return screens
15 | .map(screen => {
16 | if (has(screen, 'raw')) {
17 | return screen.raw;
18 | }
19 | return map(screen, (value, feature) => {
20 | feature = get(
21 | {
22 | min: 'min-width',
23 | max: 'max-width',
24 | },
25 | feature,
26 | feature,
27 | );
28 | return `(${feature}: ${value})`;
29 | }).join(' and ');
30 | })
31 | .join(', ');
32 | }
33 |
--------------------------------------------------------------------------------
/src/store/index.js:
--------------------------------------------------------------------------------
1 | /*
2 | * @Description:
3 | * @Version: 1.0
4 | * @Autor: yongqing
5 | * @Date: 2021-12-07 09:40:11
6 | * @LastEditors: yongqing
7 | * @LastEditTime: 2021-02-20 15:44:36
8 | */
9 | import Vue from "vue"
10 | import Vuex from "vuex"
11 | import cloneDeep from "lodash/cloneDeep"
12 | import common from "./modules/common"
13 | import user from "./modules/user"
14 | import prod from "./modules/prod"
15 | import material from "./modules/material"
16 | import cartNumber from "./modules/cartNumber"
17 | Vue.use(Vuex)
18 |
19 | export default new Vuex.Store({
20 | modules: {
21 | common,
22 | user,
23 | prod,
24 | material,
25 | cartNumber
26 | },
27 | mutations: {
28 | // 重置vuex本地储存状态
29 | resetStore(state) {
30 | Object.keys(state).forEach(key => {
31 | state[key] = cloneDeep(window.SITE_CONFIG["storeState"][key])
32 | })
33 | }
34 | },
35 | strict: process.env.NODE_ENV !== "production"
36 | })
37 |
--------------------------------------------------------------------------------
/static/plugins/tinymce.4.9.4/plugins/nonbreaking/plugin.min.js:
--------------------------------------------------------------------------------
1 | !function(){"use strict";var n=tinymce.util.Tools.resolve("tinymce.PluginManager"),i=function(n,e){var t,i=(t=n).plugins.visualchars&&t.plugins.visualchars.isEnabled()?' ':" ";n.insertContent(function(n,e){for(var t="",i=0;i",e.each(t,function(t){var e=i+"/img/smiley-"+t+".gif";o+=' '}),o+=""}),o+=""},o=function(a,t){var e=i(t);a.addButton("emoticons",{type:"panelbutton",panel:{role:"application",autohide:!0,html:e,onclick:function(t){var e,i,o,n=a.dom.getParent(t.target,"a");n&&(e=a,i=n.getAttribute("data-mce-url"),o=n.getAttribute("data-mce-alt"),e.insertContent(e.dom.createHTML("img",{src:i,alt:o})),this.hide())}},tooltip:"Emoticons"})};t.add("emoticons",function(t,e){o(t,e)})}();
--------------------------------------------------------------------------------
/src/components/icon-svg/index.vue:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
9 |
10 |
11 |
43 |
44 |
52 |
--------------------------------------------------------------------------------
/static/plugins/tinymce.4.9.4/plugins/hr/plugin.js:
--------------------------------------------------------------------------------
1 | (function () {
2 | var hr = (function () {
3 | 'use strict';
4 |
5 | var global = tinymce.util.Tools.resolve('tinymce.PluginManager');
6 |
7 | var register = function (editor) {
8 | editor.addCommand('InsertHorizontalRule', function () {
9 | editor.execCommand('mceInsertContent', false, ' ');
10 | });
11 | };
12 | var $_9fxf06cnjnlpb193 = { register: register };
13 |
14 | var register$1 = function (editor) {
15 | editor.addButton('hr', {
16 | icon: 'hr',
17 | tooltip: 'Horizontal line',
18 | cmd: 'InsertHorizontalRule'
19 | });
20 | editor.addMenuItem('hr', {
21 | icon: 'hr',
22 | text: 'Horizontal line',
23 | cmd: 'InsertHorizontalRule',
24 | context: 'insert'
25 | });
26 | };
27 | var $_bcc2aocojnlpb194 = { register: register$1 };
28 |
29 | global.add('hr', function (editor) {
30 | $_9fxf06cnjnlpb193.register(editor);
31 | $_bcc2aocojnlpb194.register(editor);
32 | });
33 | function Plugin () {
34 | }
35 |
36 | return Plugin;
37 |
38 | }());
39 | })();
40 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2021 sixnine-edu
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/src/views/modules/user/meal.vue:
--------------------------------------------------------------------------------
1 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
38 |
39 |
40 |
--------------------------------------------------------------------------------
/src/views/college/pay-success.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | 支付结果
7 |
8 |
9 | 查看详情
10 |
11 |
12 |
13 |
14 |
15 |
26 |
27 |
48 |
--------------------------------------------------------------------------------
/src/crud/corp/log.js:
--------------------------------------------------------------------------------
1 | import i18n from '../../i18n/i18n'
2 | export const tableOption = {
3 | border: true,
4 | menu: false, // 移除操作栏
5 | selection: true,
6 | index: false,
7 | indexLabel: i18n.t('sysManagement.serialNumber'),
8 | stripe: true,
9 | menuAlign: 'center',
10 | menuWidth: 350,
11 | align: 'center',
12 | refreshBtn: true,
13 | searchSize: 'mini',
14 | addBtn: false,
15 | editBtn: false,
16 | delBtn: false,
17 | viewBtn: false,
18 | props: {
19 | label: 'label',
20 | value: 'value'
21 | },
22 | column: [{
23 | label: i18n.t('corp.userName'),
24 | prop: 'username',
25 | search: true
26 | }, {
27 | label: i18n.t('corp.userAction'),
28 | prop: 'operation',
29 | search: true
30 | }, {
31 | label: i18n.t('corp.requestMerthod'),
32 | prop: 'method'
33 | }, {
34 | label: i18n.t('corp.requestParameter'),
35 | prop: 'params'
36 | }, {
37 | label: i18n.t('corp.executionTime'),
38 | prop: 'time'
39 | }, {
40 | label: i18n.t('corp.ipAddress'),
41 | prop: 'ip'
42 | }, {
43 | label: i18n.t('corp.creationTime'),
44 | prop: 'createDate'
45 | }]
46 | }
47 |
--------------------------------------------------------------------------------
/src/views/headmaster/article-detail.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
校长首页
5 |
>
6 |
文章详情
7 |
8 |
11 |
12 |
13 |
14 |
15 |
16 |
37 |
38 |
47 |
--------------------------------------------------------------------------------
/src/crud/corp/user.js:
--------------------------------------------------------------------------------
1 | import i18n from '../../i18n/i18n'
2 | export const tableOption = {
3 | border: true,
4 | selection: true,
5 | index: false,
6 | indexLabel: i18n.t('sysManagement.serialNumber'),
7 | stripe: true,
8 | menuAlign: 'center',
9 | menuWidth: 350,
10 | align: 'center',
11 | refreshBtn: true,
12 | searchSize: 'mini',
13 | addBtn: false,
14 | editBtn: false,
15 | delBtn: false,
16 | viewBtn: false,
17 | props: {
18 | label: 'label',
19 | value: 'value'
20 | },
21 | column: [{
22 | label: i18n.t('corp.userName'),
23 | prop: 'username',
24 | search: true
25 | }, {
26 | label: i18n.t('corp.email'),
27 | prop: 'email'
28 | }, {
29 | label: i18n.t('publics.mobilePhone'),
30 | prop: 'mobile'
31 | }, {
32 | label: i18n.t('corp.creationTime'),
33 | prop: 'createTime'
34 | }, {
35 | label: i18n.t('product.status'),
36 | prop: 'status',
37 | type: 'select',
38 | dicData: [
39 | {
40 | label: i18n.t('publics.disable'),
41 | value: 0
42 | }, {
43 | label: i18n.t('publics.normal'),
44 | value: 1
45 | }
46 | ]
47 |
48 | }]
49 | }
50 |
--------------------------------------------------------------------------------
/src/store/modules/prod.js:
--------------------------------------------------------------------------------
1 | /*
2 | * @Description:
3 | * @Version: 1.0
4 | * @Autor: yongqing
5 | * @Date: 2021-12-07 09:40:11
6 | * @LastEditors: yongqing
7 | * @LastEditTime: 2021-01-10 23:35:11
8 | */
9 | export default {
10 | namespaced: true,
11 | state: {
12 | id: 0,
13 | skuTags: [],
14 | defalutSku: {
15 | price: 0.01, // 销售价
16 | oriPrice: 0.01, // 市场价
17 | skuScore: 0, // 积分价
18 | stocks: 0, // 库存
19 | properties: '', // 销售属性组合字符串
20 | skuName: '', // sku名称
21 | prodName: '', // 商品名称
22 | // partyCode: '', // 商品编码
23 | state: 1 // 0 禁用 1 启用
24 | }
25 | },
26 | mutations: {
27 | updateSkuTags (state, skuTags) {
28 | state.skuTags = skuTags
29 | },
30 | addSkuTag (state, skuTag) {
31 | state.skuTags.push(skuTag)
32 | },
33 | removeSkuTag (state, tagIndex) {
34 | state.skuTags.splice(tagIndex, 1)
35 | },
36 | removeSkuTagItem (state, { tagIndex, tagItemIndex }) {
37 | state.skuTags[tagIndex].tagItems.splice(tagItemIndex, 1)
38 | },
39 | addSkuTagItem (state, { tagIndex, tagItem }) {
40 | state.skuTags[tagIndex].tagItems.push(tagItem)
41 | }
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/src/views/headmaster/notice-detail.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
校长首页
5 |
>
6 |
公告详情
7 |
8 |
11 |
12 |
13 |
14 |
15 |
16 |
37 |
38 |
47 |
--------------------------------------------------------------------------------
/src/icons/svg/icon-shangcheng.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/crud/edu/distr-detail.js:
--------------------------------------------------------------------------------
1 | /*
2 | * @Description:
3 | * @Version: 1.0
4 | * @Autor: yongqing
5 | * @Date: 2021-02-21 15:03:52
6 | * @LastEditors: yongqing
7 | * @LastEditTime: 2021-02-27 11:33:47
8 | */
9 | /*
10 | * @Description:
11 | * @Version: 1.0
12 | * @Autor: yongqing
13 | * @Date: 2021-01-14 10:45:04
14 | * @LastEditors: yongqing
15 | * @LastEditTime: 2021-01-23 23:01:44
16 | */
17 |
18 | export const tableOption = {
19 | border: true,
20 | index: true,
21 | indexLabel: "序号",
22 | stripe: true,
23 | menuAlign: "center",
24 | align: "center",
25 | addBtn: false,
26 | editBtn: false,
27 | delBtn: false,
28 | filterBtn: false,
29 | columnBtn: false,
30 | refreshBtn: false,
31 | menu: false,
32 | column: [{
33 | width: 150,
34 | label: "封面",
35 | prop: "coverImg",
36 | slot: true
37 | },
38 | {
39 | label: "课程名称",
40 | prop: "title"
41 | },
42 | {
43 | label: "课程简介",
44 | prop: "info",
45 | slot: true
46 | },
47 | {
48 | label: "购买时间",
49 | prop: "createTime"
50 | },
51 | {
52 | label: "过期时间",
53 | prop: "expireTime"
54 | }
55 | ]
56 | }
57 |
--------------------------------------------------------------------------------
/test/e2e/nightwatch.conf.js:
--------------------------------------------------------------------------------
1 | require('babel-register')
2 | var config = require('../../config')
3 |
4 | // http://nightwatchjs.org/gettingstarted#settings-file
5 | module.exports = {
6 | src_folders: ['test/e2e/specs'],
7 | output_folder: 'test/e2e/reports',
8 | custom_assertions_path: ['test/e2e/custom-assertions'],
9 |
10 | selenium: {
11 | start_process: true,
12 | server_path: require('selenium-server').path,
13 | host: '127.0.0.1',
14 | port: 4444,
15 | cli_args: {
16 | 'webdriver.chrome.driver': require('chromedriver').path
17 | }
18 | },
19 |
20 | test_settings: {
21 | default: {
22 | selenium_port: 4444,
23 | selenium_host: '192.168.0.143',
24 | silent: true,
25 | globals: {
26 | devServerURL: 'http://192.168.0.143:' + (process.env.PORT || config.dev.port)
27 | }
28 | },
29 |
30 | chrome: {
31 | desiredCapabilities: {
32 | browserName: 'chrome',
33 | javascriptEnabled: true,
34 | acceptSslCerts: true
35 | }
36 | },
37 |
38 | firefox: {
39 | desiredCapabilities: {
40 | browserName: 'firefox',
41 | javascriptEnabled: true,
42 | acceptSslCerts: true
43 | }
44 | }
45 | }
46 | }
47 |
--------------------------------------------------------------------------------
/src/crud/tenant/corp.js:
--------------------------------------------------------------------------------
1 | /*
2 | * @Description:
3 | * @Version: 1.0
4 | * @Autor: yongqing
5 | * @Date: 2021-01-14 10:45:04
6 | * @LastEditors: yongqing
7 | * @LastEditTime: 2021-01-14 11:33:03
8 | */
9 | export const tableOption = {
10 | border: true,
11 | index: true,
12 | indexLabel: "序号",
13 | stripe: true,
14 | menuAlign: "center",
15 | align: "center",
16 | addBtn: false,
17 | editBtn: false,
18 | delBtn: false,
19 | column: [
20 | {
21 | label: "机构名称",
22 | prop: "corpName",
23 | search: true
24 | },
25 | {
26 | label: "联系人",
27 | prop: "linkMan",
28 | search: true
29 | },
30 | {
31 | label: "手机号",
32 | prop: "mobile",
33 | search: true
34 | },
35 | {
36 | label: "状态",
37 | prop: "state",
38 | search: true,
39 | slot: true,
40 | type: "select",
41 | dicData: [
42 | {
43 | label: "禁用",
44 | value: 0
45 | },
46 | {
47 | label: "启用",
48 | value: 1
49 | }
50 | ]
51 | }
52 | ]
53 | }
54 |
--------------------------------------------------------------------------------
/src/components/v-calendar/lib.js:
--------------------------------------------------------------------------------
1 | import * as components from './components';
2 | import * as utils from './utils';
3 |
4 | // Declare install function executed by Vue.use()
5 | function install(Vue, opts) {
6 | // Don't install more than once
7 | if (install.installed) return;
8 | install.installed = true;
9 | // Manually setup calendar with options
10 | const defaults = utils.setupCalendar(opts);
11 | // Register components
12 | Object.entries(components).forEach(([componentName, component]) => {
13 | Vue.component(`${defaults.componentPrefix}${componentName}`, component);
14 | });
15 | }
16 |
17 | // Create module definition for Vue.use()
18 | const plugin = {
19 | install,
20 | ...components,
21 | ...utils,
22 | };
23 |
24 | // Use automatically when global Vue instance detected
25 | let GlobalVue = null;
26 | if (typeof window !== 'undefined') {
27 | GlobalVue = window.Vue;
28 | } else if (typeof global !== 'undefined') {
29 | GlobalVue = global.Vue;
30 | }
31 | if (GlobalVue) {
32 | GlobalVue.use(plugin);
33 | }
34 |
35 | // Default export is library as a whole, registered via Vue.use()
36 | export default plugin;
37 |
38 | // Allow component use individually
39 | export * from './components';
40 |
41 | // Allow util use individually
42 | export * from './utils';
43 |
--------------------------------------------------------------------------------
/static/plugins/tinymce.4.9.4/plugins/colorpicker/plugin.min.js:
--------------------------------------------------------------------------------
1 | !function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager"),l=tinymce.util.Tools.resolve("tinymce.util.Color"),a=function(e,n){e.find("#preview")[0].getEl().style.background=n},o=function(e,n){var i=l(n),t=i.toRgb();e.fromJSON({r:t.r,g:t.g,b:t.b,hex:i.toHex().substr(1)}),a(e,i.toHex())},t=function(e,n,i){var t=e.windowManager.open({title:"Color",items:{type:"container",layout:"flex",direction:"row",align:"stretch",padding:5,spacing:10,items:[{type:"colorpicker",value:i,onchange:function(){var e=this.rgb();t&&(t.find("#r").value(e.r),t.find("#g").value(e.g),t.find("#b").value(e.b),t.find("#hex").value(this.value().substr(1)),a(t,this.value()))}},{type:"form",padding:0,labelGap:5,defaults:{type:"textbox",size:7,value:"0",flex:1,spellcheck:!1,onchange:function(){var e,n,i=t.find("colorpicker")[0];if(e=this.name(),n=this.value(),"hex"===e)return o(t,n="#"+n),void i.value(n);n={r:t.find("#r").value(),g:t.find("#g").value(),b:t.find("#b").value()},i.value(n),o(t,n)}},items:[{name:"r",label:"R",autofocus:1},{name:"g",label:"G"},{name:"b",label:"B"},{name:"hex",label:"#",value:"000000"},{name:"preview",type:"container",border:1}]}]},onSubmit:function(){n("#"+t.toJSON().hex)}});o(t,i)};e.add("colorpicker",function(i){i.settings.color_picker_callback||(i.settings.color_picker_callback=function(e,n){t(i,e,n)})})}();
--------------------------------------------------------------------------------
/src/crud/edu/course.js:
--------------------------------------------------------------------------------
1 | /*
2 | * @Description:
3 | * @Version: 1.0
4 | * @Autor: yongqing
5 | * @Date: 2021-02-21 15:03:52
6 | * @LastEditors: yongqing
7 | * @LastEditTime: 2021-02-27 11:33:47
8 | */
9 | /*
10 | * @Description:
11 | * @Version: 1.0
12 | * @Autor: yongqing
13 | * @Date: 2021-01-14 10:45:04
14 | * @LastEditors: yongqing
15 | * @LastEditTime: 2021-01-23 23:01:44
16 | */
17 |
18 | export const tableOption = {
19 | border: true,
20 | index: true,
21 | indexLabel: "序号",
22 | stripe: true,
23 | menuAlign: "center",
24 | align: "center",
25 | addBtn: false,
26 | editBtn: false,
27 | delBtn: false,
28 | column: [
29 | {
30 | width: 150,
31 | label: "封面",
32 | prop: "coverImg",
33 | slot: true
34 | },
35 | {
36 | label: "课程名称",
37 | prop: "title"
38 | },
39 | {
40 | label: "课程简介",
41 | prop: "info",
42 | slot: true
43 | },
44 | {
45 | label: "购买时间",
46 | prop: "createTime"
47 | },
48 | {
49 | label: "过期时间",
50 | prop: "expireTime"
51 | },
52 | {
53 | label: "购买数量",
54 | prop: "courseCount"
55 | },
56 | {
57 | label: "剩余可分配数量",
58 | prop: "leftCount"
59 | }
60 | ]
61 | }
62 |
--------------------------------------------------------------------------------
/static/plugins/tinymce.4.9.4/plugins/save/plugin.min.js:
--------------------------------------------------------------------------------
1 | !function(){"use strict";var n=tinymce.util.Tools.resolve("tinymce.PluginManager"),t=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"),a=tinymce.util.Tools.resolve("tinymce.util.Tools"),o=function(n){return n.getParam("save_enablewhendirty",!0)},c=function(n){return!!n.getParam("save_onsavecallback")},i=function(n){return!!n.getParam("save_oncancelcallback")},r=function(n,e){n.notificationManager.open({text:n.translate(e),type:"error"})},e=function(n){var e;if(e=t.DOM.getParent(n.id,"form"),!o(n)||n.isDirty()){if(n.save(),c(n))return n.execCallback("save_onsavecallback",n),void n.nodeChanged();e?(n.setDirty(!1),e.onsubmit&&!e.onsubmit()||("function"==typeof e.submit?e.submit():r(n,"Error: Form submit field collision.")),n.nodeChanged()):r(n,"Error: No form element found.")}},l=function(n){var e=a.trim(n.startContent);i(n)?n.execCallback("save_oncancelcallback",n):(n.setContent(e),n.undoManager.clear(),n.nodeChanged())},d=function(n){n.addCommand("mceSave",function(){e(n)}),n.addCommand("mceCancel",function(){l(n)})},s=function(t){return function(n){var e=n.control;t.on("nodeChange dirty",function(){e.disabled(o(t)&&!t.isDirty())})}},u=function(n){n.addButton("save",{icon:"save",text:"Save",cmd:"mceSave",disabled:!0,onPostRender:s(n)}),n.addButton("cancel",{text:"Cancel",icon:!1,cmd:"mceCancel",disabled:!0,onPostRender:s(n)}),n.addShortcut("Meta+S","","mceSave")};n.add("save",function(n){u(n),d(n)})}();
--------------------------------------------------------------------------------
/static/plugins/tinymce.4.9.4/plugins/pagebreak/plugin.min.js:
--------------------------------------------------------------------------------
1 | !function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager"),a=tinymce.util.Tools.resolve("tinymce.Env"),n=function(e){return e.getParam("pagebreak_separator","\x3c!-- pagebreak --\x3e")},i=function(e){return e.getParam("pagebreak_split_block",!1)},t=function(){return"mce-pagebreak"},r=function(){return' '},c=function(c){var o=n(c),a=new RegExp(o.replace(/[\?\.\*\[\]\(\)\{\}\+\^\$\:]/g,function(e){return"\\"+e}),"gi");c.on("BeforeSetContent",function(e){e.content=e.content.replace(a,r())}),c.on("PreInit",function(){c.serializer.addNodeFilter("img",function(e){for(var a,n,t=e.length;t--;)if((n=(a=e[t]).attr("class"))&&-1!==n.indexOf("mce-pagebreak")){var r=a.parent;if(c.schema.getBlockElements()[r.name]&&i(c)){r.type=3,r.value=o,r.raw=!0,a.remove();continue}a.type=3,a.value=o,a.raw=!0}})})},o=r,g=t,u=function(e){e.addCommand("mcePageBreak",function(){e.settings.pagebreak_split_block?e.insertContent(""+o()+"
"):e.insertContent(o())})},m=function(a){a.on("ResolveName",function(e){"IMG"===e.target.nodeName&&a.dom.hasClass(e.target,g())&&(e.name="pagebreak")})},s=function(e){e.addButton("pagebreak",{title:"Page break",cmd:"mcePageBreak"}),e.addMenuItem("pagebreak",{text:"Page break",icon:"pagebreak",cmd:"mcePageBreak",context:"insert"})};e.add("pagebreak",function(e){u(e),s(e),c(e),m(e)})}();
--------------------------------------------------------------------------------
/static/plugins/tinymce.4.9.4/plugins/anchor/plugin.min.js:
--------------------------------------------------------------------------------
1 | !function(){"use strict";var t=tinymce.util.Tools.resolve("tinymce.PluginManager"),a=function(t){return/^[A-Za-z][A-Za-z0-9\-:._]*$/.test(t)},e=function(t){var e=t.selection.getNode();return"A"===e.tagName&&""===t.dom.getAttrib(e,"href")?e.id||e.name:""},i=function(t,e){var n=t.selection.getNode();"A"===n.tagName&&""===t.dom.getAttrib(n,"href")?(n.removeAttribute("name"),n.id=e,t.undoManager.add()):(t.focus(),t.selection.collapse(!0),t.execCommand("mceInsertContent",!1,t.dom.createHTML("a",{id:e})))},n=function(r){var t=e(r);r.windowManager.open({title:"Anchor",body:{type:"textbox",name:"id",size:40,label:"Id",value:t},onsubmit:function(t){var e,n,o=t.data.id;e=r,(a(n=o)?(i(e,n),0):(e.windowManager.alert("Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores."),1))&&t.preventDefault()}})},o=function(t){t.addCommand("mceAnchor",function(){n(t)})},r=function(o){return function(t){for(var e=0;e
--------------------------------------------------------------------------------
/src/icons/svg/icon-caidan.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/crud/prod/prodComm.js:
--------------------------------------------------------------------------------
1 | export const tableOption = {
2 | border: true,
3 | index: true,
4 | indexLabel: '序号',
5 | stripe: true,
6 | menuAlign: 'center',
7 | menuWidth: 300,
8 | align: 'center',
9 | addBtn: false,
10 | editBtn: false,
11 | delBtn: false,
12 | column: [
13 | {
14 | label: '商品名',
15 | prop: 'prodName',
16 | search: true
17 | },
18 | {
19 | label: '用户昵称',
20 | prop: 'nickName'
21 | },
22 | {
23 | label: '记录时间',
24 | prop: 'recTime',
25 | width: '200'
26 | },
27 | {
28 | label: '回复时间',
29 | prop: 'replyTime',
30 | width: '200',
31 | dicData: [
32 | {
33 | label: '无',
34 | value: ''
35 | }
36 | ]
37 | },
38 | {
39 | label: '评价得分',
40 | prop: 'score'
41 | },
42 | {
43 | label: '是否匿名',
44 | prop: 'isAnonymous',
45 | dicData: [
46 | {
47 | label: '否',
48 | value: 0
49 | }, {
50 | label: '是',
51 | value: 1
52 | }
53 | ]
54 | },
55 | {
56 | prop: 'status',
57 | label: '审核状态',
58 | search: true,
59 | type: 'select',
60 | dicData: [
61 | {
62 | label: '待审核',
63 | value: 0
64 | }, {
65 | label: '审核通过',
66 | value: 1
67 | }, {
68 | label: '审核未通过',
69 | value: -1
70 | }
71 | ]
72 | }
73 | ]
74 | }
75 |
--------------------------------------------------------------------------------
/src/crud/prod/course-select.js:
--------------------------------------------------------------------------------
1 | /*
2 | * @Description:
3 | * @Version: 1.0
4 | * @Autor: yongqing
5 | * @Date: 2021-12-21 17:04:52
6 | * @LastEditors: yongqing
7 | * @LastEditTime: 2021-01-10 23:18:34
8 | */
9 | export const tableOption = {
10 | selection: true,
11 | reserveSelection: false,
12 | rowKey: "courseId",
13 | addBtn: false,
14 | filterBtn: false,
15 | columnBtn: false,
16 | refreshBtn: false,
17 | editBtn: false,
18 | delBtn: false,
19 | menu: false,
20 | menuAlign: "center",
21 | column: [
22 | {
23 | width: 120,
24 | label: "封面",
25 | prop: "coverImg",
26 | slot: true
27 | },
28 | {
29 | label: "课程名称",
30 | prop: "title"
31 | },
32 | {
33 | label: "课程简介",
34 | prop: "info"
35 | },
36 | {
37 | label: "分类",
38 | prop: "categoryName",
39 | slot: true
40 | },
41 | {
42 | label: "状态",
43 | prop: "state",
44 | select: true,
45 | dicData: [
46 | {
47 | label: "已下架",
48 | value: 0
49 | },
50 | {
51 | label: "已上架",
52 | value: 1
53 | }
54 | ]
55 | },
56 | {
57 | label: "创建时间",
58 | prop: "createTime"
59 | }
60 | ]
61 | }
62 |
--------------------------------------------------------------------------------
/static/plugins/tinymce.4.9.4/plugins/noneditable/plugin.min.js:
--------------------------------------------------------------------------------
1 | !function(){"use strict";var t=tinymce.util.Tools.resolve("tinymce.PluginManager"),c=tinymce.util.Tools.resolve("tinymce.util.Tools"),l=function(t){return t.getParam("noneditable_noneditable_class","mceNonEditable")},u=function(t){return t.getParam("noneditable_editable_class","mceEditable")},f=function(t){var n=t.getParam("noneditable_regexp",[]);return n&&n.constructor===RegExp?[n]:n},s=function(n){return function(t){return-1!==(" "+t.attr("class")+" ").indexOf(n)}},d=function(i,o,c){return function(t){var n=arguments,e=n[n.length-2],r=0"===r){var a=o.lastIndexOf("<",e);if(-1!==a&&-1!==o.substring(a,e).indexOf('contenteditable="false"'))return t}return''+i.dom.encode("string"==typeof n[1]?n[1]:n[0])+" "}},n=function(n){var t,e,r="contenteditable";t=" "+c.trim(u(n))+" ",e=" "+c.trim(l(n))+" ";var a=s(t),i=s(e),o=f(n);n.on("PreInit",function(){0
--------------------------------------------------------------------------------
/src/views/common/404.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
400
6 |
抱歉!您访问的页面失联 啦 ...
7 |
返回上一页
8 |
进入首页
9 |
10 |
11 |
12 |
13 |
14 |
15 |
19 |
20 |
63 |
--------------------------------------------------------------------------------
/src/icons/svg/icon-kecheng.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/static/plugins/tinymce.4.9.4/plugins/visualblocks/plugin.min.js:
--------------------------------------------------------------------------------
1 | !function(){"use strict";var o=function(e){var t=e,n=function(){return t};return{get:n,set:function(e){t=e},clone:function(){return o(n())}}},e=tinymce.util.Tools.resolve("tinymce.PluginManager"),i=function(e,t){e.fire("VisualBlocks",{state:t})},s=function(e){return e.getParam("visualblocks_default_state",!1)},c=function(e){return e.settings.visualblocks_content_css},l=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"),u=tinymce.util.Tools.resolve("tinymce.util.Tools"),a=l.DOM.uniqueId(),r=function(e,t){var n=u.toArray(e.getElementsByTagName("link"));if(0===u.grep(n,function(e){return e.id===a}).length){var o=l.DOM.create("link",{id:a,rel:"stylesheet",href:t});e.getElementsByTagName("head")[0].appendChild(o)}},m=function(e,t,n){var o=e.dom,s=c(e);r(e.getDoc(),s||t+"/css/visualblocks.css"),o.toggleClass(e.getBody(),"mce-visualblocks"),n.set(!n.get()),i(e,n.get())},f=function(e,t,n){e.addCommand("mceVisualBlocks",function(){m(e,t,n)})},d=function(t,e,n){t.on("PreviewFormats AfterPreviewFormats",function(e){n.get()&&t.dom.toggleClass(t.getBody(),"mce-visualblocks","afterpreviewformats"===e.type)}),t.on("init",function(){s(t)&&m(t,e,n)}),t.on("remove",function(){t.dom.removeClass(t.getBody(),"mce-visualblocks")})},n=function(n,o){return function(e){var t=e.control;t.active(o.get()),n.on("VisualBlocks",function(e){t.active(e.state)})}},v=function(e,t){e.addButton("visualblocks",{active:!1,title:"Show blocks",cmd:"mceVisualBlocks",onPostRender:n(e,t)}),e.addMenuItem("visualblocks",{text:"Show blocks",cmd:"mceVisualBlocks",onPostRender:n(e,t),selectable:!0,context:"view",prependToContext:!0})};e.add("visualblocks",function(e,t){var n=o(!1);f(e,t,n),v(e,n),d(e,t,n)})}();
--------------------------------------------------------------------------------
/src/components/v-calendar/utils/_.js:
--------------------------------------------------------------------------------
1 | // Type utils
2 | export { default as isBoolean } from 'lodash/isBoolean';
3 | export { default as isNumber } from 'lodash/isNumber';
4 | export { default as isString } from 'lodash/isString';
5 | export { default as isArray } from 'lodash/isArrayLikeObject';
6 | export { default as isFunction } from 'lodash/isFunction';
7 | export { default as isUndefined } from 'lodash/isUndefined';
8 | import _isDate from 'lodash/isDate';
9 |
10 | // Number utils
11 | export { default as clamp } from 'lodash/clamp';
12 |
13 | // Object utils
14 | export { default as get } from 'lodash/get';
15 | export { default as set } from 'lodash/set';
16 | export { default as mapValues } from 'lodash/mapValues';
17 | export { default as toPairs } from 'lodash/toPairs';
18 | export { default as defaults } from 'lodash/defaults';
19 | export { default as defaultsDeep } from 'lodash/defaultsDeep';
20 | export { default as pick } from 'lodash/pick';
21 | export { default as omit } from 'lodash/omit';
22 | import _has from 'lodash/has';
23 |
24 | // Collection utils
25 | export { default as map } from 'lodash/map';
26 | export { default as head } from 'lodash/head';
27 | export { default as last } from 'lodash/last';
28 | import _some from 'lodash/some';
29 |
30 | // Type checkers
31 | export const getType = value =>
32 | Object.prototype.toString.call(value).slice(8, -1);
33 | export const isDate = value => _isDate(value) && !isNaN(value.getTime());
34 | export const isObject = value => getType(value) === 'Object';
35 | // Object utils
36 | export const has = _has;
37 | export const hasAny = (obj, props) => _some(props, p => _has(obj, p));
38 | // Collection utils
39 | export const some = _some;
40 |
--------------------------------------------------------------------------------
/test/e2e/runner.js:
--------------------------------------------------------------------------------
1 | // 1. start the dev server using production config
2 | process.env.NODE_ENV = 'testing'
3 |
4 | const webpack = require('webpack')
5 | const DevServer = require('webpack-dev-server')
6 |
7 | const webpackConfig = require('../../build/webpack.prod.conf')
8 | const devConfigPromise = require('../../build/webpack.dev.conf')
9 |
10 | let server
11 |
12 | devConfigPromise.then(devConfig => {
13 | const devServerOptions = devConfig.devServer
14 | const compiler = webpack(webpackConfig)
15 | server = new DevServer(compiler, devServerOptions)
16 | const port = devServerOptions.port
17 | const host = devServerOptions.host
18 | return server.listen(port, host)
19 | })
20 | .then(() => {
21 | // 2. run the nightwatch test suite against it
22 | // to run in additional browsers:
23 | // 1. add an entry in test/e2e/nightwatch.conf.json under "test_settings"
24 | // 2. add it to the --env flag below
25 | // or override the environment flag, for example: `npm run e2e -- --env chrome,firefox`
26 | // For more information on Nightwatch's config file, see
27 | // http://nightwatchjs.org/guide#settings-file
28 | let opts = process.argv.slice(2)
29 | if (opts.indexOf('--config') === -1) {
30 | opts = opts.concat(['--config', 'test/e2e/nightwatch.conf.js'])
31 | }
32 | if (opts.indexOf('--env') === -1) {
33 | opts = opts.concat(['--env', 'chrome'])
34 | }
35 |
36 | const spawn = require('cross-spawn')
37 | const runner = spawn('./node_modules/.bin/nightwatch', opts, { stdio: 'inherit' })
38 |
39 | runner.on('exit', function (code) {
40 | server.close()
41 | process.exit(code)
42 | })
43 |
44 | runner.on('error', function (err) {
45 | server.close()
46 | throw err
47 | })
48 | })
49 |
--------------------------------------------------------------------------------
/static/plugins/tinymce.4.9.4/plugins/contextmenu/plugin.min.js:
--------------------------------------------------------------------------------
1 | !function(){"use strict";var o=function(t){var n=t,e=function(){return n};return{get:e,set:function(t){n=t},clone:function(){return o(e())}}},t=tinymce.util.Tools.resolve("tinymce.PluginManager"),i=function(t){return{isContextMenuVisible:function(){return t.get()}}},r=function(t){return t.settings.contextmenu_never_use_native},u=function(t){return t.getParam("contextmenu","link openlink image inserttable | cell row column deletetable")},l=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"),s=function(t){return l.DOM.select(t.settings.ui_container)[0]},a=function(t,n){return{x:t,y:n}},f=function(t,n,e){return a(t.x+n,t.y+e)},m=function(t,n){if(t&&"static"!==l.DOM.getStyle(t,"position",!0)){var e=l.DOM.getPos(t),o=e.x-t.scrollLeft,i=e.y-t.scrollTop;return f(n,-o,-i)}return f(n,0,0)},c=function(t,n){if(t.inline)return m(s(t),a((u=n).pageX,u.pageY));var e,o,i,r,u,c=(e=t.getContentAreaContainer(),o=a((r=n).clientX,r.clientY),i=l.DOM.getPos(e),f(o,i.x,i.y));return m(s(t),c)},g=tinymce.util.Tools.resolve("tinymce.ui.Factory"),v=tinymce.util.Tools.resolve("tinymce.util.Tools"),y=function(t,n,e,o){null===o.get()?o.set(function(e,n){var t,o,i=[];o=u(e),v.each(o.split(/[ ,]/),function(t){var n=e.menuItems[t];"|"===t&&(n={text:t}),n&&(n.shortcut="",i.push(n))});for(var r=0;r
21 |
22 | #### 校长首页
23 |
24 |
25 | #### 成长学院--首页
26 |
27 |
28 | #### 成长学院---所有课程
29 |
30 |
31 | #### 审批、申请
32 |
33 |
34 | #### 成长学院---校长栏
35 |
36 |
37 | #### 课程详情
38 |
39 |
40 | #### 支付
41 |
42 |
43 | #### 课程视频播放
44 |
45 |
46 | #### 在线商城
47 |
48 |
49 |
50 |
51 | ### 如需体验demo请加微信好友获取账号密码
52 |
53 |
54 |
--------------------------------------------------------------------------------
/src/store/modules/common.js:
--------------------------------------------------------------------------------
1 | /*
2 | * @Description:
3 | * @Version: 1.0
4 | * @Autor: yongqing
5 | * @Date: 2021-12-07 09:40:11
6 | * @LastEditors: yongqing
7 | * @LastEditTime: 2021-03-10 17:29:27
8 | */
9 | import router from '@/router'
10 |
11 | export default {
12 | namespaced: true,
13 | state: {
14 | // 页面文档可视高度(随窗口改变大小)
15 | documentClientHeight: 0,
16 | // 导航条, 布局风格, defalut(默认) / inverse(反向)
17 | navbarLayoutType: 'default',
18 | // 侧边栏, 布局皮肤, light(浅色) / dark(黑色)
19 | sidebarLayoutSkin: 'dark',
20 | // 侧边栏, 折叠状态
21 | sidebarFold: false,
22 | // 侧边栏, 菜单
23 | menuList: [],
24 | menuActiveName: '',
25 | // 主入口标签页
26 | mainTabs: [],
27 | mainTabsActiveName: ''
28 | },
29 | mutations: {
30 | updateDocumentClientHeight (state, height) {
31 | state.documentClientHeight = height
32 | },
33 | updateSidebarFold (state, fold) {
34 | state.sidebarFold = fold
35 | },
36 | updateMenuList (state, list) {
37 | state.menuList = list
38 | },
39 | updateMenuActiveName (state, name) {
40 | state.menuActiveName = name
41 | },
42 | updateMainTabs (state, tabs) {
43 | state.mainTabs = tabs
44 | },
45 | updateMainTabsActiveName (state, name) {
46 | state.mainTabsActiveName = name
47 | },
48 | removeMainActiveTab (state) {
49 | state.mainTabs = state.mainTabs.filter(item => item.name !== state.mainTabsActiveName)
50 | if (state.mainTabs.length >= 1) {
51 | // 当前选中tab被删除
52 | router.push({ name: state.mainTabs[state.mainTabs.length - 1].name }, () => {
53 | state.mainTabsActiveName = state.mainTabs[state.mainTabs.length - 1].name
54 | })
55 | } else {
56 | state.menuActiveName = ''
57 | router.push({ name: 'home' })
58 | }
59 | }
60 | }
61 | }
62 |
--------------------------------------------------------------------------------
/src/views/main-sidebar-sub-menu.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {{ menu.name }}
6 |
7 |
8 |
9 |
10 |
11 |
12 | {{ menu.name }}
13 |
14 |
15 |
16 |
56 |
--------------------------------------------------------------------------------
/src/views/modules/teacher/live.vue:
--------------------------------------------------------------------------------
1 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 | 查看
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
54 |
55 |
56 |
--------------------------------------------------------------------------------
/src/views/modules/corp/log.vue:
--------------------------------------------------------------------------------
1 |
2 |
12 |
13 |
14 |
69 |
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 | 六九教育平台(学校端)
17 | <% if (process.env.NODE_ENV === 'production') { %>
18 |
19 |
22 | <% }else { %>
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 | <% } %>
40 |
41 |
42 |
43 |
44 |
45 |
46 |
--------------------------------------------------------------------------------
/src/icons/svg/icon-jiaowu.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/crud/basis/staff.js:
--------------------------------------------------------------------------------
1 | /*
2 | * @Description:
3 | * @Version: 1.0
4 | * @Autor: yongqing
5 | * @Date: 2021-01-14 10:45:04
6 | * @LastEditors: yongqing
7 | * @LastEditTime: 2021-01-23 23:52:42
8 | */
9 | export const tableOption = {
10 | border: true,
11 | index: true,
12 | indexLabel: "序号",
13 | stripe: true,
14 | menuAlign: "center",
15 | align: "center",
16 | addBtn: false,
17 | editBtn: false,
18 | delBtn: false,
19 | column: [
20 | {
21 | label: "手机号",
22 | prop: "userName",
23 | search: true
24 | },
25 | {
26 | label: "姓名",
27 | prop: "empName",
28 | search: true
29 | },
30 | {
31 | label: "头像",
32 | prop: "headImg",
33 | slot: true
34 | },
35 | {
36 | label: "性别",
37 | prop: "sex",
38 | type: "select",
39 | dicData: [
40 | {
41 | label: "女",
42 | value: 0
43 | },
44 | {
45 | label: "男",
46 | value: 1
47 | }
48 | ]
49 | },
50 | {
51 | label: "职位",
52 | prop: "postInfo"
53 | },
54 | {
55 | label: "校区",
56 | prop: "schoolInfo"
57 | },
58 | {
59 | label: "过期时间",
60 | prop: "expireTime"
61 | },
62 | {
63 | label: "状态",
64 | prop: "state",
65 | search: true,
66 | slot: true,
67 | type: "select",
68 | dicData: [
69 | {
70 | label: "禁用",
71 | value: 0
72 | },
73 | {
74 | label: "启用",
75 | value: 1
76 | }
77 | ]
78 | }
79 | ]
80 | }
81 |
--------------------------------------------------------------------------------
/static/plugins/tinymce.4.9.4/plugins/preview/plugin.min.js:
--------------------------------------------------------------------------------
1 | !function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager"),r=tinymce.util.Tools.resolve("tinymce.Env"),c=function(e){return parseInt(e.getParam("plugin_preview_width","650"),10)},a=function(e){return parseInt(e.getParam("plugin_preview_height","500"),10)},s=function(e){return e.getParam("content_style","")},d=tinymce.util.Tools.resolve("tinymce.util.Tools"),l=function(t){var n="",i=t.dom.encode,e=s(t);n+=' ',e&&(n+='"),d.each(t.contentCSS,function(e){n+=' '});var o=t.settings.body_id||"tinymce";-1!==o.indexOf("=")&&(o=(o=t.getParam("body_id","","hash"))[t.id]||o);var r=t.settings.body_class||"";-1!==r.indexOf("=")&&(r=(r=t.getParam("body_class","","hash"))[t.id]||"");var c=t.settings.directionality?' dir="'+t.settings.directionality+'"':"";return""+n+'"+t.getContent()+'
60 |
61 |
86 |
--------------------------------------------------------------------------------
/src/icons/svg/icon-shouye.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/components/v-calendar/components/SvgIcon.vue:
--------------------------------------------------------------------------------
1 |
2 |
9 |
10 |
11 |
12 |
13 |
62 |
63 |
73 |
--------------------------------------------------------------------------------
/src/components/v-calendar/utils/defaults/index.js:
--------------------------------------------------------------------------------
1 | // Vue won't get included in bundle as it is externalized
2 | // https://cli.vuejs.org/guide/build-targets.html#library
3 | import Vue from 'vue';
4 | import { isObject, defaultsDeep, mapValues, get, has } from '../_';
5 | import touch from './touch.json';
6 | import masks from './masks.json';
7 | import screens from './screens.json';
8 | import locales from './locales';
9 |
10 | const pluginDefaults = {
11 | componentPrefix: 'v',
12 | navVisibility: 'click',
13 | titlePosition: 'center',
14 | transition: 'slide-h',
15 | touch,
16 | masks,
17 | screens,
18 | locales,
19 | datePicker: {
20 | updateOnInput: true,
21 | inputDebounce: 1000,
22 | popover: {
23 | visibility: 'hover-focus',
24 | placement: 'bottom-start',
25 | keepVisibleOnInput: false,
26 | isInteractive: true,
27 | },
28 | },
29 | };
30 |
31 | let defaults_ = null;
32 |
33 | export const setupDefaults = opts => {
34 | if (!defaults_) {
35 | defaults_ = new Vue({
36 | data() {
37 | return {
38 | defaults: defaultsDeep(opts, pluginDefaults),
39 | };
40 | },
41 | computed: {
42 | locales() {
43 | return mapValues(this.defaults.locales, v => {
44 | v.masks = defaultsDeep(v.masks, this.defaults.masks);
45 | return v;
46 | });
47 | },
48 | },
49 | });
50 | }
51 | return defaults_.defaults;
52 | };
53 |
54 | export const defaultsMixin = {
55 | beforeCreate() {
56 | setupDefaults();
57 | },
58 | computed: {
59 | $defaults() {
60 | return defaults_.defaults;
61 | },
62 | $locales() {
63 | return defaults_.locales;
64 | },
65 | },
66 | methods: {
67 | propOrDefault(prop, defaultPath, strategy) {
68 | return this.passedProp(prop, get(this.$defaults, defaultPath), strategy);
69 | },
70 | passedProp(prop, fallback, strategy) {
71 | if (has(this.$options.propsData, prop)) {
72 | const propValue = this[prop];
73 | if (isObject(propValue) && strategy === 'merge') {
74 | return defaultsDeep(propValue, fallback);
75 | }
76 | return propValue;
77 | }
78 | return fallback;
79 | },
80 | },
81 | };
82 |
--------------------------------------------------------------------------------
/src/components/pagination.vue:
--------------------------------------------------------------------------------
1 |
9 |
10 |
45 |
46 |
47 |
93 |
94 |
96 |
--------------------------------------------------------------------------------
/src/components/img-upload/index.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
67 |
68 |
93 |
--------------------------------------------------------------------------------
/src/components/v-calendar/components/TimeSelect.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | {{ option.label }}
11 |
12 |
19 |
20 |
21 |
22 |
30 |
31 |
94 |
--------------------------------------------------------------------------------
/src/views/modules/corp/pset/wx-config.vue:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
30 |
116 |
117 |
--------------------------------------------------------------------------------
/src/components/v-calendar/utils/screens.js:
--------------------------------------------------------------------------------
1 | // Vue won't get included in bundle as it is externalized
2 | // https://cli.vuejs.org/guide/build-targets.html#library
3 | import Vue from 'vue';
4 | import buildMediaQuery from './buildMediaQuery';
5 | import defaultScreens from './defaults/screens.json';
6 | import { isUndefined, mapValues, toPairs, isFunction, has } from './_';
7 |
8 | let isSettingUp = false;
9 | let shouldRefreshQueries = false;
10 | let screensComp = null;
11 |
12 | export function setupScreens(screens = defaultScreens, forceSetup) {
13 | if ((screensComp && !forceSetup) || isSettingUp) {
14 | return;
15 | }
16 | isSettingUp = true;
17 | shouldRefreshQueries = true;
18 | // Use a private Vue component to store reactive screen matches
19 | screensComp = new Vue({
20 | data() {
21 | return {
22 | matches: [],
23 | queries: [],
24 | };
25 | },
26 | methods: {
27 | refreshQueries() {
28 | if (!window || !window.matchMedia) return;
29 | this.queries = mapValues(screens, v => {
30 | const query = window.matchMedia(buildMediaQuery(v));
31 | if (isFunction(query.addEventListener)) {
32 | query.addEventListener('change', this.refreshMatches);
33 | } else {
34 | // Deprecated 'MediaQueryList' API, p[1].matches)
44 | .map(p => p[0]);
45 | },
46 | },
47 | });
48 | isSettingUp = false;
49 | }
50 |
51 | // Global mixin that provides responsive '$screens' utility method
52 | // that refreshes any time the screen matches update
53 | Vue.mixin({
54 | beforeCreate() {
55 | if (!isSettingUp) {
56 | setupScreens();
57 | }
58 | },
59 | mounted() {
60 | if (shouldRefreshQueries && screensComp) {
61 | screensComp.refreshQueries();
62 | shouldRefreshQueries = false;
63 | }
64 | },
65 | computed: {
66 | $screens() {
67 | return (config, def) => {
68 | debugger
69 | return screensComp.matches.reduce(
70 | (prev, curr) => (has(config, curr) ? config[curr] : prev),
71 | isUndefined(def) ? config.default : def,
72 | );
73 | }
74 |
75 |
76 | },
77 | },
78 | });
79 |
--------------------------------------------------------------------------------
/src/utils/pageUtil.js:
--------------------------------------------------------------------------------
1 |
2 | /**
3 | * 分页彩虹算法
4 | * 通过传入的信息,生成一个分页列表显示
5 | * [4,5,6,7,8]
6 | * @param currentPage 当前页
7 | * @param pageCount 总页数
8 | * @param displayCount 每屏展示的页数
9 | * @return 分页条
10 | */
11 | const rainbow = (currentPage, pageCount, displayCount = 5) => {
12 | var isEven = true;
13 | isEven = displayCount % 2 == 0;
14 | var left = displayCount / 2;
15 | var right = displayCount / 2;
16 |
17 | var length = displayCount;
18 | if (isEven) {
19 | right++;
20 | }
21 | if (pageCount < displayCount) {
22 | length = pageCount;
23 | }
24 | var result = new Array(length);
25 | if (pageCount >= displayCount) {
26 | if (currentPage <= left) {
27 | for (var i = 0; i < result.length; i++) {
28 | result[i] = i + 1;
29 | }
30 | } else if (currentPage > pageCount - right) {
31 | for (var i = 0; i < result.length; i++) {
32 | result[i] = i + pageCount - displayCount + 1;
33 | }
34 | } else {
35 | for (var i = 0; i < result.length; i++) {
36 | result[i] = i + currentPage - left + (isEven ? 1 : 0);
37 | }
38 | }
39 | } else {
40 | for (var i = 0; i < result.length; i++) {
41 | result[i] = i + 1;
42 | }
43 | }
44 | var ceilResult = []
45 | result.forEach(resultItem => {
46 | ceilResult.push(Math.ceil(resultItem))
47 | })
48 | return ceilResult;
49 | }
50 |
51 |
52 | /**
53 | * 基于分页彩虹算法之上生成分页带 '...' 的分页算法
54 | * 通过传入的信息,生成一个分页列表显示
55 | *
56 | * [1, '...',4,5,6,7,8, '...', 10]
57 | * @param currentPage 当前页
58 | * @param pageCount 总页数
59 | * @param displayCount 每屏展示的页数
60 | * @return 分页条
61 | */
62 | const rainbowWithDot = (currentPage, pageCount, displayCount = 5) => {
63 | var rainbowResult = rainbow(currentPage, pageCount, displayCount)
64 | var rainbowResultLength = rainbowResult.length
65 | // 如果页数足够小,直接返回展示的页数
66 | if (rainbowResultLength < displayCount) {
67 | return rainbowResult
68 | }
69 |
70 | var result = []
71 | if (rainbowResult[0] === 2) {
72 | result.push(1)
73 | }
74 | if (rainbowResult[0] > 2) {
75 | result.push(1)
76 | result.push('...')
77 | }
78 | result = result.concat(rainbowResult)
79 | if (rainbowResult[rainbowResultLength - 1] === pageCount - 1) {
80 | result.push(pageCount)
81 | }
82 |
83 | if (rainbowResult[rainbowResultLength - 1] < pageCount - 1) {
84 | result.push('...')
85 | result.push(pageCount)
86 | }
87 | return result
88 | }
89 |
90 |
91 | module.exports = {
92 | rainbow: rainbow,
93 | rainbowWithDot: rainbowWithDot
94 | }
95 |
--------------------------------------------------------------------------------
/src/components/v-calendar/utils/popovers.js:
--------------------------------------------------------------------------------
1 | import { elementContains } from './helpers';
2 |
3 | export function showPopover(opts) {
4 | if (document) {
5 | document.dispatchEvent(
6 | new CustomEvent('show-popover', {
7 | detail: opts,
8 | }),
9 | );
10 | }
11 | }
12 |
13 | export function hidePopover(opts) {
14 | if (document) {
15 | document.dispatchEvent(
16 | new CustomEvent('hide-popover', {
17 | detail: opts,
18 | }),
19 | );
20 | }
21 | }
22 |
23 | export function togglePopover(opts) {
24 | if (document) {
25 | document.dispatchEvent(
26 | new CustomEvent('toggle-popover', {
27 | detail: opts,
28 | }),
29 | );
30 | }
31 | }
32 |
33 | export function updatePopover(opts) {
34 | if (document) {
35 | document.dispatchEvent(
36 | new CustomEvent('update-popover', {
37 | detail: opts,
38 | }),
39 | );
40 | }
41 | }
42 |
43 | export function getPopoverTriggerEvents(opts) {
44 | const { visibility } = opts;
45 | const click = visibility === 'click';
46 | const hover = visibility === 'hover';
47 | const hoverFocus = visibility === 'hover-focus';
48 | const focus = visibility === 'focus';
49 | opts.autoHide = !click;
50 | let hovered = false;
51 | let focused = false;
52 | return {
53 | click(e) {
54 | if (click) {
55 | opts.ref = e.target;
56 | togglePopover(opts);
57 | e.stopPropagation();
58 | }
59 | },
60 | mousemove(e) {
61 | opts.ref = e.currentTarget;
62 | if (!hovered) {
63 | hovered = true;
64 | if (hover || hoverFocus) {
65 | showPopover(opts);
66 | }
67 | }
68 | },
69 | mouseleave(e) {
70 | opts.ref = e.target;
71 | if (hovered) {
72 | hovered = false;
73 | if (hover || (hoverFocus && !focused)) {
74 | hidePopover(opts);
75 | }
76 | }
77 | },
78 | focusin(e) {
79 | opts.ref = e.currentTarget;
80 | if (!focused) {
81 | focused = true;
82 | if (focus || hoverFocus) {
83 | showPopover(opts);
84 | }
85 | }
86 | },
87 | focusout(e) {
88 | opts.ref = e.currentTarget;
89 | if (focused && !elementContains(opts.ref, e.relatedTarget)) {
90 | focused = false;
91 | if (focus || (hoverFocus && !hovered)) {
92 | hidePopover(opts);
93 | }
94 | }
95 | },
96 | };
97 | }
98 |
--------------------------------------------------------------------------------
/src/views/modules/corp/pset/oss-config.vue:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
28 |
114 |
115 |
--------------------------------------------------------------------------------
/static/plugins/tinymce.4.9.4/plugins/insertdatetime/plugin.min.js:
--------------------------------------------------------------------------------
1 | !function(){"use strict";var r=function(e){var t=e,n=function(){return t};return{get:n,set:function(e){t=e},clone:function(){return r(n())}}},e=tinymce.util.Tools.resolve("tinymce.PluginManager"),n=function(e){return e.getParam("insertdatetime_timeformat",e.translate("%H:%M:%S"))},a=function(e){return e.getParam("insertdatetime_formats",["%H:%M:%S","%Y-%m-%d","%I:%M:%S %p","%D"])},t=function(e){return e.getParam("insertdatetime_dateformat",e.translate("%Y-%m-%d"))},i=n,o=a,u=function(e){var t=a(e);return 0'+n+"")}else e.insertContent(f(e,t));var i,o,u,c,l},y=f,M=function(e){e.addCommand("mceInsertDate",function(){g(e,t(e))}),e.addCommand("mceInsertTime",function(){g(e,i(e))})},v=tinymce.util.Tools.resolve("tinymce.util.Tools"),S=function(t,n){var r,a,e,i=(a=n,e=o(r=t),v.map(e,function(e){return{text:y(r,e),onclick:function(){a.set(e),g(r,e)}}}));t.addButton("insertdatetime",{type:"splitbutton",title:"Insert date/time",menu:i,onclick:function(){var e=n.get();g(t,e||u(t))}}),t.addMenuItem("insertdatetime",{icon:"date",text:"Date/time",menu:i,context:"insert"})};e.add("insertdatetime",function(e){var t=r(null);M(e),S(e,t)})}();
--------------------------------------------------------------------------------
/src/views/modules/edu/distr-add-or-update.vue:
--------------------------------------------------------------------------------
1 |
9 |
10 |
11 |
12 |
13 |
14 | {{ scope.row.info }}
15 |
16 |
17 |
18 |
19 |
20 |
21 |
24 |
25 |
26 |
77 |
78 |
--------------------------------------------------------------------------------
/static/plugins/tinymce.4.9.4/plugins/emoticons/plugin.js:
--------------------------------------------------------------------------------
1 | (function () {
2 | var emoticons = (function () {
3 | 'use strict';
4 |
5 | var global = tinymce.util.Tools.resolve('tinymce.PluginManager');
6 |
7 | var global$1 = tinymce.util.Tools.resolve('tinymce.util.Tools');
8 |
9 | var emoticons = [
10 | [
11 | 'cool',
12 | 'cry',
13 | 'embarassed',
14 | 'foot-in-mouth'
15 | ],
16 | [
17 | 'frown',
18 | 'innocent',
19 | 'kiss',
20 | 'laughing'
21 | ],
22 | [
23 | 'money-mouth',
24 | 'sealed',
25 | 'smile',
26 | 'surprised'
27 | ],
28 | [
29 | 'tongue-out',
30 | 'undecided',
31 | 'wink',
32 | 'yell'
33 | ]
34 | ];
35 | var getHtml = function (pluginUrl) {
36 | var emoticonsHtml;
37 | emoticonsHtml = '';
38 | global$1.each(emoticons, function (row) {
39 | emoticonsHtml += '';
40 | global$1.each(row, function (icon) {
41 | var emoticonUrl = pluginUrl + '/img/smiley-' + icon + '.gif';
42 | emoticonsHtml += ' ';
43 | });
44 | emoticonsHtml += ' ';
45 | });
46 | emoticonsHtml += '
';
47 | return emoticonsHtml;
48 | };
49 | var $_1c1n9qbajnlpb11e = { getHtml: getHtml };
50 |
51 | var insertEmoticon = function (editor, src, alt) {
52 | editor.insertContent(editor.dom.createHTML('img', {
53 | src: src,
54 | alt: alt
55 | }));
56 | };
57 | var register = function (editor, pluginUrl) {
58 | var panelHtml = $_1c1n9qbajnlpb11e.getHtml(pluginUrl);
59 | editor.addButton('emoticons', {
60 | type: 'panelbutton',
61 | panel: {
62 | role: 'application',
63 | autohide: true,
64 | html: panelHtml,
65 | onclick: function (e) {
66 | var linkElm = editor.dom.getParent(e.target, 'a');
67 | if (linkElm) {
68 | insertEmoticon(editor, linkElm.getAttribute('data-mce-url'), linkElm.getAttribute('data-mce-alt'));
69 | this.hide();
70 | }
71 | }
72 | },
73 | tooltip: 'Emoticons'
74 | });
75 | };
76 | var $_9zn7l8b9jnlpb11b = { register: register };
77 |
78 | global.add('emoticons', function (editor, pluginUrl) {
79 | $_9zn7l8b9jnlpb11b.register(editor, pluginUrl);
80 | });
81 | function Plugin () {
82 | }
83 |
84 | return Plugin;
85 |
86 | }());
87 | })();
88 |
--------------------------------------------------------------------------------
/src/icons/svg/icon-zhanghu.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/components/v-calendar/components/CustomTransition.vue:
--------------------------------------------------------------------------------
1 |
41 |
42 |
108 |
--------------------------------------------------------------------------------
/src/views/modules/edu/distr.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
6 | 查看详情
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
83 |
84 |
85 |
--------------------------------------------------------------------------------
/static/plugins/tinymce.4.9.4/plugins/bbcode/plugin.min.js:
--------------------------------------------------------------------------------
1 | !function(){"use strict";var o=tinymce.util.Tools.resolve("tinymce.PluginManager"),t=tinymce.util.Tools.resolve("tinymce.util.Tools"),e=function(e){e=t.trim(e);var o=function(o,t){e=e.replace(o,t)};return o(/(.*?)<\/a>/gi,"[url=$1]$2[/url]"),o(/(.*?)<\/font>/gi,"[code][color=$1]$2[/color][/code]"),o(/(.*?)<\/font>/gi,"[quote][color=$1]$2[/color][/quote]"),o(/(.*?)<\/font>/gi,"[code][color=$1]$2[/color][/code]"),o(/(.*?)<\/font>/gi,"[quote][color=$1]$2[/color][/quote]"),o(/(.*?)<\/span>/gi,"[color=$1]$2[/color]"),o(/(.*?)<\/font>/gi,"[color=$1]$2[/color]"),o(/(.*?)<\/span>/gi,"[size=$1]$2[/size]"),o(/(.*?)<\/font>/gi,"$1"),o(/ /gi,"[img]$1[/img]"),o(/(.*?)<\/span>/gi,"[code]$1[/code]"),o(/(.*?)<\/span>/gi,"[quote]$1[/quote]"),o(/(.*?)<\/strong>/gi,"[code][b]$1[/b][/code]"),o(/(.*?)<\/strong>/gi,"[quote][b]$1[/b][/quote]"),o(/(.*?)<\/em>/gi,"[code][i]$1[/i][/code]"),o(/(.*?)<\/em>/gi,"[quote][i]$1[/i][/quote]"),o(/(.*?)<\/u>/gi,"[code][u]$1[/u][/code]"),o(/(.*?)<\/u>/gi,"[quote][u]$1[/u][/quote]"),o(/<\/(strong|b)>/gi,"[/b]"),o(/<(strong|b)>/gi,"[b]"),o(/<\/(em|i)>/gi,"[/i]"),o(/<(em|i)>/gi,"[i]"),o(/<\/u>/gi,"[/u]"),o(/(.*?)<\/span>/gi,"[u]$1[/u]"),o(//gi,"[u]"),o(/]*>/gi,"[quote]"),o(/<\/blockquote>/gi,"[/quote]"),o(/ /gi,"\n"),o(/ /gi,"\n"),o(/ /gi,"\n"),o(//gi,""),o(/<\/p>/gi,"\n"),o(/ |\u00a0/gi," "),o(/"/gi,'"'),o(/</gi,"<"),o(/>/gi,">"),o(/&/gi,"&"),e},i=function(e){e=t.trim(e);var o=function(o,t){e=e.replace(o,t)};return o(/\n/gi," "),o(/\[b\]/gi,""),o(/\[\/b\]/gi," "),o(/\[i\]/gi,""),o(/\[\/i\]/gi," "),o(/\[u\]/gi,""),o(/\[\/u\]/gi," "),o(/\[url=([^\]]+)\](.*?)\[\/url\]/gi,'$2 '),o(/\[url\](.*?)\[\/url\]/gi,'$1 '),o(/\[img\](.*?)\[\/img\]/gi,' '),o(/\[color=(.*?)\](.*?)\[\/color\]/gi,'$2 '),o(/\[code\](.*?)\[\/code\]/gi,'$1 '),o(/\[quote.*?\](.*?)\[\/quote\]/gi,'$1 '),e};o.add("bbcode",function(){return{init:function(o){o.on("beforeSetContent",function(o){o.content=i(o.content)}),o.on("postProcess",function(o){o.set&&(o.content=i(o.content)),o.get&&(o.content=e(o.content))})}}})}();
--------------------------------------------------------------------------------