From 925be12c604e55c1434d6c0c91bcc8bfbc6a51cc Mon Sep 17 00:00:00 2001 From: zhangyanpeng <bob.zhang@highdatas.com> Date: 星期日, 19 一月 2020 12:58:11 +0800 Subject: [PATCH] 新建任务 --- package-lock.json | 31 +++++ public/index.html | 2 .eslintrc.js | 2 package.json | 1 src/views/Home.vue | 142 ++++++++++++++-------- src/router/index.ts | 101 +++++++++++++--- src/App.vue | 9 src/main.ts | 26 ++++ 8 files changed, 235 insertions(+), 79 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index 26853b5..ec339d1 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -3,7 +3,7 @@ env: { node: true }, - extends: ["plugin:vue/essential", "@vue/prettier", "@vue/typescript"], + extends: ["plugin:vue/essential", "@vue/typescript"], rules: { "no-console": process.env.NODE_ENV === "production" ? "error" : "off", "no-debugger": process.env.NODE_ENV === "production" ? "error" : "off" diff --git a/package-lock.json b/package-lock.json index 26e4e05..a02fcf0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2211,6 +2211,37 @@ "integrity": "sha1-fjPY99RJs/ZzzXLeuavcVS2+Uo4=", "dev": true }, + "axios": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.19.1.tgz", + "integrity": "sha512-Yl+7nfreYKaLRvAvjNPkvfjnQHJM1yLBY3zhqAwcJSwR/6ETkanUgylgtIvkvz0xJ+p/vZuNw8X7Hnb7Whsbpw==", + "requires": { + "follow-redirects": "1.5.10" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "requires": { + "ms": "2.0.0" + } + }, + "follow-redirects": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz", + "integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==", + "requires": { + "debug": "=3.1.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, "babel-code-frame": { "version": "6.26.0", "resolved": "https://registry.npm.taobao.org/babel-code-frame/download/babel-code-frame-6.26.0.tgz", diff --git a/package.json b/package.json index a02a1bd..9921ea6 100644 --- a/package.json +++ b/package.json @@ -8,6 +8,7 @@ "lint": "vue-cli-service lint" }, "dependencies": { + "axios": "^0.19.1", "core-js": "^3.4.4", "element-ui": "^2.13.0", "register-service-worker": "^1.6.2", diff --git a/public/index.html b/public/index.html index 558c9fd..d13c382 100644 --- a/public/index.html +++ b/public/index.html @@ -7,7 +7,7 @@ <link rel="icon" href="<%= BASE_URL %>favicon.ico"> <title>srs</title> </head> - <body> + <body style="margin: 0; padding: 0;"> <noscript> <strong>We're sorry but srs doesn't work properly without JavaScript enabled. Please enable it to continue.</strong> </noscript> diff --git a/src/App.vue b/src/App.vue index 2e363d0..c825eb6 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,17 +1,16 @@ <template> <div id="app"> - - <home /> + <router-view name="app"></router-view> </div> </template> <script> - import Home from "./views/Home.vue"; +// import Home from "./views/Home.vue"; export default { name :"app", - components:{ + /* components:{ Home - } + } */ }; </script> <style lang="stylus"> diff --git a/src/main.ts b/src/main.ts index b17fe10..29ddd60 100644 --- a/src/main.ts +++ b/src/main.ts @@ -5,13 +5,39 @@ import store from "./store"; import ElementUI from "element-ui"; import "element-ui/lib/theme-chalk/index.css"; +import Axios from 'axios'; + Vue.use(ElementUI); Vue.config.productionTip = false; +Vue.prototype.$axios = Axios; +Axios.defaults.baseURL = '/api'; +Axios.defaults.headers.post['Content-Type'] = 'application/json'; new Vue({ router, store, render: h => h(App) }).$mount("#app"); + +//鏃ユ湡鏍煎紡鍖� +Date.prototype.Format = function(fmt){ + var o = { + "M+": this.getMonth() + 1, + "d+": this.getDate(), + "H+": this.getHours(), + "m+": this.getMinutes(), + "s+": this.getSeconds(), + "S+": this.getMilliseconds() + }; + if(/(y+)/.test(fmt)){ + fmt=fmt.replace(RegExp.$1,(this.getFullYear()+"").substr(4-RegExp.$1.length)); + } + for(var k in o){ + if (new RegExp("(" + k +")").test(fmt)){ + fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(String(o[k]).length))); + } + } + return fmt; +}; diff --git a/src/router/index.ts b/src/router/index.ts index 3f25ca9..8e20b2c 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -1,31 +1,94 @@ import Vue from "vue"; import VueRouter from "vue-router"; +import login from "../views/login.vue"; import Home from "../views/Home.vue"; import Mine from "../views/Mine.vue"; import Project from "../views/Project.vue"; +import Overview from "../views/Overview.vue"; +import calendarTask from "../views/calendarTask.vue"; Vue.use(VueRouter); const routes = [ - - { - path: "/mine", - name: "mine", - component:Mine - },{ - path: "/project", - name: "project", - component:Project - }, - { - path: "/about", - name: "about", - // route level code-splitting - // this generates a separate chunk (about.[hash].js) for this route - // which is lazy-loaded when the route is visited. - component: () => - import(/* webpackChunkName: "about" */ "../views/About.vue") - } + { + path: "/login", + name: "login", + components:{ + app: login + } + }, + { + path: "/", + name: "Home", + components:{ + app: Home + }, + children: [ + { + path: "mine", + name: "mine", + components:{ + home: Mine + } + },{ + path: "project", + name: "project", + components:{ + home: Project + } + }, + { + path: "Overview", + name: "Overview", + components:{ + home: Overview + } + }, + { + path: "calendarTask", + name: "calendarTask", + components:{ + home: calendarTask + } + }, + { + path: "project2", + name: "project2", + components:{ + home: Project + } + }, + { + path: "project3", + name: "project3", + components:{ + home: Project + } + }, + { + path: "project4", + name: "project4", + components:{ + home: Project + } + }, + { + path: "project5", + name: "project5", + components:{ + home: Project + } + }, + { + path: "project6", + name: "project6", + components:{ + home: Project + } + } + ] + }, + ]; const router = new VueRouter({ diff --git a/src/views/Home.vue b/src/views/Home.vue index 177f1f1..625d1eb 100644 --- a/src/views/Home.vue +++ b/src/views/Home.vue @@ -1,83 +1,119 @@ <template> <div style="100%;height: 100%;margin: 0;"> - <el-container style="height: 100%; width: 100%; border: 1px solid #eee"> - + <el-container style="height: 100vh; box-sizing: border-box;"> <el-aside width="200px" style="background-color: rgb(238, 241, 246); "> - <div style="width: 100%;height: 60px;"></div> - <el-menu default-active="1" @select="handleSelect"> - <el-menu-item index="0"> - <i class="el-icon-menu"></i> - <span slot="title">棣栭〉</span> - </el-menu-item> + <div style="width: 100%;height: 60px;"></div> + <el-menu + :default-openeds="defaultActive" + class="el-menu-vertical-demo" + :unique-opened="false" + @select ="menuSelect" + @open ="menuSelect" + @close ="menuSelect" + active-text-color="#409EFF" + > + <navigationItem v-for="menu in navList" :key="menu.path" :item="menu" /> + </el-menu> - - <el-submenu index="1"> - <template slot="title"> - <i class="el-icon-menu"></i> - <span>椤圭洰绠$悊</span> - </template> - <el-menu-item-group> - <el-menu-item index="1-1">淇℃伅骞垮満</el-menu-item> - <el-menu-item index="1-2">椤圭洰鎬昏</el-menu-item> - <el-menu-item index="1-3">椤圭洰鍒嗘瀽</el-menu-item> - <el-menu-item index="1-4">褰掓。鎶ュ憡</el-menu-item> - </el-menu-item-group> - - </el-submenu> - <el-menu-item index="2"> - <i class="el-icon-menu"></i> - <span slot="title">浠诲姟绠$悊</span> - </el-menu-item> - - - </el-menu> + <!-- <el-menu default-active="1" @select="handleSelect"> + <el-menu-item index="0"> + <i class="el-icon-menu"></i> + <span slot="title">棣栭〉</span> + </el-menu-item> + <el-submenu index="1"> + <template slot="title"> + <i class="el-icon-menu"></i> + <span>椤圭洰绠$悊</span> + </template> + <el-menu-item-group> + <el-menu-item index="1-1">淇℃伅骞垮満</el-menu-item> + <el-menu-item index="1-2">椤圭洰鎬昏</el-menu-item> + <el-menu-item index="1-3">椤圭洰鍒嗘瀽</el-menu-item> + <el-menu-item index="1-4">褰掓。鎶ュ憡</el-menu-item> + </el-menu-item-group> + </el-submenu> + <el-menu-item index="2"> + <i class="el-icon-menu"></i> + <span slot="title">浠诲姟绠$悊</span> + </el-menu-item> + </el-menu> --> </el-aside> <el-container> - - <el-header style="text-align: right; font-size: 15px;padding-right: 40px;"> - <i class="el-icon-user-solid"></i> - <span>admin</span> + <i class="el-icon-user-solid"></i> + <span>admin</span> </el-header> - <el-main> - <router-view></router-view> + <el-main style="background-color: #f7f8f9;"> + <router-view name="home"></router-view> </el-main> </el-container> </el-container> </div> - </template> - - <script> - +import navigationItem from '../components/menu/navigationItem.vue' export default { + components: { + navigationItem + }, data() { return { breadcrumbItems:[], + defaultActive: [], + navList:[ + { + title:"棣栭〉", path:"mine",children:[] + }, + { + title:"椤圭洰绠$悊", path:"0_1",children:[ + {title:"淇℃伅骞垮満", path:"project2",children:[]}, + {title:"椤圭洰鎬昏", path:"Overview",children:[]}, + {title:"椤圭洰鍒嗘瀽", path:"project3",children:[]}, + {title:"褰掓。鎶ュ憡", path:"project4",children:[]}, + ] + }, + { + title:"浠诲姟绠$悊", path:"0_2",children:[ + {title:"浠诲姟鍒楄〃", path:"calendarTask",children:[]}, + ] + } + ], } }, + created() { + let userId_ = localStorage.getItem('userId'); + if (!userId_) { + this.$router.push('/login'); + } + }, + methods: { - handleSelect(key, keyPath){ - switch(key){ - case '0': + menuSelect(index, a){ + let isPage = index.substring(0,2); + if (isPage != "0_") { + this.$router.push('/'+ index); + } + }, + + /* handleSelect(key, keyPath){ + switch(key){ + case '0': this.$router.push('/mine'); this.breadcrumbItems = ["棣栭〉"]; - break; - case '2': - this.$router.push('/project') - this.breadcrumbItems = ["棣栭〉"]; - break; - case '3': - this.$router.push('/Page3') - - break; - } - }, + break; + case '2': + this.$router.push('/project') + this.breadcrumbItems = ["棣栭〉"]; + break; + case '3': + this.$router.push('/Page3') + break; + } + }, */ } }; -- Gitblit v1.8.0