Commit ff491578 authored by wangxiaoming's avatar wangxiaoming

merge

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