Commit 19b2044a by zsh

update

parent 1a86cad6
{
// 业务代码使用
// 全局方式引入, 会污染全局环境
// 执行顺序: 从下往上, 从右往左
"presets": [
["@babel/preset-env", {
"targets": {
"chrome": "10"
},
"corejs": "2",
"useBuiltIns": "usage" // 根据已使用的语法添加polyfill, 无需单独再引入(import '@babel/polyfill')
}],
[ "@vue/app", { "useBuiltIns": "entry" } ],
["@vue/babel-preset-jsx", {
"injectH": false
}]
],
"plugins": [
"@babel/plugin-syntax-dynamic-import",
"jsx-v-model"
]
// 类库等代码使用, 且无需引入polyfill
// 闭包方式引入, 不会污染全局环境
// "plugins": [["@babel/plugin-transform-runtime", {
// "corejs": 2,
// "helpers": true,
// "regenerator": true,
// "useESModules": false
// }]]
}
root = true
[*]
charset = uft-8
end_of_line = lf
indent_size = 4 # 代码缩进数量
indent_style = space # 代码缩进类型 - 空格
insert_final_newline = true # 保存文件时自动在文件末尾添加一行空行(需安装对应的插件 - EditorConfig for VSCode)
trim_trailing_whitespace = true # 自动删除行末尾的空格
{
"extends": "standard",
"plugins": [
"html"
],
"parser": "babel-eslint",
"rules": {
"indent": ["error", 4], // 缩进4行
"no-new": "off" // 允许使用 new 关键字
}
}
node_modules
dist
\ No newline at end of file
[submodule "runner"]
path = runner
branch = master
url = http://123.207.147.179:8888/vue-project/Frame/runner.git
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
</template> </template>
<script> <script>
import setScale from 'runner/common/utils/refreshSize' import setScale from '@refresh'
export default { export default {
name: 'app', name: 'app',
...@@ -38,7 +38,7 @@ export default { ...@@ -38,7 +38,7 @@ export default {
</script> </script>
<style lang="less"> <style lang="less">
@import "../static/styles/layoutMain.less"; @import "./static/styles/layoutMain.less";
body { body {
background-color: #011428; background-color: #011428;
......
...@@ -79,7 +79,7 @@ export default { ...@@ -79,7 +79,7 @@ export default {
width: 80px; width: 80px;
height: 80px; height: 80px;
z-index: 1; z-index: 1;
// background: url('../../../static/images/close.png') no-repeat left top; // background: url('../../static/images/close.png') no-repeat left top;
} }
......
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>上海市洋泾菊园实验学校</title>
</head>
<body>
<div id="app"></div>
</body>
</html>
...@@ -2,10 +2,9 @@ import Vue from 'vue' ...@@ -2,10 +2,9 @@ import Vue from 'vue'
import VueRouter from 'vue-router' import VueRouter from 'vue-router'
import Vuex from 'vuex' import Vuex from 'vuex'
import App from './App.vue' import App from './App.vue'
import './public/apis' // 接口请求配置 import './apis' // 接口请求配置
import createStore from './store' // Vuex import createStore from './store' // Vuex
import createRouter from './router/router' import createRouter from './router'
import UsePlugin from 'runner/common/plugins'
import customPlugin from './public/plugins' import customPlugin from './public/plugins'
import utils from 'utils' import utils from 'utils'
import ElementUI from 'element-ui' import ElementUI from 'element-ui'
...@@ -18,7 +17,6 @@ Vue.prototype.$video = Video ...@@ -18,7 +17,6 @@ Vue.prototype.$video = Video
Vue.use(Vuex) Vue.use(Vuex)
Vue.use(VueRouter) Vue.use(VueRouter)
Vue.use(UsePlugin)
Vue.use(customPlugin) Vue.use(customPlugin)
Vue.use(ElementUI) Vue.use(ElementUI)
...@@ -41,7 +39,6 @@ new Vue({ ...@@ -41,7 +39,6 @@ new Vue({
el: '#app', el: '#app',
router, router,
store, store,
UsePlugin,
customPlugin, customPlugin,
template: '<App/>', template: '<App/>',
components: { App } components: { App }
......
This source diff could not be displayed because it is too large. You can view the blob instead.
{
"name": "webpack-vue",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"dev": "cross-env NODE_ENV=development webpack-dev-server --host --history-api-fallback --config runner/build/webpack.dev.conf.js",
"start": "npm run dev",
"build": "cross-env NODE_ENV=production node runner/build/build.prd.js",
"lint": "eslint --ext .js --ext .jsx --ext .vue client/",
"lint-fix": "eslint --fix --ext .js --ext .jsx --ext .vue src/ widgets/ runner/",
"precommit": "npm run lint-fix",
"init": "git submodule update --init --recursive && npm run update",
"update": "git submodule update --recursive --remote --merge --force && npm install"
},
"author": "",
"license": "ISC",
"devDependencies": {
"@babel/core": "^7.14.8",
"@babel/plugin-syntax-dynamic-import": "^7.8.3",
"@babel/plugin-transform-runtime": "^7.14.5",
"@babel/polyfill": "^7.0.0",
"@babel/preset-env": "^7.14.8",
"@babel/runtime": "^7.14.8",
"@babel/runtime-corejs2": "^7.14.8",
"@vue/babel-helper-vue-jsx-merge-props": "^1.2.1",
"@vue/babel-preset-jsx": "^1.2.4",
"@vue/cli-plugin-babel": "^4.5.13",
"autoprefixer": "^9.3.1",
"babel-eslint": "^10.1.0",
"babel-helper-vue-jsx-merge-props": "^2.0.3",
"babel-loader": "^8.0.4",
"babel-plugin-jsx-v-model": "^2.0.3",
"babel-plugin-syntax-jsx": "^6.18.0",
"babel-plugin-transform-vue-jsx": "^3.7.0",
"babel-preset-env": "^1.7.0",
"chalk": "^2.3.0",
"copy-webpack-plugin": "^4.3.1",
"cross-env": "^5.1.3",
"css-hot-loader": "^1.4.4",
"css-loader": "^3.6.0",
"eslint": "^4.16.0",
"eslint-config-standard": "^11.0.0-beta.0",
"eslint-loader": "^2.2.1",
"eslint-plugin-html": "^4.0.1",
"eslint-plugin-import": "^2.23.4",
"eslint-plugin-node": "^5.2.1",
"eslint-plugin-promise": "^3.6.0",
"eslint-plugin-standard": "^3.0.1",
"file-loader": "^6.2.0",
"friendly-errors-webpack-plugin": "^1.6.1",
"html-webpack-plugin": "^4.5.2",
"less": "^4.1.1",
"less-loader": "^7.3.0",
"lodash": "^4.17.21",
"mini-css-extract-plugin": "^0.5.0",
"node-notifier": "^5.1.2",
"node-sass": "^4.14.1",
"optimize-css-assets-webpack-plugin": "^3.2.0",
"ora": "^1.3.0",
"postcss-loader": "^3.0.0",
"rimraf": "^2.6.2",
"sass-loader": "^10.2.0",
"sass-resources-loader": "^2.2.4",
"uglifyjs-webpack-plugin": "^2.2.0",
"url-loader": "^4.1.1",
"video.js": "^7.17.0",
"vue-awesome-swiper": "^3.1.3",
"vue-loader": "^15.9.6",
"vue-style-loader": "^4.1.3",
"vue-template-compiler": "^2.6.14",
"webpack": "^4.46.0",
"webpack-cli": "^3.3.12",
"webpack-dev-middleware": "^5.0.0",
"webpack-dev-server": "^3.11.2",
"webpack-merge": "^4.1.1"
},
"dependencies": {
"axios": "^0.17.1",
"core-js": "^2.6.5",
"echarts": "^5.1.2",
"element-ui": "^2.15.5",
"qs": "^6.10.1",
"swiper": "^4.5.1",
"vue": "^2.6.14",
"vue-awesome-swiper": "^3.1.3",
"vue-count-to": "^1.0.13",
"vue-router": "^3.5.2",
"vue-seamless-scroll": "^1.1.23",
"vuex": "^3.0.1"
},
"browserslist": [
"defaults",
"not ie < 11",
"last 2 versions",
"> 1%",
"iOS 7",
"last 3 iOS versions"
]
}
<template> <template>
<div class="student"> <div class="student">
<img class="img1" src='../../static/images/classStudent/1.png' /> <img class="img1" src='../static/images/classStudent/1.png' />
<img class="img2" @click="change" src="../../static/images/class3/back.png" /> <img class="img2" @click="change" src="../static/images/class3/back.png" />
</div> </div>
</template> </template>
...@@ -38,4 +38,4 @@ export default { ...@@ -38,4 +38,4 @@ export default {
cursor: pointer; cursor: pointer;
} }
} }
</style> </style>
\ No newline at end of file
...@@ -2,10 +2,10 @@ ...@@ -2,10 +2,10 @@
<div class="class3"> <div class="class3">
<page-back /> <page-back />
<img class="img1" @click="change1" src="../../static/images/class3/more.png" /> <img class="img1" @click="change1" src="../static/images/class3/more.png" />
<img class="img2" @click="change2" src="../../static/images/class3/more.png" /> <img class="img2" @click="change2" src="../static/images/class3/more.png" />
<img class="img3" @click="change3" src="../../static/images/class3/more.png" /> <img class="img3" @click="change3" src="../static/images/class3/more.png" />
<img class="img4" @click="change4" src="../../static/images/class3/back.png" /> <img class="img4" @click="change4" src="../static/images/class3/back.png" />
<!-- 搜索 --> <!-- 搜索 -->
<div class="class3-search"> <div class="class3-search">
...@@ -66,7 +66,8 @@ ...@@ -66,7 +66,8 @@
</template> </template>
<script> <script>
import SelectList from '@/components/SelectList.vue' import SelectList from '@widgets/select/SelectList.vue'
export default { export default {
components: { components: {
SelectList SelectList
...@@ -76,9 +77,9 @@ export default { ...@@ -76,9 +77,9 @@ export default {
visible: false, visible: false,
currIndex: 999, currIndex: 999,
pics: [ pics: [
require('../../static/images/class3/health.png'), require('../static/images/class3/health.png'),
require('../../static/images/class3/ronghe.png'), require('../static/images/class3/ronghe.png'),
require('../../static/images/class3/shuiping.png') require('../static/images/class3/shuiping.png')
], ],
// 选择年级 // 选择年级
gradeRes: { gradeRes: {
...@@ -173,7 +174,7 @@ export default { ...@@ -173,7 +174,7 @@ export default {
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
@imagePath: "../../static/images/class3/"; @imagePath: "../static/images/class3/";
.class3{ .class3{
width: 1920px; width: 1920px;
height: 1080px; height: 1080px;
......
...@@ -24,14 +24,14 @@ export default { ...@@ -24,14 +24,14 @@ export default {
.grow{ .grow{
width: 1920px; width: 1920px;
height: 1080px; height: 1080px;
background: url('../../static/images/sixthForm/grow.png') no-repeat center; background: url('../static/images/sixthForm/grow.png') no-repeat center;
position: relative; position: relative;
margin: 0 auto; margin: 0 auto;
overflow: hidden; overflow: hidden;
.edit{ .edit{
width: 83px; width: 83px;
height: 35px; height: 35px;
background: url('../../static/images/sixthForm/return.png') no-repeat; background: url('../static/images/sixthForm/return.png') no-repeat;
position: absolute; position: absolute;
top: 39px; top: 39px;
left: 1822px; left: 1822px;
......
...@@ -26,10 +26,10 @@ ...@@ -26,10 +26,10 @@
<div class="growthRecord-bottom"> <div class="growthRecord-bottom">
<div class="item" @click="primary"> <div class="item" @click="primary">
<img src="../../static/images/growthRecord/primary.png" alt=""> <img src="../static/images/growthRecord/primary.png" alt="">
</div> </div>
<div class="item" @click="junior"> <div class="item" @click="junior">
<img src="../../static/images/growthRecord/junior.png" alt=""> <img src="../static/images/growthRecord/junior.png" alt="">
</div> </div>
</div> </div>
</div> </div>
...@@ -37,18 +37,18 @@ ...@@ -37,18 +37,18 @@
</template> </template>
<script> <script>
import grade1 from '../../static/images/growthRecord/1.png' import grade1 from '../static/images/growthRecord/1.png'
import grade2 from '../../static/images/growthRecord/2.png' import grade2 from '../static/images/growthRecord/2.png'
import grade3 from '../../static/images/growthRecord/3.png' import grade3 from '../static/images/growthRecord/3.png'
import grade4 from '../../static/images/growthRecord/4.png' import grade4 from '../static/images/growthRecord/4.png'
import grade5 from '../../static/images/growthRecord/5.png' import grade5 from '../static/images/growthRecord/5.png'
import grade6 from '../../static/images/growthRecord/6.png' import grade6 from '../static/images/growthRecord/6.png'
import grade7 from '../../static/images/growthRecord/7.png' import grade7 from '../static/images/growthRecord/7.png'
import grade8 from '../../static/images/growthRecord/8.png' import grade8 from '../static/images/growthRecord/8.png'
import grade9 from '../../static/images/growthRecord/9.png' import grade9 from '../static/images/growthRecord/9.png'
import { swiper, swiperSlide } from 'vue-awesome-swiper' import { swiper, swiperSlide } from 'vue-awesome-swiper'
import 'swiper/dist/css/swiper.css' import 'swiper/dist/css/swiper.css'
import Tab from 'components/Tab' import Tab from '../components/Tab'
export default { export default {
data () { data () {
...@@ -105,7 +105,7 @@ export default { ...@@ -105,7 +105,7 @@ export default {
width: 1920px; width: 1920px;
height: 1080px; height: 1080px;
margin:0 auto; margin:0 auto;
background: url('../../static/images/growthRecord/backurl.jpg') no-repeat left top; background: url('../static/images/growthRecord/backurl.jpg') no-repeat left top;
.content{ .content{
.growthRecord-top{ .growthRecord-top{
......
...@@ -22,7 +22,7 @@ export default { ...@@ -22,7 +22,7 @@ export default {
width: 1920px; width: 1920px;
height: 1080px; height: 1080px;
margin: 0 auto; margin: 0 auto;
background: url('../../static/images/junior.png') no-repeat left top; background: url('../static/images/junior.png') no-repeat left top;
.header{ .header{
width: 100%; width: 100%;
height: 77px; height: 77px;
...@@ -40,7 +40,7 @@ export default { ...@@ -40,7 +40,7 @@ export default {
width: 83px; width: 83px;
margin: 15px; margin: 15px;
margin-top: 45px; margin-top: 45px;
background: url('../../static/images/back.png') no-repeat left top; background: url('../static/images/back.png') no-repeat left top;
} }
} }
} }
......
...@@ -22,7 +22,7 @@ export default { ...@@ -22,7 +22,7 @@ export default {
width: 1920px; width: 1920px;
height: 1080px; height: 1080px;
margin:0 auto; margin:0 auto;
background: url('../../static/images/primary.png') no-repeat left top; background: url('../static/images/primary.png') no-repeat left top;
.header{ .header{
width: 100%; width: 100%;
height: 77px; height: 77px;
...@@ -40,7 +40,7 @@ export default { ...@@ -40,7 +40,7 @@ export default {
width: 83px; width: 83px;
margin: 15px; margin: 15px;
margin-top: 45px; margin-top: 45px;
background: url('../../static/images/back.png') no-repeat left top; background: url('../static/images/back.png') no-repeat left top;
} }
} }
} }
......
...@@ -46,23 +46,23 @@ ...@@ -46,23 +46,23 @@
<!-- 轮播图 --> <!-- 轮播图 -->
<div class="carousel"> <div class="carousel">
<!-- <img src="../../static/images/progress/carousel.png" style="position: relative; top: -45px;" /> --> <!-- <img src="../static/images/progress/carousel.png" style="position: relative; top: -45px;" /> -->
<div class="swiper-container swiper-container-horizontal"> <div class="swiper-container swiper-container-horizontal">
<div class="swiper-wrapper"> <div class="swiper-wrapper">
<div class="swiper-slide"> <div class="swiper-slide">
<img src="../../static/images/progress/img1.png"> <img src="../static/images/progress/img1.png">
</div> </div>
<div class="swiper-slide"> <div class="swiper-slide">
<img src="../../static/images/progress/img2.png"> <img src="../static/images/progress/img2.png">
</div> </div>
<div class="swiper-slide"> <div class="swiper-slide">
<img src="../../static/images/progress/img3.png"> <img src="../static/images/progress/img3.png">
</div> </div>
<div class="swiper-slide"> <div class="swiper-slide">
<img src="../../static/images/progress/img4.png"> <img src="../static/images/progress/img4.png">
</div> </div>
<div class="swiper-slide"> <div class="swiper-slide">
<img src="../../static/images/progress/img5.png"> <img src="../static/images/progress/img5.png">
</div> </div>
</div> </div>
</div> </div>
...@@ -79,16 +79,16 @@ ...@@ -79,16 +79,16 @@
@beforeClose="visible = false" @beforeClose="visible = false"
> >
<div class="teacher-details"> <div class="teacher-details">
<img src="../../static/images/progress/teacher-details.png" /> <img src="../static/images/progress/teacher-details.png" />
</div> </div>
</bullet-frame> </bullet-frame>
</div> </div>
</template> </template>
<script> <script>
import Tab from 'components/Tab' import Tab from '../components/Tab'
import SelectItem from 'components/Select' import SelectItem from '../components/Select'
import VideoPlayer from 'components/VideoPlayer' import VideoPlayer from '../components/VideoPlayer'
import Swiper from 'swiper' import Swiper from 'swiper'
import 'swiper/dist/css/swiper.min.css' import 'swiper/dist/css/swiper.min.css'
import 'swiper/dist/js/swiper.min.js' import 'swiper/dist/js/swiper.min.js'
...@@ -191,7 +191,7 @@ export default { ...@@ -191,7 +191,7 @@ export default {
}, },
sources: [ sources: [
{ {
src: require('../../static/images/progress/teacher-video.mp4'), src: require('../static/images/progress/teacher-video.mp4'),
type: 'video/mp4' type: 'video/mp4'
} }
] ]
...@@ -293,7 +293,7 @@ export default { ...@@ -293,7 +293,7 @@ export default {
width: 1920px; width: 1920px;
height: 1080px; height: 1080px;
overflow: hidden; overflow: hidden;
background: url('../../static/images/progress/bg.png') no-repeat left top; background: url('../static/images/progress/bg.png') no-repeat left top;
} }
.search-bar { .search-bar {
...@@ -310,7 +310,7 @@ export default { ...@@ -310,7 +310,7 @@ export default {
font-family: Microsoft YaHei; font-family: Microsoft YaHei;
font-weight: 400; font-weight: 400;
color: #fff; color: #fff;
background: url('../../static/images/progress/search-wrap.png') no-repeat left top; background: url('../static/images/progress/search-wrap.png') no-repeat left top;
.school-types { .school-types {
display: flex; display: flex;
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
</template> </template>
<script> <script>
import Tab from 'components/Tab' import Tab from '../components/Tab'
export default { export default {
components: { components: {
...@@ -25,11 +25,11 @@ export default { ...@@ -25,11 +25,11 @@ export default {
width: 1920px; width: 1920px;
height: 1080px; height: 1080px;
margin:0 auto; margin:0 auto;
background: url('../../static/images/safety/backurl.png') no-repeat left top; background: url('../static/images/safety/backurl.png') no-repeat left top;
.header{ .header{
width: 100%; width: 100%;
height: 77px; height: 77px;
background: url('../../static/images/safety/header.png') no-repeat left 12px; background: url('../static/images/safety/header.png') no-repeat left 12px;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
.loge{ .loge{
...@@ -37,7 +37,7 @@ export default { ...@@ -37,7 +37,7 @@ export default {
width: 377px; width: 377px;
height: 76px; height: 76px;
margin-left: 16px; margin-left: 16px;
background: url('../../static/images/safety/loge.png') no-repeat left bottom; background: url('../static/images/safety/loge.png') no-repeat left bottom;
} }
} }
} }
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
</template> </template>
<script> <script>
import Tab from 'components/Tab' import Tab from '../components/Tab'
export default { export default {
data () { data () {
...@@ -28,7 +28,7 @@ export default { ...@@ -28,7 +28,7 @@ export default {
width: 1920px; width: 1920px;
height: 1080px; height: 1080px;
overflow: hidden; overflow: hidden;
background: url('../../static/images/situation/bg.png') no-repeat left top; background: url('../static/images/situation/bg.png') no-repeat left top;
> img { > img {
display: block; display: block;
......
<template> <template>
<div class="sixth-page"> <div class="sixth-page">
<!-- 身心健康 --> <!-- 身心健康 -->
<img class="left-top" @click="healthy" src="../../static/images/sixthForm/btn.png" alt=""> <img class="left-top" @click="healthy" src="../static/images/sixthForm/btn.png" alt="">
<!-- 学业分析 --> <!-- 学业分析 -->
<img class="left-bottom" @click="study" src="../../static/images/sixthForm/btn.png" alt=""> <img class="left-bottom" @click="study" src="../static/images/sixthForm/btn.png" alt="">
<!-- 搜索 --> <!-- 搜索 -->
<div class="research"> <div class="research">
<div class="select-item"> <div class="select-item">
...@@ -66,12 +66,12 @@ ...@@ -66,12 +66,12 @@
</div> </div>
</template> </template>
<script> <script>
import SelectList from '@/components/SelectList.vue' import SelectList from '@widgets/select/SelectList.vue'
import { swiper, swiperSlide } from 'vue-awesome-swiper' import { swiper, swiperSlide } from 'vue-awesome-swiper'
import 'swiper/dist/css/swiper.css' import 'swiper/dist/css/swiper.css'
import active1 from '../../static/images/sixthForm/1.png' import active1 from '../static/images/sixthForm/1.png'
import active2 from '../../static/images/sixthForm/2.png' import active2 from '../static/images/sixthForm/2.png'
import active3 from '../../static/images/sixthForm/3.png' import active3 from '../static/images/sixthForm/3.png'
export default { export default {
components: { components: {
swiper, swiper,
...@@ -124,9 +124,9 @@ export default { ...@@ -124,9 +124,9 @@ export default {
visible: false, visible: false,
currIndex: 999, currIndex: 999,
pics: [ pics: [
require('../../static/images/sixthForm/healthy.png'), require('../static/images/sixthForm/healthy.png'),
require('../../static/images/sixthForm/study.png'), require('../static/images/sixthForm/study.png'),
require('../../static/images/sixthForm/integration.png') require('../static/images/sixthForm/integration.png')
], ],
activeImgs: [active1, active2, active3], activeImgs: [active1, active2, active3],
swiperOption: { swiperOption: {
...@@ -248,7 +248,7 @@ export default { ...@@ -248,7 +248,7 @@ export default {
} }
</style> </style>
<style lang="less" scoped> <style lang="less" scoped>
@imagePath: "../../static/images/sixthForm/"; @imagePath: "../static/images/sixthForm/";
.sixth-page{ .sixth-page{
width: 1920px; width: 1920px;
height: 1080px; height: 1080px;
......
module.exports = {
plugins: [
require('autoprefixer')({
overrideBrowserslist: [
'defaults',
'last 2 versions',
'not ie < 11',
'>1%',
'ios 7'
]
})
]
}
import mixins from '../mixins' import mixins from '@plugins/mixins'
// Vue插件(Vue plugin)
import ContentContainer from 'components/ContentContainer'
// 头部标题
import Header from 'components/Header'
// 弹框 // 弹框
import BulletFrame from 'components/BulletFrame' import BulletFrame from '../../components/BulletFrame'
// 返回首页 // 返回首页
import PageBack from 'components/PageBack' import PageBack from '../../components/PageBack'
const UsePlugin = {} const UsePlugin = {}
...@@ -19,10 +15,6 @@ const UsePlugin = {} ...@@ -19,10 +15,6 @@ const UsePlugin = {}
*/ */
UsePlugin.install = function (Vue, options = {}) { UsePlugin.install = function (Vue, options = {}) {
Vue.mixin(mixins) Vue.mixin(mixins)
// 内容容器
Vue.component('content-container', ContentContainer)
// 页面头部标题
Vue.component('page-header', Header)
// 弹框 // 弹框
Vue.component('bullet-frame', BulletFrame) Vue.component('bullet-frame', BulletFrame)
// 返回首页 // 返回首页
......
// 导入页面名称 // 导入页面名称
import Index from '@/pages/index.vue' import Index from '../pages/index.vue'
// 菊宝成长记 // 菊宝成长记
import growthRecord from '@/pages/growthRecord.vue' import growthRecord from '../pages/growthRecord.vue'
// 初中教学课程 // 初中教学课程
import safety from '@/pages/safety.vue' import safety from '../pages/safety.vue'
// 小学教学课程 // 小学教学课程
import primary from '@/pages/primary.vue' import primary from '../pages/primary.vue'
// 初中教学课程 // 初中教学课程
import junior from '@/pages/junior.vue' import junior from '../pages/junior.vue'
// 三年级菊宝 // 三年级菊宝
import class3 from '@/pages/class3.vue' import class3 from '../pages/class3.vue'
// 三年级菊宝个人 // 三年级菊宝个人
import student from '@/pages/class3-student.vue' import student from '../pages/class3-student.vue'
// 六年级菊园学子 // 六年级菊园学子
import sixthForm from '@/pages/sixthFormStudent.vue' import sixthForm from '../pages/sixthFormStudent.vue'
import situation from '@/pages/situation.vue' import situation from '../pages/situation.vue'
// 教师发展 // 教师发展
import progress from '@/pages/progress.vue' import progress from '../pages/progress.vue'
import growthPer from '@/pages/growth.vue' import growthPer from '../pages/growth.vue'
export default [ export default [
{ {
path: '/', path: '/',
......
Subproject commit 338eca5be107e01d0b08506e856363131155d393
<template>
<div
class="content-container"
:style="{ width: width, height: height }"
>
<div class="content-main">
<slot></slot>
</div>
</div>
</template>
<script>
export default {
name: 'ContentContainer',
props: {
layout: {
type: Object,
default () {
return {}
}
}
},
data () {
return {
width: 433,
height: 165
}
},
created () {
const { width = '', height = '' } = this.layout
if (width && height) {
this.width = width + 'px'
this.height = height + 'px'
}
}
}
</script>
<style lang="less">
@width: 7px;
@height: 8px;
.content-container {
position: relative;
width: 100%;
height: 100%;
margin-right: auto;
margin-left: auto;
border: 1px solid #1a4670;
&:before, &:after {
content: "";
position: absolute;
width: @width;
height: @height;
right: -1px;
background-repeat: no-repeat;
background-position: 0 0;
}
&:before {
top: -1px;
right: -1px;
background-image: url('./images/angle-top-right.png');
}
&:after {
right: -1px;
bottom: -1px;
background-image: url('./images/angle-bottom-right.png');
}
.content-main {
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
&:before, &:after {
content: "";
position: absolute;
width: @width;
height: @height;
left: -1px;
background-repeat: no-repeat;
background-position: 0 0;
}
&:before {
top: -1px;
background-image: url('./images/angle-top-left.png');
}
&:after {
bottom: -1px;
background-image: url('./images/angle-bottom-left.png');
}
}
}
</style>
<template>
<header id="header">
<div class="logo">
<!-- <img src="./images/logo.png" alt="科艺logo"><span class="logo-desc">数字化管理平台</span> -->
</div>
<h2 class="title"><span>{{ currPageTitle }}</span></h2>
<div class="date">
<span class="curr-date">{{ fullDate || '' }}</span>
<span class="curr-times">{{ fullTime || '' }}</span>
</div>
</header>
</template>
<script>
import utils from 'utils'
let timerId = null
export default {
data () {
return {
currPageTitle: '',
fullDate: '',
fullTime: ''
}
},
watch: {
'$route' (oldVal = {}, newVal = {}) {
if (oldVal.path !== newVal.path) {
this.getCurrRoute()
}
}
},
created () {
window.vm = this
this.getSysTime()
this.getCurrRoute()
},
beforeDestroy () {
clearTimeout(timerId)
timerId = null
},
methods: {
getCurrRoute () {
const { meta = {} } = this.$router.currentRoute
this.currPageTitle = meta.title || ''
},
getSysTime () {
const that = this
try {
timerId = setTimeout(function getTimer () {
const { fullDate = '', fullTime = '' } = utils.getCurrTime('/') || {}
that.fullDate = fullDate
that.fullTime = fullTime
timerId = setTimeout(getTimer, 1000)
}, 1000)
} catch (error) {
console.log('getSysTime-error > ', error)
}
}
}
}
</script>
<style lang="less" scoped>
#header {
display: flex;
align-items: center;
width: 100%;
height: @pageHeaderHeight;
padding-right: 35px;
padding-left: 25px;
}
.logo {
padding-top: 12px;
> img {
vertical-align: -5px;
}
.logo-desc {
margin-left: 24px;
font-size: 18px;
font-family: Source Han Sans CN;
font-weight: 400;
color: #fff;
}
}
.title {
flex: 1;
height: 100%;
line-height: @pageHeaderHeight + 4;
white-space: nowrap;
text-align: center;
// background: url('./images/header-bg.png') no-repeat center top;
> span {
font-size: 34px;
font-family: Adobe Heiti Std;
font-weight: bold;
color: #fff;
background: linear-gradient(0deg, #FFFFFF 0%, #FFFFFF 100%);
background-clip: text;
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}
}
.date {
width: 205px;
padding-top: 30px;
color: #fff;
> span {
font-size: 18px;
font-family: 'CenturyGothic';
}
.curr-times {
margin-left: 8px;
font-size: 24px;
font-weight: bold;
}
}
</style>>
<template>
<div class="select-container">
<!-- 当前选择的内容 或 默认占位符 -->
<div class="select-title" @click="toggleSelectList">
{{ currSelect.name || title }}
</div>
<!-- 下拉选择列表 -->
<ul
class="select-list"
@mouseover="selectMouseOver"
@mouseleave="selectMouseLeave"
v-show="showSelect"
>
<li
v-for="(item, index) in list"
:key="index"
@click.stop="selectItem(item)"
>
{{ item.name }}
</li>
</ul>
</div>
</template>
<script>
let timer = null
export default {
name: 'SelectList',
data () {
return {
showSelect: false,
currSelect: {} // 当前选择项内容
}
},
props: {
// 当前选择组件标题
title: {
type: String,
default: ''
},
// 待选择列表
list: {
type: Array,
default () {
return []
}
}
},
methods: {
/**
* @method toggleSelectList 切换显示/隐藏下拉列表
*/
toggleSelectList () {
this.showSelect = !this.showSelect
this.selectMouseLeave(3000)
},
/**
* @method selectMouseOver 下拉选择框鼠标移入事件
*/
selectMouseOver () {
clearTimeout(timer)
timer = null
},
/**
* @method selectMouseLeave 下拉选择框鼠标移出事件
*/
selectMouseLeave (interval = 1000) {
timer = setTimeout(() => {
if (this.showSelect === true) {
this.showSelect = false
}
}, interval)
},
/**
* @method selectItem 选择当前项
* @param {Object} item 当前选择项数据
*/
selectItem (item = {}) {
this.showSelect = false
this.currSelect = item
this.$emit('input', item)
}
}
}
</script>
<style lang="less">
.select-container {
width: 100%;
height: 100%;
}
.select-title {
position: relative;
padding-right: 10px;
padding-left: 10px;
line-height: 30px;
font-size: 16px;
font-family: Microsoft YaHei;
font-weight: 400;
color: #7AC6FA;
background-color: rgba(7, 32, 65, 0.3);
border: 1px solid rgba(73, 133, 217, .6);
cursor: pointer;
&:after {
content: "";
position: absolute;
top: 10px;
right: 10px;
width: 0;
height: 0;
border: 9px solid transparent;
border-top-color: #6BA6F8;
}
}
// 下拉选择列表
.select-list {
position: absolute;
right: 0;
left: 0;
z-index: 10;
// height: 122px;
overflow-x: hidden;
overflow-y: auto;
border: 1px solid rgba(73, 133, 217, 0.6);
background-color:#90c0e7;
box-sizing: border-box;
&::-webkit-scrollbar {
-webkit-appearance: none;
width: 4px;
height: 6px;
}
&::-webkit-scrollbar-thumb {
border-radius: 5px;
background-color: rgba(29, 189, 255, .8);
}
> li {
height: 30px;
line-height: 30px;
padding-right: 10px;
padding-left: 10px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
cursor: pointer;
&:hover {
background-color: rgba(73, 133, 217, .5);
}
}
}
</style>
export default {
data () {
return {}
},
created () {
window.vm = this
},
beforeDestroy () {}
}
export default {
data () {
return {}
},
watch: {
option: {
handler (val, oldVal) {
if (val) {
this.initComponents && this.initComponents()
}
},
deep: true
}
},
created () {
window.vm = this
},
methods: {}
}
This source diff could not be displayed because it is too large. You can view the blob instead.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment