Commit ff491578 authored by wangxiaoming's avatar wangxiaoming

merge

parents d57349b6 a6b06e61
node_modules node_modules
dist dist
.idea
...@@ -9804,9 +9804,9 @@ ...@@ -9804,9 +9804,9 @@
} }
}, },
"lodash": { "lodash": {
"version": "4.17.11", "version": "4.17.19",
"resolved": "http://registry.npm.taobao.org/lodash/download/lodash-4.17.11.tgz", "resolved": "https://registry.npm.taobao.org/lodash/download/lodash-4.17.19.tgz?cache=0&sync_timestamp=1594226832494&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.19.tgz",
"integrity": "sha1-s56mIp72B+zYniyN8SU2iRysm40=", "integrity": "sha1-5I3e2+MLMyF4PFtDAfvTU7weSks=",
"dev": true "dev": true
}, },
"lodash.defaultsdeep": { "lodash.defaultsdeep": {
......
...@@ -37,6 +37,7 @@ ...@@ -37,6 +37,7 @@
"eslint-plugin-vue": "^5.0.0", "eslint-plugin-vue": "^5.0.0",
"less": "^3.0.4", "less": "^3.0.4",
"less-loader": "^4.1.0", "less-loader": "^4.1.0",
"lodash": "^4.17.19",
"script-loader": "^0.7.2", "script-loader": "^0.7.2",
"vue-template-compiler": "^2.6.10" "vue-template-compiler": "^2.6.10"
}, },
......
<template> <template>
<div id="app"> <div id="app">
<router-view />
<router-view/>
</div> </div>
</template> </template>
<style lang="less">
<style lang="less">
</style> </style>
...@@ -10,4 +10,4 @@ const photoAddress = 'http://106.52.130.113:9088/'; ...@@ -10,4 +10,4 @@ const photoAddress = 'http://106.52.130.113:9088/';
const imgAddress = 'http://152.136.233.116:8083/roadlinks/'; const imgAddress = 'http://152.136.233.116:8083/roadlinks/';
const imgApi = 'http://152.136.233.116:8083/roadlinks/getCapitalImg?imgName='; const imgApi = 'http://152.136.233.116:8083/roadlinks/getCapitalImg?imgName=';
export { address,photoAddress,imgApi,imgAddress }; export { address, photoAddress, imgApi, imgAddress };
export default [ import { CapitalClass1,CapitalClass2,Capital } from "./entity"
{
captials = new CapitalClass1();
cities = [{
cityInfo: 'TianJin', cityInfo: 'TianJin',
cityName: '天津', cityName: '天津',
status: 0, status: 0,
...@@ -56,3 +59,5 @@ export default [ ...@@ -56,3 +59,5 @@ export default [
lng: 113.42, lng: 113.42,
}, },
] ]
export { cities,captials }
export class CapitalClass1 {
constructor() {
this.Type = '';
this.Count = 0;
this.Class2List = [];
}
}
export class CapitalClass2 {
constructor() {
this.SubType = '';
this.Count = 0;
this.CapitalList = [];
}
}
export class Capital {
constructor() {
this.Name = '';
this.Longitude = 0.0;
this.Latitude = 0.0;
};
}
...@@ -4,6 +4,7 @@ import Cookies from 'js-cookie'; ...@@ -4,6 +4,7 @@ import Cookies from 'js-cookie';
import ElementUI from 'element-ui'; import ElementUI from 'element-ui';
import BaiduMap from 'vue-baidu-map'; import BaiduMap from 'vue-baidu-map';
import 'element-ui/lib/theme-chalk/index.css'; import 'element-ui/lib/theme-chalk/index.css';
import _ from 'lodash';
import App from './App.vue'; import App from './App.vue';
import router from './router'; import router from './router';
import store from './store'; import store from './store';
...@@ -12,10 +13,11 @@ Vue.use(ElementUI); ...@@ -12,10 +13,11 @@ Vue.use(ElementUI);
Vue.use(BaiduMap, { Vue.use(BaiduMap, {
ak: 'AZzMTSKLP4lVHphRauTBdINZUFnpWTcu', ak: 'AZzMTSKLP4lVHphRauTBdINZUFnpWTcu',
}); });
Object.defineProperty(Vue.prototype, '$_', { value: _ });
Vue.config.productionTip = false; Vue.config.productionTip = false;
router.beforeEach((to, from, next) => { router.beforeEach((to, from, next) => {
window.scrollTo(0,0); window.scrollTo(0, 0);
if (to.matched.some(record => record.meta.requireAuth)) { if (to.matched.some(record => record.meta.requireAuth)) {
// 判断该路由是否需要登录权限 // 判断该路由是否需要登录权限
if (Cookies.get('id')) { // 判断当前的token是否存在 if (Cookies.get('id')) { // 判断当前的token是否存在
...@@ -32,8 +34,9 @@ router.beforeEach((to, from, next) => { ...@@ -32,8 +34,9 @@ router.beforeEach((to, from, next) => {
next(); next();
} }
}); });
router.afterEach((to,from,next) => {
window.scrollTo(0,0); router.afterEach((to, from, next) => {
window.scrollTo(0, 0);
}); });
new Vue({ new Vue({
router, router,
......
This diff is collapsed.
<template> <template>
<div class="home"> <div class="home">
<el-container> <el-container>
<el-aside width="200px"> <el-aside width="200px">
<el-menu <el-menu
:default-active="onRoutes" :default-active="onRoutes"
active-text-color="#41afdd" active-text-color="#41afdd"
background-color="#323346" background-color="#323346"
class="el-menu-vertical-demo"> class="el-menu-vertical-demo"
<div class="logo"><img src="../assets/logo_new.png" alt=""></div> >
<div class="logo">
<img src="../assets/logo_new.png" alt />
</div>
<el-submenu index="1"> <el-submenu index="1">
<span slot="title" class="submenu_parent">道路资产管理</span> <span slot="title" class="submenu_parent">道路资产管理</span>
<el-menu-item index="1-1" @click="goTo('/overview')" style="background:#252639 !important"> <el-menu-item
index="1-1"
@click="goTo('/overview')"
style="background:#252639 !important"
>
<span slot="title" style="font-size: 16px">资产汇总</span> <span slot="title" style="font-size: 16px">资产汇总</span>
</el-menu-item> </el-menu-item>
<el-menu-item index="1-2" @click="goTo('/detail')" style="background:#252639 !important"> <el-menu-item
index="1-2"
@click="goTo('/detail')"
style="background:#252639 !important"
>
<span slot="title" style="font-size: 16px">资产明细</span> <span slot="title" style="font-size: 16px">资产明细</span>
</el-menu-item> </el-menu-item>
</el-submenu> </el-submenu>
...@@ -25,10 +33,18 @@ ...@@ -25,10 +33,18 @@
</el-menu-item> </el-menu-item>
<el-submenu index="3"> <el-submenu index="3">
<span slot="title" class="submenu_parent">巡检结果管理</span> <span slot="title" class="submenu_parent">巡检结果管理</span>
<el-menu-item index="3-1" @click="goTo('/result')" style="background:#252639 !important"> <el-menu-item
index="3-1"
@click="goTo('/result')"
style="background:#252639 !important"
>
<span slot="title" style="font-size: 16px">巡检结果查看</span> <span slot="title" style="font-size: 16px">巡检结果查看</span>
</el-menu-item> </el-menu-item>
<el-menu-item index="3-2" @click="goTo('/resultDetail')" style="background:#252639 !important"> <el-menu-item
index="3-2"
@click="goTo('/resultDetail')"
style="background:#252639 !important"
>
<span slot="title" style="font-size: 16px">巡检结果明细</span> <span slot="title" style="font-size: 16px">巡检结果明细</span>
</el-menu-item> </el-menu-item>
</el-submenu> </el-submenu>
...@@ -42,24 +58,96 @@ ...@@ -42,24 +58,96 @@
<el-button type="text" class="exitSys" @click="esc">退出</el-button> <el-button type="text" class="exitSys" @click="esc">退出</el-button>
</el-header> </el-header>
<el-main ref="el-main"> <el-main ref="el-main">
<router-view/> <router-view />
</el-main> </el-main>
</el-container> </el-container>
</el-container> </el-container>
</div> </div>
</template> </template>
<script>
// @ is an alias to /src
// import HelloWorld from '@/components/HelloWorld.vue';
import Cookies from "js-cookie";
export default {
name: "home",
data() {
return {
myId: "",
user: {
name: "张三",
},
};
},
components: {
// HelloWorld,
},
created() {
const myId = Cookies.get("id");
this.myId = myId;
const username = Cookies.get("username");
// console.log(this.$route.params.username);
this.user.name = username;
},
mounted() {
if (this.$route.path.replace("/", "") == "") {
this.goTo("/overview");
}
},
computed: {
onRoutes() {
// this.$route.path
// debugger
if (this.$route.path.replace("/", "") == "overview") {
return "1-1";
} else if (this.$route.path.replace("/", "") == "detail") {
return "1-2";
} else if (this.$route.path.replace("/", "") == "task") {
return "2";
} else if (this.$route.path.replace("/", "") == "result") {
return "3-1";
} else if (this.$route.path.replace("/", "") == "resultDetail") {
return "3-2";
} else {
return "1-1";
}
},
},
methods: {
// handleOpen(key, keyPath) {
// console.log(key, keyPath);
// },
// handleClose(key, keyPath) {
// console.log(key, keyPath);
// },
// 退出
esc() {
// alert(1);
Cookies.remove("id");
this.$router.push({
name: "login",
});
},
goTo(path) {
this.$router.replace(path);
},
},
};
</script>
<style lang="less" scoped> <style lang="less" scoped>
.logo{ .logo {
line-height: 50px; line-height: 50px;
} }
.exitSys{ .exitSys {
color: black; color: black;
background: 0 0; background: 0 0;
padding-left: 0; padding-left: 0;
padding-right: 0; padding-right: 0;
font-size: 16px; font-size: 16px;
} }
.el-container{ .el-container {
height: 100vh; height: 100vh;
} }
.el-header { .el-header {
...@@ -67,153 +155,76 @@ ...@@ -67,153 +155,76 @@
color: #333; color: #333;
text-align: right; text-align: right;
line-height: 60px; line-height: 60px;
.header-title{ .header-title {
font-size: 20px; font-size: 20px;
position: absolute; position: absolute;
} }
span{ span {
margin-right: 15px; margin-right: 15px;
font-size: 16px; font-size: 16px;
} }
} }
.el-aside { .el-aside {
// background-color: #4ca29d; // background-color: #4ca29d;
color: #333; color: #333;
text-align: center; text-align: center;
line-height: 200px; line-height: 200px;
} }
.el-main { .el-main {
// background-color: #E9EEF3; // background-color: #E9EEF3;
color: #333; color: #333;
width: calc(100vw - 200px); width: calc(100vw - 200px);
// line-height: 160px; // line-height: 160px;
} }
body > .el-container { body > .el-container {
margin-bottom: 40px; margin-bottom: 40px;
} }
.el-menu{ .el-menu {
height: 100%; height: 100%;
padding-top: 40%; padding-top: 40%;
box-sizing: border-box; box-sizing: border-box;
} }
.el-menu-item:focus, .el-menu-item:hover{ .el-menu-item:focus,
.el-menu-item:hover {
background-color: #151628; background-color: #151628;
} }
.el-submenu__title:focus, .el-submenu__title:hover{ .el-submenu__title:focus,
.el-submenu__title:hover {
background-color: #151628 !important; background-color: #151628 !important;
} }
.el-menu-item{ .el-menu-item {
// color: black; // color: black;
font-size:18px; font-size: 18px;
} }
.el-menu-item.is-active[data-v-fae5bece] { .el-menu-item.is-active[data-v-fae5bece] {
background-color: #151628 !important; background-color: #151628 !important;
} }
.el-submenu{ .el-submenu {
.submenu_parent{ .submenu_parent {
color: #80a0b9; color: #80a0b9;
} }
span{ span {
font-size:18px; font-size: 18px;
}
} }
.el-menu-item.is-active { }
.el-menu-item.is-active {
background-color: #151628 !important; background-color: #151628 !important;
span{ span {
color: #41afdd !important; color: #41afdd !important;
} }
} }
.el-menu[data-v-fae5bece] { .el-menu[data-v-fae5bece] {
background-color: #323346; background-color: #323346;
} }
.el-menu-item * { .el-menu-item * {
color: #80a0b9; color: #80a0b9;
} }
.el-submenu__title{ .el-submenu__title {
color:#80a0b9; color: #80a0b9;
} }
.el-menu.el-menu--inline{ .el-menu.el-menu--inline {
background: #323346; background: #323346;
} }
</style> </style>
\ No newline at end of file
<script>
// @ is an alias to /src
// import HelloWorld from '@/components/HelloWorld.vue';
import Cookies from 'js-cookie';
export default {
name: 'home',
data() {
return {
myId: '',
user: {
name: '张三',
},
};
},
components: {
// HelloWorld,
},
created() {
const myId = Cookies.get('id');
this.myId = myId;
const username = Cookies.get('username');
// console.log(this.$route.params.username);
this.user.name = username;
},
mounted() {
if(this.$route.path.replace('/','') == ''){
this.goTo('/overview');
}
},
computed:{
onRoutes(){
// this.$route.path
// debugger
if(this.$route.path.replace('/','')=='overview'){
return '1-1';
}
else if(this.$route.path.replace('/','')=='detail'){
return '1-2'
}
else if(this.$route.path.replace('/','')=='task'){
return '2'
}
else if(this.$route.path.replace('/','')=='result'){
return '3-1'
}
else if(this.$route.path.replace('/','')=='resultDetail'){
return '3-2'
}
else{
return '1-1';
}
},
},
methods: {
// handleOpen(key, keyPath) {
// console.log(key, keyPath);
// },
// handleClose(key, keyPath) {
// console.log(key, keyPath);
// },
// 退出
esc() {
// alert(1);
Cookies.remove('id');
this.$router.push({
name: 'login',
});
},
goTo(path) {
this.$router.replace(path);
},
},
};
</script>
...@@ -3,29 +3,50 @@ ...@@ -3,29 +3,50 @@
<!-- status-icon:是否在输入框中显示校验结果反馈图标 --> <!-- status-icon:是否在输入框中显示校验结果反馈图标 -->
<div class="box"> <div class="box">
<div class="information"> <div class="information">
<h1 class="section-title" data-i18n-text="">登录</h1> <h1 class="section-title" data-i18n-text>登录</h1>
<el-form class="login-form" status-icon :rules="loginRules" <el-form
ref="loginForm" :model="loginForm" label-width="0"> class="login-form"
status-icon
:rules="loginRules"
ref="loginForm"
:model="loginForm"
label-width="0"
>
<el-form-item prop="username"> <el-form-item prop="username">
<el-input <el-input
@keyup.enter.native="handleLogin" @keyup.enter.native="handleLogin"
v-model="loginForm.username" auto-complete="off" placeholder="请输入用户名"> v-model="loginForm.username"
auto-complete="off"
placeholder="请输入用户名"
>
<i slot="prefix" class="elxingmingyonghumingnicheng"></i> <i slot="prefix" class="elxingmingyonghumingnicheng"></i>
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item prop="password"> <el-form-item prop="password">
<el-input <el-input
@keyup.enter.native="handleLogin" @keyup.enter.native="handleLogin"
:type="passwordType" v-model="loginForm.password" auto-complete="off" placeholder="请输入密码"> :type="passwordType"
<i class="el-icon-view el-input__icon" v-model="loginForm.password"
:style="fontstyle" slot="suffix" @click="showPassword"></i> auto-complete="off"
placeholder="请输入密码"
>
<i
class="el-icon-view el-input__icon"
:style="fontstyle"
slot="suffix"
@click="showPassword"
></i>
<i slot="prefix" class="elmima"></i> <i slot="prefix" class="elmima"></i>
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" <el-button
size="small" @click.native.prevent="handleLogin" type="primary"
class="login-submit" name='login'>登录</el-button> size="small"
@click.native.prevent="handleLogin"
class="login-submit"
name="login"
>登录</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
</div> </div>
...@@ -33,57 +54,55 @@ ...@@ -33,57 +54,55 @@
<span @click="register">创建一个账户</span> <span @click="register">创建一个账户</span>
</div> </div>
</div> </div>
</div> </div>
</template> </template>
<script> <script>
import axios from 'axios'; import axios from "axios";
import { Message } from 'element-ui'; import { Message } from "element-ui";
import { constants } from 'fs'; import { constants } from "fs";
import Cookies from 'js-cookie'; import Cookies from "js-cookie";
import { address } from '../config.js'; import { address } from "../config.js";
export default { export default {
name: 'userlogin', name: "userlogin",
data() { data() {
// 用户名自定义验证规则 // 用户名自定义验证规则
return { return {
fontstyle: { fontstyle: {},
},
loginForm: { loginForm: {
username: '', username: "",
password: '', password: "",
verifycode: '', verifycode: "",
}, },
checked: false, checked: false,
identifyCodes: '1234567890', identifyCodes: "1234567890",
identifyCode: '', identifyCode: "",
loginRules: { // 绑定在form表单中的验证规则 loginRules: {
// 绑定在form表单中的验证规则
username: [ username: [
{ required: true, message: '请输入用户名', trigger: 'blur' }, { required: true, message: "请输入用户名", trigger: "blur" },
], ],
password: [ password: [
{ required: true, message: '请输入密码', trigger: 'blur' }, { required: true, message: "请输入密码", trigger: "blur" },
{ min: 6, message: '密码长度最少为6位', trigger: 'blur' }, { min: 6, message: "密码长度最少为6位", trigger: "blur" },
], ],
}, },
passwordType: 'password', passwordType: "password",
}; };
}, },
created() { created() {},
},
mounted() { mounted() {
// 验证码初始化 // 验证码初始化
// console.log(address); // console.log(address);
}, },
computed: { computed: {},
},
props: [], props: [],
methods: { methods: {
// 跳转到home页 // 跳转到home页
goToHome(id, username) { goToHome(id, username) {
this.$router.push({ this.$router.push({
name: 'home', name: "home",
params: { params: {
id, id,
username, username,
...@@ -92,33 +111,35 @@ export default { ...@@ -92,33 +111,35 @@ export default {
}, },
// 创建用户 // 创建用户
register() { register() {
this.$router.push( this.$router.push({ path: "/registered" });
{ path: '/registered' },
);
}, },
// 通过改变input的type使密码可见 // 通过改变input的type使密码可见
showPassword() { showPassword() {
this.fontstyle === '' ? (this.fontstyle = 'color: red') : (this.fontstyle = ''); // 改变密码可见按钮颜色 this.fontstyle === ""
this.passwordType === ''? (this.passwordType = 'password') : (this.passwordType = ''); ? (this.fontstyle = "color: red")
: (this.fontstyle = ""); // 改变密码可见按钮颜色
this.passwordType === ""
? (this.passwordType = "password")
: (this.passwordType = "");
}, },
// 点击登入按钮 // 点击登入按钮
handleLogin() { handleLogin() {
this.$refs.loginForm.validate((valid) => { this.$refs.loginForm.validate((valid) => {
if (valid) { if (valid) {
// 路由跳转到任务页面 // 路由跳转到任务页面
axios.post(address + 'login', { axios
.post(address + "login", {
username: this.loginForm.username, username: this.loginForm.username,
password: this.loginForm.password, password: this.loginForm.password,
}) })
.then((response) => { .then((response) => {
if (response.data.code === 200) { if (response.data.code === 200) {
Cookies.set('id', response.data.data.id); Cookies.set("id", response.data.data.id);
Cookies.set('username', this.loginForm.username); Cookies.set("username", this.loginForm.username);
Message({ Message({
message: `登录${response.data.message}`, message: `登录${response.data.message}`,
type: 'success', type: "success",
duration: '800', duration: "800",
}); });
setTimeout(() => { setTimeout(() => {
this.goToHome(); this.goToHome();
...@@ -126,7 +147,7 @@ export default { ...@@ -126,7 +147,7 @@ export default {
} else { } else {
Message({ Message({
message: response.data.message, message: response.data.message,
type: 'error', type: "error",
}); });
} }
console.log(response.data); console.log(response.data);
...@@ -135,7 +156,7 @@ export default { ...@@ -135,7 +156,7 @@ export default {
console.log(error); console.log(error);
}); });
} else { } else {
console.log('error submit!!'); console.log("error submit!!");
return false; return false;
} }
}); });
...@@ -149,39 +170,39 @@ export default { ...@@ -149,39 +170,39 @@ export default {
// margin: 0; // margin: 0;
// padding: 0; // padding: 0;
// } // }
#nav{ #nav {
width: 100%; width: 100%;
height: 100vh; height: 100vh;
.box{ .box {
position: absolute; position: absolute;
left: 50%; left: 50%;
margin-left: -247px; margin-left: -247px;
top: 45%; top: 45%;
transform: translateY(-50%); transform: translateY(-50%);
}
} }
} #nav {
#nav{ background: url("../assets/img/bglogo.jpeg");
background: url('../assets/img/bglogo.jpeg');
background-size: 100%; background-size: 100%;
} }
.identifybox{ .identifybox {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
margin-top:7px; margin-top: 7px;
} }
.iconstyle{ .iconstyle {
color:#409EFF; color: #409eff;
} }
.information{ .information {
width: 470px; width: 470px;
display: block; display: block;
flex-basis: 0; flex-basis: 0;
flex-grow: 1; flex-grow: 1;
flex-shrink: 1; flex-shrink: 1;
padding: .75rem; padding: 0.75rem;
border-radius: 12px 12px 0 0; border-radius: 12px 12px 0 0;
background: #EEEEEE; background: #eeeeee;
} }
.section-title { .section-title {
border-bottom: 1px solid #ccc; border-bottom: 1px solid #ccc;
...@@ -194,23 +215,24 @@ export default { ...@@ -194,23 +215,24 @@ export default {
font-weight: normal; font-weight: normal;
margin: 12px; margin: 12px;
} }
.elxingmingyonghumingnicheng,.elmima{ .elxingmingyonghumingnicheng,
.elmima {
font-family: "iconfont" !important; font-family: "iconfont" !important;
font-size: 16px; font-size: 16px;
font-style: normal; font-style: normal;
-webkit-font-smoothing: antialiased; -webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale; -moz-osx-font-smoothing: grayscale;
} }
.login-form{ .login-form {
padding: 10px 40px 0 40px; padding: 10px 40px 0 40px;
text-align: center; text-align: center;
} }
.login-submit{ .login-submit {
text-align: center; text-align: center;
padding: 12px 60px; padding: 12px 60px;
background-color: rgb(62, 107, 226); background-color: rgb(62, 107, 226);
} }
.login-submit:hover{ .login-submit:hover {
background-color: rgb(62, 107, 226); background-color: rgb(62, 107, 226);
} }
.register { .register {
...@@ -223,7 +245,7 @@ export default { ...@@ -223,7 +245,7 @@ export default {
border-radius: 0 0 12px 12px; border-radius: 0 0 12px 12px;
text-align: center; text-align: center;
cursor: pointer; cursor: pointer;
span{ span {
// display: block; // display: block;
height: 42px; height: 42px;
line-height: 42px; line-height: 42px;
......
This diff is collapsed.
...@@ -2,12 +2,19 @@ ...@@ -2,12 +2,19 @@
<div class="registered"> <div class="registered">
<div class="wrap"> <div class="wrap">
<div class="has-text-centered signin"> <div class="has-text-centered signin">
<span>已有账户?</span> <i @click="goToLogin">登录</i> <span>已有账户?</span>
<i @click="goToLogin">登录</i>
</div> </div>
<div class="formBody"> <div class="formBody">
<h1 class="section-title" data-i18n-text="">创建用户</h1> <h1 class="section-title" data-i18n-text>创建用户</h1>
<el-form :model="ruleForm2" <el-form
status-icon :rules="rules2" ref="ruleForm2" label-width="100px" class="demo-ruleForm"> :model="ruleForm2"
status-icon
:rules="rules2"
ref="ruleForm2"
label-width="100px"
class="demo-ruleForm"
>
<el-form-item label="用户名" prop="user"> <el-form-item label="用户名" prop="user">
<el-input v-model="ruleForm2.user"></el-input> <el-input v-model="ruleForm2.user"></el-input>
</el-form-item> </el-form-item>
...@@ -24,74 +31,73 @@ ...@@ -24,74 +31,73 @@
<el-button type="primary" @click="submitForm('ruleForm2')" class="newUser">创建用户</el-button> <el-button type="primary" @click="submitForm('ruleForm2')" class="newUser">创建用户</el-button>
<el-button @click="resetForm('ruleForm2')" class="reset">重置</el-button> <el-button @click="resetForm('ruleForm2')" class="reset">重置</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
</div>
</div> </div>
</div> </div>
</div>
</template> </template>
<script> <script>
import axios from 'axios'; import axios from "axios";
import { Message } from 'element-ui'; import { Message } from "element-ui";
import { setTimeout } from 'timers'; import { setTimeout } from "timers";
import { address } from '../config'; import { address } from "../config";
export default { export default {
data() { data() {
const validatePass = (rule, value, callback) => { const validatePass = (rule, value, callback) => {
if (value === '') { if (value === "") {
callback(new Error('请输入密码')); callback(new Error("请输入密码"));
} else { } else {
if (this.ruleForm2.checkPass !== '') { if (this.ruleForm2.checkPass !== "") {
this.$refs.ruleForm2.validateField('checkPass'); this.$refs.ruleForm2.validateField("checkPass");
} }
callback(); callback();
} }
}; };
const validatePass2 = (rule, value, callback) => { const validatePass2 = (rule, value, callback) => {
if (value === '') { if (value === "") {
callback(new Error('请再次输入密码')); callback(new Error("请再次输入密码"));
} else if (value !== this.ruleForm2.pass) { } else if (value !== this.ruleForm2.pass) {
callback(new Error('两次输入密码不一致!')); callback(new Error("两次输入密码不一致!"));
} else { } else {
callback(); callback();
} }
}; };
return { return {
ruleForm2: { ruleForm2: {
pass: '', pass: "",
checkPass: '', checkPass: "",
user: '', user: "",
mailAddress: '', mailAddress: "",
}, },
rules2: { rules2: {
pass: [ pass: [
{ validator: validatePass, trigger: 'blur' }, { validator: validatePass, trigger: "blur" },
{ min: 6, message: '密码长度最少为6位', trigger: 'blur' }, { min: 6, message: "密码长度最少为6位", trigger: "blur" },
], ],
checkPass: [ checkPass: [
{ validator: validatePass2, trigger: 'blur' }, { validator: validatePass2, trigger: "blur" },
{ min: 6, message: '密码长度最少为6位', trigger: 'blur' }, { min: 6, message: "密码长度最少为6位", trigger: "blur" },
],
user: [
{ required: true, message: '请输入用户名', trigger: 'blur' },
], ],
user: [{ required: true, message: "请输入用户名", trigger: "blur" }],
mailAddress: [ mailAddress: [
{ required: true, message: '请填写电子邮箱', trigger: 'blur' }, { required: true, message: "请填写电子邮箱", trigger: "blur" },
], ],
}, },
}; };
}, },
methods: { methods: {
sendEmail() { sendEmail() {
var regEmail = /^[A-Za-z0-9\u4e00-\u9fa5]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/ var regEmail = /^[A-Za-z0-9\u4e00-\u9fa5]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/;
if (this.ruleForm2.mailAddress != '' && !regEmail.test(this.ruleForm2.mailAddress)) { if (
this.ruleForm2.mailAddress != "" &&
!regEmail.test(this.ruleForm2.mailAddress)
) {
this.$message({ this.$message({
message: '邮箱格式不正确', message: "邮箱格式不正确",
type: 'error' type: "error",
}) });
this.ruleForm2.mailAddress = '' this.ruleForm2.mailAddress = "";
} }
}, },
// 创建用户 // 创建用户
...@@ -99,7 +105,8 @@ export default { ...@@ -99,7 +105,8 @@ export default {
this.$refs[formName].validate((valid) => { this.$refs[formName].validate((valid) => {
if (valid) { if (valid) {
console.log(this.ruleForm2.user + this.ruleForm2.pass); console.log(this.ruleForm2.user + this.ruleForm2.pass);
axios.post( address + 'register', { axios
.post(address + "register", {
username: this.ruleForm2.user, username: this.ruleForm2.user,
password: this.ruleForm2.pass, password: this.ruleForm2.pass,
email: this.ruleForm2.mailAddress, email: this.ruleForm2.mailAddress,
...@@ -109,8 +116,8 @@ export default { ...@@ -109,8 +116,8 @@ export default {
if (response.data.code === 200) { if (response.data.code === 200) {
Message({ Message({
message: response.data.data, message: response.data.data,
type: 'success', type: "success",
duration: '500', duration: "500",
}); });
setTimeout(() => { setTimeout(() => {
this.goToLogin(); this.goToLogin();
...@@ -118,7 +125,7 @@ export default { ...@@ -118,7 +125,7 @@ export default {
} else { } else {
Message({ Message({
message: response.data.message, message: response.data.message,
type: 'error', type: "error",
}); });
} }
console.log(response.data); console.log(response.data);
...@@ -127,7 +134,7 @@ export default { ...@@ -127,7 +134,7 @@ export default {
console.log(error); console.log(error);
}); });
} else { } else {
console.log('error submit!!'); console.log("error submit!!");
return false; return false;
} }
}); });
...@@ -138,21 +145,18 @@ export default { ...@@ -138,21 +145,18 @@ export default {
}, },
// 返回登录页面 // 返回登录页面
goToLogin() { goToLogin() {
this.$router.push( this.$router.push({ path: "/login" });
{ path: '/login' },
);
}, },
}, },
}; };
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
.registered {
.registered{
height: 100vh; height: 100vh;
background: url('../assets/img/regist.jpeg'); background: url("../assets/img/regist.jpeg");
background-size: 100% 100%; background-size: 100% 100%;
.wrap{ .wrap {
width: 570px; width: 570px;
position: absolute; position: absolute;
left: 45%; left: 45%;
...@@ -166,15 +170,15 @@ export default { ...@@ -166,15 +170,15 @@ export default {
font-size: 12px; font-size: 12px;
color: #555; color: #555;
border-radius: 12px 12px 0 0; border-radius: 12px 12px 0 0;
i{ i {
color: rgb(62, 107, 226); color: rgb(62, 107, 226);
cursor: pointer; cursor: pointer;
} }
} }
.has-text-centered { .has-text-centered {
text-align: center; text-align: center;
} }
.formBody{ .formBody {
.section-title { .section-title {
border-bottom: 1px solid #ccc; border-bottom: 1px solid #ccc;
font-size: 28px; font-size: 28px;
...@@ -185,18 +189,18 @@ export default { ...@@ -185,18 +189,18 @@ export default {
text-align: center; text-align: center;
font-weight: normal; font-weight: normal;
margin: 12px; margin: 12px;
} }
padding: 10px 40px 40px 40px; padding: 10px 40px 40px 40px;
background: #eee; background: #eee;
border-radius: 0 0 12px 12px; border-radius: 0 0 12px 12px;
.newUser{ .newUser {
padding: 12px 30px; padding: 12px 30px;
background-color: #3e6be2; background-color: #3e6be2;
} }
.reset{ .reset {
padding: 12px 30px; padding: 12px 30px;
} }
} }
} }
} }
</style> </style>
This diff is collapsed.
...@@ -127,7 +127,7 @@ ...@@ -127,7 +127,7 @@
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<el-pagination <!-- <el-pagination
@size-change="handleSizeChange" @size-change="handleSizeChange"
@current-change="handleCurrentChange" @current-change="handleCurrentChange"
:current-page="currentPage" :current-page="currentPage"
...@@ -135,7 +135,20 @@ ...@@ -135,7 +135,20 @@
:page-size="pagesize" :page-size="pagesize"
layout="total, sizes, prev, pager, next, jumper" layout="total, sizes, prev, pager, next, jumper"
:total="tableData.length"> :total="tableData.length">
</el-pagination> </el-pagination>-->
<!-- 分页 修改 -->
<el-pagination
:current-page="pageOption.pageIndex"
:page-sizes="[5, 10, 20, 40]"
:page-size="pageOption.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="pageOption.totalCount"
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
/>
</div> </div>
<!-- 任务统计 --> <!-- 任务统计 -->
...@@ -213,6 +226,12 @@ export default { ...@@ -213,6 +226,12 @@ export default {
directives: { elDragDialog }, directives: { elDragDialog },
data() { data() {
return { return {
pageOption: {
pageIndex: 1,
pageSize: 20,
totalCount: 0,
},
tableData: [ tableData: [
], ],
...@@ -221,9 +240,6 @@ export default { ...@@ -221,9 +240,6 @@ export default {
status: null, status: null,
dateTime: [], dateTime: [],
}, },
currentPage: 1, // 初始页
pagesize: 10, // 每页的数据
loading: false, loading: false,
isShowCol: false, isShowCol: false,
isShowPicture: false, isShowPicture: false,
......
This diff is collapsed.
...@@ -6,7 +6,6 @@ ...@@ -6,7 +6,6 @@
<el-col :span="24" class="warp-breadcrum"> <el-col :span="24" class="warp-breadcrum">
<!--搜索栏--> <!--搜索栏-->
<el-col :span="24" class="toolbar"> <el-col :span="24" class="toolbar">
<el-form :inline="true" :model="filters">
<el-form :inline="true" :model="filters"> <el-form :inline="true" :model="filters">
<el-form-item> <el-form-item>
<el-select <el-select
...@@ -20,15 +19,15 @@ ...@@ -20,15 +19,15 @@
v-for="item in plateNoOptions" v-for="item in plateNoOptions"
:key="item.code" :key="item.code"
:label="item.plateNo" :label="item.plateNo"
:value="item.channelCode + '_' + item.code"> :value="item.channelCode + '_' + item.code"
</el-option> ></el-option>
</el-select> </el-select>
<!-- <el-autocomplete <!-- <el-autocomplete
v-model="filters.channelName" v-model="filters.channelName"
:fetch-suggestions="queryChannelSearchAsync" :fetch-suggestions="queryChannelSearchAsync"
placeholder="渠道" placeholder="渠道"
@select="handleChannelSelect" @select="handleChannelSelect"
></el-autocomplete> --> ></el-autocomplete>-->
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-date-picker <el-date-picker
...@@ -41,8 +40,8 @@ ...@@ -41,8 +40,8 @@
end-placeholder="结束时间" end-placeholder="结束时间"
:default-time="['00:00:00', '23:59:59']" :default-time="['00:00:00', '23:59:59']"
value-format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss"
:picker-options="pickerOptions"> :picker-options="pickerOptions"
</el-date-picker> ></el-date-picker>
</el-form-item> </el-form-item>
<!-- <el-form-item> <!-- <el-form-item>
<el-select v-model="filters.type" placeholder="车辆类型"> <el-select v-model="filters.type" placeholder="车辆类型">
...@@ -53,7 +52,7 @@ ...@@ -53,7 +52,7 @@
<el-select v-model="filters.status" placeholder="启用状态"> <el-select v-model="filters.status" placeholder="启用状态">
<el-option v-for="item in statusData" :key="item.value" :label="item.label" :value="item.value"></el-option> <el-option v-for="item in statusData" :key="item.value" :label="item.label" :value="item.value"></el-option>
</el-select> </el-select>
</el-form-item> --> </el-form-item>-->
<el-form-item> <el-form-item>
<el-button type="primary" @click="queryVideos">搜索</el-button> <el-button type="primary" @click="queryVideos">搜索</el-button>
</el-form-item> </el-form-item>
...@@ -66,38 +65,18 @@ ...@@ -66,38 +65,18 @@
<el-table <el-table
:data="tableData.slice((currentPage-1)*pagesize,currentPage*pagesize)" :data="tableData.slice((currentPage-1)*pagesize,currentPage*pagesize)"
style="width: 100%;" style="width: 100%;"
border=true border="true"
highlight-current-row=true highlight-current-row="true"
> >
<el-table-column <el-table-column label="序号" prop="no"></el-table-column>
label="序号" <el-table-column label="车牌号" prop="plateNo"></el-table-column>
prop="no"> <el-table-column label="起始时间" prop="startTime"></el-table-column>
</el-table-column> <el-table-column label="结束时间" prop="endTime"></el-table-column>
<el-table-column <el-table-column label="巡检时长" prop="inspectTime"></el-table-column>
label="车牌号" <el-table-column label="停车地点" prop="stopPoint"></el-table-column>
prop="plateNo">
</el-table-column>
<el-table-column
label="起始时间"
prop="startTime">
</el-table-column>
<el-table-column
label="结束时间"
prop="endTime">
</el-table-column>
<el-table-column
label="巡检时长"
prop="inspectTime">
</el-table-column>
<el-table-column
label="停车地点"
prop="stopPoint">
</el-table-column>
<el-table-column fixed="right" label="视频列表" width="100"> <el-table-column fixed="right" label="视频列表" width="100">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button size="mini" @click="playVideo(scope.$index, scope.row)">播放</el-button>
size="mini"
@click="playVideo(scope.$index, scope.row)">播放</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
...@@ -108,71 +87,56 @@ ...@@ -108,71 +87,56 @@
:page-sizes="[5, 10, 20, 40]" :page-sizes="[5, 10, 20, 40]"
:page-size="pagesize" :page-size="pagesize"
layout="total, sizes, prev, pager, next, jumper" layout="total, sizes, prev, pager, next, jumper"
:total="tableData.length"> :total="tableData.length"
</el-pagination> ></el-pagination>
</div> </div>
<!-- 任务统计 --> <!-- 任务统计 -->
<!-- <div class="task-echarts"> <!-- <div class="task-echarts">
<h3>任务统计</h3> <h3>任务统计</h3>
<div class="echarts-box" id="echarts-box"></div> <div class="echarts-box" id="echarts-box"></div>
</div> --> </div>-->
</el-row> </el-row>
</div> </div>
</div> </div>
</template> </template>
<style lang="less" scope>
.detail{
.box{
.el-pagination{
padding: 15px;
}
}
}
</style>
<script> <script>
import axios from 'axios'; import axios from "axios";
import { Message } from 'element-ui'; import echarts from "echarts";
import echarts from 'echarts'; import moment from "moment";
import moment from 'moment'; import { Message } from "element-ui";
import { address } from '../config'; import { address } from "../config";
export default { export default {
name: 'detail', name: "detail",
data() { data() {
return { return {
tableData: [ tableData: [],
],
filters: { filters: {
plateNo: '', plateNo: "",
dateTime: [], dateTime: [],
}, },
plateNoOptions: [], plateNoOptions: [],
showCol: false, showCol: false,
currentPage:1, //初始页 currentPage: 1, //初始页
pagesize:10, //每页的数据 pagesize: 10, //每页的数据
loading: false, loading: false,
no: 0, no: 0,
capitalOptions: [ capitalOptions: [],
currentdate: "",
],
currentdate: '',
}; };
}, },
mounted() { mounted() {},
},
created() { created() {
this.queryAllEquipment(); this.queryAllEquipment();
this.queryVideos(); this.queryVideos();
}, },
methods: { methods: {
queryAllEquipment() { queryAllEquipment() {
axios.post(address + `queryAllEquipment`, { axios
.post(address + `queryAllEquipment`, {})
}).then((response) => { .then((response) => {
if (response.data.code === 200) { if (response.data.code === 200) {
if (response.data.data) { if (response.data.data) {
this.plateNoOptions = []; this.plateNoOptions = [];
...@@ -193,29 +157,35 @@ export default { ...@@ -193,29 +157,35 @@ export default {
}); });
}, },
queryVideos() { queryVideos() {
if(this.filters.dateTime.length == 0){ if (this.filters.dateTime.length == 0) {
this.filters.dateTime[0] = moment((new Date()).setTime((new Date()).getTime() - 3600 * 1000 * 24)).format("YYYY-MM-DD") + ' 00:00:00'; this.filters.dateTime[0] =
this.filters.dateTime[1] = moment((new Date()).setTime((new Date()).getTime() - 3600 * 1000 * 24)).format("YYYY-MM-DD") + ' 23:59:59'; moment(
new Date().setTime(new Date().getTime() - 3600 * 1000 * 24)
).format("YYYY-MM-DD") + " 00:00:00";
this.filters.dateTime[1] =
moment(
new Date().setTime(new Date().getTime() - 3600 * 1000 * 24)
).format("YYYY-MM-DD") + " 23:59:59";
} }
let equipmentCode = ""; let equipmentCode = "";
if(this.filters.plateNo && this.filters.plateNo.length > 0){ if (this.filters.plateNo && this.filters.plateNo.length > 0) {
this.filters.plateNo.forEach((item) => { this.filters.plateNo.forEach((item) => {
if(equipmentCode == ""){ if (equipmentCode == "") {
equipmentCode += item; equipmentCode += item;
}else{ } else {
equipmentCode += "," + item; equipmentCode += "," + item;
} }
}); });
} }
axios.post(address + `queryVideos`, { axios
.post(address + `queryVideos`, {
startTime: this.filters.dateTime[0], startTime: this.filters.dateTime[0],
endTime: this.filters.dateTime[1], endTime: this.filters.dateTime[1],
equipment: equipmentCode equipment: equipmentCode,
}).then((response) => { })
.then((response) => {
if (response.data.code === 200) { if (response.data.code === 200) {
if (response.data.data) { if (response.data.data) {
} }
} else { } else {
Message({ Message({
...@@ -229,9 +199,17 @@ export default { ...@@ -229,9 +199,17 @@ export default {
console.log(error); console.log(error);
}); });
}, },
playVideo(index, row) { playVideo(index, row) {},
}
}, },
}; };
</script> </script>
<style lang="less" scope>
.detail {
.box {
.el-pagination {
padding: 15px;
}
}
}
</style>
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