zxd-更新项目

master
张小东 2023-12-04 15:31:56 +08:00
parent 4a2f8d6836
commit a348abcc1d
219 changed files with 6895 additions and 6764 deletions

View File

@ -49,6 +49,7 @@
"js-beautify": "1.13.0", "js-beautify": "1.13.0",
"js-cookie": "3.0.1", "js-cookie": "3.0.1",
"jsencrypt": "3.0.0-rc.1", "jsencrypt": "3.0.0-rc.1",
"moment": "^2.29.4",
"nprogress": "0.2.0", "nprogress": "0.2.0",
"quill": "1.3.7", "quill": "1.3.7",
"screenfull": "5.0.2", "screenfull": "5.0.2",

View File

@ -149,7 +149,8 @@
谷歌浏览器<span>Google Chrome</span></a></li> 谷歌浏览器<span>Google Chrome</span></a></li>
<li class="browser-firefox"><a href="https://www.mozilla.org/zh-CN/firefox/new/"> <li class="browser-firefox"><a href="https://www.mozilla.org/zh-CN/firefox/new/">
火狐浏览器<span>Mozilla Firefox</span></a></li> 火狐浏览器<span>Mozilla Firefox</span></a></li>
<li class="browser-ie"><a href="https://windows.microsoft.com/zh-cn/internet-explorer/download-ie"> IE 11 浏览器<span>Internet Explorer</span></a> <li class="browser-ie"><a href="https://windows.microsoft.com/zh-cn/internet-explorer/download-ie"> IE 11
浏览器<span>Internet Explorer</span></a>
</li> </li>
<li class="browser-360"><a href="http://se.360.cn/"> 360安全浏览器<span>360 Chrome</span></a></li> <li class="browser-360"><a href="http://se.360.cn/"> 360安全浏览器<span>360 Chrome</span></a></li>
<div class="clean"></div> <div class="clean"></div>

View File

@ -0,0 +1,9 @@
import request from '@/utils/request'
// 车辆类型
export function getVehicleTypeList() {
return request({
url: '/trajectory/vehicle/vehicleTypeList',
method: 'get'
})
}

View File

@ -32,8 +32,10 @@
<use fill="black" fill-opacity="1" filter="url(#filter-4)" xlink:href="#path-2"></use> <use fill="black" fill-opacity="1" filter="url(#filter-4)" xlink:href="#path-2"></use>
<use fill="#F0F2F5" fill-rule="evenodd" xlink:href="#path-2"></use> <use fill="#F0F2F5" fill-rule="evenodd" xlink:href="#path-2"></use>
</g> </g>
<rect id="Rectangle-11" fill="#FFFFFF" mask="url(#mask-3)" x="0" y="0" width="48" height="10"></rect> <rect id="Rectangle-11" fill="#FFFFFF" mask="url(#mask-3)" x="0" y="0" width="48"
<rect id="Rectangle-18" fill="#303648" mask="url(#mask-3)" x="0" y="0" width="16" height="40"></rect> height="10"></rect>
<rect id="Rectangle-18" fill="#303648" mask="url(#mask-3)" x="0" y="0" width="16"
height="40"></rect>
</g> </g>
</g> </g>
</g> </g>

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.6 KiB

View File

@ -32,8 +32,10 @@
<use fill="black" fill-opacity="1" filter="url(#filter-4)" xlink:href="#path-2"></use> <use fill="black" fill-opacity="1" filter="url(#filter-4)" xlink:href="#path-2"></use>
<use fill="#F0F2F5" fill-rule="evenodd" xlink:href="#path-2"></use> <use fill="#F0F2F5" fill-rule="evenodd" xlink:href="#path-2"></use>
</g> </g>
<rect id="Rectangle-18" fill="#FFFFFF" mask="url(#mask-3)" x="0" y="0" width="16" height="40"></rect> <rect id="Rectangle-18" fill="#FFFFFF" mask="url(#mask-3)" x="0" y="0" width="16"
<rect id="Rectangle-11" fill="#FFFFFF" mask="url(#mask-3)" x="0" y="0" width="48" height="10"></rect> height="40"></rect>
<rect id="Rectangle-11" fill="#FFFFFF" mask="url(#mask-3)" x="0" y="0" width="48"
height="10"></rect>
</g> </g>
</g> </g>
</g> </g>

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.6 KiB

View File

@ -1,10 +1,12 @@
<template> <template>
<div :class="{'collapse':collapse}" :style="{ backgroundColor: sideTheme === 'theme-dark' ? variables.menuBackground : variables.menuLightBackground }" <div :class="{'collapse':collapse}"
:style="{ backgroundColor: sideTheme === 'theme-dark' ? variables.menuBackground : variables.menuLightBackground }"
class="sidebar-logo-container"> class="sidebar-logo-container">
<transition name="sidebarLogoFade"> <transition name="sidebarLogoFade">
<router-link v-if="collapse" key="collapse" class="sidebar-logo-link" to="/"> <router-link v-if="collapse" key="collapse" class="sidebar-logo-link" to="/">
<img v-if="logo" :src="logo" class="sidebar-logo"/> <img v-if="logo" :src="logo" class="sidebar-logo"/>
<h1 v-else :style="{ color: sideTheme === 'theme-dark' ? variables.logoTitleColor : variables.logoLightTitleColor }" <h1 v-else
:style="{ color: sideTheme === 'theme-dark' ? variables.logoTitleColor : variables.logoLightTitleColor }"
class="sidebar-title"> class="sidebar-title">
{{ title }} </h1> {{ title }} </h1>
</router-link> </router-link>

View File

@ -2,6 +2,7 @@ import Vue from 'vue'
import Router from 'vue-router' import Router from 'vue-router'
/* Layout */ /* Layout */
import Layout from '@/layout' import Layout from '@/layout'
import TrackMap from '@/views/trajectory/trackMap/trackMap.vue'
Vue.use(Router) Vue.use(Router)
@ -29,6 +30,11 @@ Vue.use(Router)
// 公共路由 // 公共路由
export const constantRoutes = [ export const constantRoutes = [
{
path: '/trackMap/:vehicleId',
name: 'trackMap',
component: () => import('@/views/trajectory/trackMap/trackMap.vue')
},
{ {
path: '/redirect', path: '/redirect',
component: Layout, component: Layout,
@ -86,7 +92,7 @@ export const constantRoutes = [
meta: {title: '个人中心', icon: 'user'} meta: {title: '个人中心', icon: 'user'}
} }
] ]
} },
] ]
// 动态路由,基于用户权限动态去加载 // 动态路由,基于用户权限动态去加载
@ -161,17 +167,6 @@ export const dynamicRoutes = [
} }
] ]
}, },
{
path: '/system/map',
children: [
{
path: 'index',
name: '实时轨迹',
component: () => import('@/views/system/map/map.vue'),
meta: { title: '实时轨迹', icon: 'form' }
}
]
},
] ]
// 防止连续点击多次路由报错 // 防止连续点击多次路由报错

View File

@ -52,7 +52,8 @@ const componentChild = {
options(h, conf, key) { options(h, conf, key) {
const list = [] const list = []
conf.options.forEach(item => { conf.options.forEach(item => {
if (conf.optionType === 'button') list.push(<el-radio-button label={item.value}>{item.label}</el-radio-button>) if (conf.optionType === 'button') list.push(<el-radio-button
label={item.value}>{item.label}</el-radio-button>)
else list.push(<el-radio label={item.value} border={conf.border}>{item.label}</el-radio>) else list.push(<el-radio label={item.value} border={conf.border}>{item.label}</el-radio>)
}) })
return list return list

View File

@ -129,6 +129,7 @@ export default {
}, },
handleLogin() { handleLogin() {
this.$refs.loginForm.validate(valid => { this.$refs.loginForm.validate(valid => {
console.log(valid)
if (valid) { if (valid) {
this.loading = true; this.loading = true;
if (this.loginForm.rememberMe) { if (this.loginForm.rememberMe) {

View File

@ -106,7 +106,8 @@
@selection-change="handleSelectionChange" @sort-change="handleSortChange"> @selection-change="handleSelectionChange" @sort-change="handleSortChange">
<el-table-column align="center" type="selection" width="55"/> <el-table-column align="center" type="selection" width="55"/>
<el-table-column align="center" label="访问编号" prop="infoId"/> <el-table-column align="center" label="访问编号" prop="infoId"/>
<el-table-column :show-overflow-tooltip="true" :sort-orders="['descending', 'ascending']" align="center" label="用户名称" prop="userName" <el-table-column :show-overflow-tooltip="true" :sort-orders="['descending', 'ascending']" align="center"
label="用户名称" prop="userName"
sortable="custom"/> sortable="custom"/>
<el-table-column :show-overflow-tooltip="true" align="center" label="地址" prop="ipaddr" width="130"/> <el-table-column :show-overflow-tooltip="true" align="center" label="地址" prop="ipaddr" width="130"/>
<el-table-column align="center" label="登录状态" prop="status"> <el-table-column align="center" label="登录状态" prop="status">

View File

@ -1,195 +0,0 @@
<template>
<div>
<el-row>
<div id="container"></div>
<div class="input-card" v-show="true">
<div class="input-item">
<el-button type="primary" size="small" style="width: 90px" @click="startAnimation"></el-button>
<el-button type="primary" size="small" style="width: 90px" @click="pauseAnimation"></el-button>
<el-button type="primary" size="small" style="width: 90px" @click="resumeAnimation"></el-button>
<el-button type="primary" size="small" style="width: 90px" @click="stopAnimation"></el-button>
</div>
</div>
</el-row>
</div>
</template>
<script>
// js js json
// import from ' ';
//6911d4b3d9f7745cfed4ab0c87ad9b3f
//Key:965af9776cc04fc39f19b9ced7423ca0
import AMapLoader from "@amap/amap-jsapi-loader";
//
window._AMapSecurityConfig = {
securityJsCode: '6911d4b3d9f7745cfed4ab0c87ad9b3f',
}
export default {
name: 'TrackContainer',
//import 使
components: {},
props: {
visible: Boolean,
},
data() {
//
return {
AMap: null,
// map 使 this.map
map: null,
mouseTool: null,
marker: null,
lineArr: [],
};
},
// data
computed: {},
// data
watch: {
},
//
methods: {
pauseAnimation () {
this.marker.pauseMove();
},
resumeAnimation () {
this.marker.resumeMove();
},
stopAnimation () {
this.marker.stopMove();
},
startAnimation () {
this.marker.moveAlong(this.lineArr, {
//
duration: 500,//
// JSAPI2.0 moveAlong
autoRotation: true,
});
},
initMap() {
AMapLoader.load({
key: "965af9776cc04fc39f19b9ced7423ca0", // WebKey load
version: "2.0", // JSAPI 1.4.15
"plugins": [
"AMap.Scale",
"AMap.HawkEye",
"AMap.ToolBar",
"AMap.AutoComplete",
"AMap.PlaceSearch",
"AMap.ControlBar",
"AMap.MouseTool",
"AMap.DragRoute",
"AMap.MoveAnimation"], // 使'AMap.Scale'
}).then((AMap) => {
this.AMap=AMap
this.marker=null;
this.lineArr = [[116.478935,39.997761],[116.478939,39.997825],[116.478912,39.998549],[116.478912,39.998549],[116.478998,39.998555],[116.478998,39.998555],[116.479282,39.99856],[116.479658,39.998528],[116.480151,39.998453],[116.480784,39.998302],[116.480784,39.998302],[116.481149,39.998184],[116.481573,39.997997],[116.481863,39.997846],[116.482072,39.997718],[116.482362,39.997718],[116.483633,39.998935],[116.48367,39.998968],[116.484648,39.999861]];
this.map = new AMap.Map("container", { //id
viewMode: "2D", // 3D
zoom: 13, //
center: [116.478935,39.997761], // 104.065735, 30.659462
resizeEnable: true
});
this.marker = new AMap.Marker({
map: this.map,
position: [116.478935,39.997761],
icon: "https://a.amap.com/jsapi_demos/static/demo-center-v2/car.png",
offset: new AMap.Pixel(-13, -26),
});
//
var polyline = new AMap.Polyline({
map: this.map,
path: this.lineArr,
showDir:true,
strokeColor: "#28F", //线
// strokeOpacity: 1, //线
strokeWeight: 6, //线
// strokeStyle: "solid" //线
});
var passedPolyline = new AMap.Polyline({
map: this.map,
strokeColor: "#AF5", //线
strokeWeight: 6, //线
});
this.marker.on('moving', function (e) {
passedPolyline.setPath(e.passedPath);
this.map.setCenter(e.target.getPosition(),true)
}.bind(this));
this.map.setFitView();
}).catch(e => {
console.log(e);
})
},
},
// - 访 this
created() {
},
// - 访 DOM
mounted() {
this.initMap();
},
// -
beforeCreate() {
},
// -
beforeMount() {
},
// -
beforeUpdate() {
},
// -
updated() {
},
// -
beforeDestroy() {
},
// -
destroyed() {
},
// keep-alive
activated() {
},
}
</script>
<style scoped>
#container {
padding: 0px;
margin: 0px;
width: 100%;
height: 800px;
}
.input-item {
height: 2.2rem;
}
.input-card {
display: flex;
flex-direction: column;
min-width: 0;
word-wrap: break-word;
background-color: #fff;
background-clip: border-box;
border-radius: .25rem;
width: 10rem;
border-width: 0;
border-radius: 0.4rem;
box-shadow: 0 2px 6px 0 rgba(114, 124, 245, .5);
position: fixed;
bottom: 12rem;
right: 2rem;
-ms-flex: 1 1 auto;
flex: 1 1 auto;
padding: 0.75rem 1.25rem;
}
</style>

View File

@ -125,7 +125,8 @@
</template> </template>
</el-table-column> </el-table-column>
<el-table-column align="center" label="请求方式" prop="requestMethod"/> <el-table-column align="center" label="请求方式" prop="requestMethod"/>
<el-table-column :show-overflow-tooltip="true" :sort-orders="['descending', 'ascending']" align="center" label="操作人员" prop="operName" <el-table-column :show-overflow-tooltip="true" :sort-orders="['descending', 'ascending']" align="center"
label="操作人员" prop="operName"
sortable="custom" width="110"/> sortable="custom" width="110"/>
<el-table-column :show-overflow-tooltip="true" align="center" label="操作地址" prop="operIp" width="130"/> <el-table-column :show-overflow-tooltip="true" align="center" label="操作地址" prop="operIp" width="130"/>
<el-table-column align="center" label="操作状态" prop="status"> <el-table-column align="center" label="操作状态" prop="status">
@ -133,13 +134,15 @@
<dict-tag :options="dict.type.sys_common_status" :value="scope.row.status"/> <dict-tag :options="dict.type.sys_common_status" :value="scope.row.status"/>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :sort-orders="['descending', 'ascending']" align="center" label="操作日期" prop="operTime" sortable="custom" <el-table-column :sort-orders="['descending', 'ascending']" align="center" label="操作日期" prop="operTime"
sortable="custom"
width="180"> width="180">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ parseTime(scope.row.operTime) }}</span> <span>{{ parseTime(scope.row.operTime) }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :show-overflow-tooltip="true" :sort-orders="['descending', 'ascending']" align="center" label="消耗时间" prop="costTime" <el-table-column :show-overflow-tooltip="true" :sort-orders="['descending', 'ascending']" align="center"
label="消耗时间" prop="costTime"
sortable="custom" width="110"> sortable="custom" width="110">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ scope.row.costTime }}毫秒</span> <span>{{ scope.row.costTime }}毫秒</span>

View File

@ -17,7 +17,8 @@
</el-form> </el-form>
<h4 class="form-header h4">角色信息</h4> <h4 class="form-header h4">角色信息</h4>
<el-table ref="table" v-loading="loading" :data="roles.slice((pageNum-1)*pageSize,pageNum*pageSize)" :row-key="getRowKey" <el-table ref="table" v-loading="loading" :data="roles.slice((pageNum-1)*pageSize,pageNum*pageSize)"
:row-key="getRowKey"
@row-click="clickRow" @selection-change="handleSelectionChange"> @row-click="clickRow" @selection-change="handleSelectionChange">
<el-table-column align="center" label="序号" type="index"> <el-table-column align="center" label="序号" type="index">
<template slot-scope="scope"> <template slot-scope="scope">

View File

@ -145,11 +145,14 @@
<el-table v-loading="loading" :data="userList" @selection-change="handleSelectionChange"> <el-table v-loading="loading" :data="userList" @selection-change="handleSelectionChange">
<el-table-column align="center" type="selection" width="50"/> <el-table-column align="center" type="selection" width="50"/>
<el-table-column v-if="columns[0].visible" key="userId" align="center" label="用户编号" prop="userId"/> <el-table-column v-if="columns[0].visible" key="userId" align="center" label="用户编号" prop="userId"/>
<el-table-column v-if="columns[1].visible" key="userName" :show-overflow-tooltip="true" align="center" label="用户名称" <el-table-column v-if="columns[1].visible" key="userName" :show-overflow-tooltip="true" align="center"
label="用户名称"
prop="userName"/> prop="userName"/>
<el-table-column v-if="columns[2].visible" key="nickName" :show-overflow-tooltip="true" align="center" label="用户昵称" <el-table-column v-if="columns[2].visible" key="nickName" :show-overflow-tooltip="true" align="center"
label="用户昵称"
prop="nickName"/> prop="nickName"/>
<el-table-column v-if="columns[3].visible" key="deptName" :show-overflow-tooltip="true" align="center" label="部门" <el-table-column v-if="columns[3].visible" key="deptName" :show-overflow-tooltip="true" align="center"
label="部门"
prop="dept.deptName"/> prop="dept.deptName"/>
<el-table-column v-if="columns[4].visible" key="phonenumber" align="center" label="手机号码" <el-table-column v-if="columns[4].visible" key="phonenumber" align="center" label="手机号码"
prop="phonenumber" width="120"/> prop="phonenumber" width="120"/>

View File

@ -0,0 +1,304 @@
<template>
<div class="dashboard-container">
<el-button type="primary" @click="handleAdd"></el-button>
<el-dialog :visible.sync="dialogVisible2" title="新增车辆">
<span slot="footer" class="dialog-footer">
<el-form ref="form" :model="form" label-width="80px">
<el-form-item label="车辆VIN">
<el-input v-model="form.vehicleVin"></el-input>
</el-form-item>
<el-form-item label="车辆拍照">
<el-input v-model="form.vehiclePlateNumber"></el-input>
</el-form-item>
<el-form-item label="车辆品牌">
<el-input v-model="form.vehicleBrand"></el-input>
</el-form-item>
<el-form-item label="车辆类型">
<el-select v-model="form.vehicleTypeName" placeholder="请选择类型">
<el-option v-for="item in vehicleType" :key="item.vehicleTypeId" :label="item.vehicleTypeName" :value="item.vehicleTypeId"></el-option>
</el-select>
</el-form-item>
<el-form-item label="电机厂商">
<el-select v-model="form.motorMerchantName" placeholder="请选择电机厂商">
<el-option v-for="item in motorMerchant" :key="item.motorMerchantId" :label="item.motorMerchantName" :value="item.motorMerchantId"></el-option>
</el-select>
</el-form-item>
<el-form-item label="电机">
<el-select v-model="form.motorName" placeholder="请选择电机">
<el-option v-for="item in motor" :key="item.motorId" :label="item.motorName" :value="item.motorId"></el-option>
</el-select>
</el-form-item>
<el-form-item label="电池厂商">
<el-select v-model="form.batteryMerchantName" placeholder="请选择电池厂商">
<el-option v-for="item in batteryMerchant" :key="item.batteryMerchantId" :label="item.batteryMerchantName" :value="item.batteryMerchantId"></el-option>
</el-select>
</el-form-item>
<el-form-item label="电池">
<el-select v-model="form.batteryName" placeholder="请选择电池">
<el-option v-for="item in battery" :key="item.batteryId" :label="item.batteryName" :value="item.batteryId"></el-option>
</el-select>
</el-form-item>
</el-form>
<el-button @click="dialogVisible2 = false"> </el-button>
<el-button type="primary" @click="InsertVehicle"> </el-button>
</span>
</el-dialog>
<el-table :data="tableData" style="width: 100%" border>
<el-table-column label="车辆Id" width="180">
<template slot-scope="scope">
<span style="margin-left: 10px">{{ scope.row.vehicleId }}</span>
</template>
</el-table-column>
<el-table-column label="车辆VIN号" width="180">
<template slot-scope="scope">
<span style="margin-left: 10px">{{ scope.row.vehicleVin }}</span>
</template>
</el-table-column>
<el-table-column label="车辆车牌号" width="180">
<template slot-scope="scope">
<span style="margin-left: 10px">{{ scope.row.vehiclePlateNumber }}</span>
</template>
</el-table-column>
<el-table-column label="品牌名称" width="180">
<template slot-scope="scope">
<span style="margin-left: 10px">{{ scope.row.vehicleBrand }}</span>
</template>
</el-table-column>
<el-table-column label="车辆类型名称" width="180">
<template slot-scope="scope">
<span style="margin-left: 10px">{{ scope.row.vehicleTypeName }}</span>
</template>
</el-table-column>
<el-table-column label="电机制造商名称" width="180">
<template slot-scope="scope">
<span style="margin-left: 10px">{{ scope.row.motorMerchantName }}</span>
</template>
</el-table-column>
<el-table-column label="电机名称" width="180">
<template slot-scope="scope">
<span style="margin-left: 10px">{{ scope.row.motorName }}</span>
</template>
</el-table-column>
<el-table-column label="电池制造商名称" width="180">
<template slot-scope="scope">
<span style="margin-left: 10px">{{ scope.row.batteryMerchantName }}</span>
</template>
</el-table-column>
<el-table-column label="电池名称" width="180">
<template slot-scope="scope">
<span style="margin-left: 10px">{{ scope.row.batteryName }}</span>
</template>
</el-table-column>
<el-table-column label="车辆状态" width="180">
<template slot-scope="scope">
<span style="margin-left: 10px">{{ scope.row.vehicleStatus }}</span>
</template>
</el-table-column>
<el-table-column label="操作" width="300">
<template slot-scope="scope">
<el-button size="small" type="danger" @click="handleTrack(scope.row.vehicleId)"></el-button>
<el-button size="small" type="danger" @click="handleEdit(scope.row.vehicleId)"></el-button>
<el-dialog :visible.sync="dialogVisible" title="车辆信息">
<span slot="footer" class="dialog-footer">
<el-form ref="form" :model="vehicle" label-width="80px">
<el-form-item label="车辆Id">
<el-input v-model="vehicle.vehicleId"></el-input>
</el-form-item>
<el-form-item label="车辆VIN">
<el-input v-model="vehicle.vehicleVin"></el-input>
</el-form-item>
<el-form-item label="车辆车牌号">
<el-input v-model="vehicle.vehiclePlateNumber"></el-input>
</el-form-item>
<el-form-item label="车辆品牌">
<el-input v-model="vehicle.vehicleBrand"></el-input>
</el-form-item>
<el-form-item label="车辆类型">
<el-select v-model="vehicle.vehicleTypeName" placeholder="请选择类型">
<el-option v-for="item in vehicleType" :key="item.vehicleTypeId" :label="item.vehicleTypeName" :value="item.vehicleTypeId"></el-option>
</el-select>
</el-form-item>
<el-form-item label="电机厂商">
<el-select v-model="vehicle.motorMerchantName" placeholder="请选择电机厂家">
<el-option v-for="item in motorMerchant" :key="item.motorMerchantId" :label="item.motorMerchantName" :value="item.motorMerchantId"></el-option>
</el-select>
</el-form-item>
<el-form-item label="电机">
<el-select v-model="vehicle.motorName" placeholder="请选择电机">
<el-option v-for="item in motor" :key="item.motorId" :label="item.motorName" :value="item.motorId"></el-option>
</el-select>
</el-form-item>
<el-form-item label="电池厂商">
<el-select v-model="vehicle.batteryMerchantName" placeholder="请选择电池厂商">
<el-option v-for="item in batteryMerchant" :key="item.batteryMerchantId" :label="item.batteryMerchantName" :value="item.batteryMerchantId"></el-option>
</el-select>
</el-form-item>
<el-form-item label="电池">
<el-select v-model="vehicle.batteryName" placeholder="请选择电池">
<el-option v-for="item in battery" :key="item.batteryId" :label="item.batteryName" :value="item.batteryId"></el-option>
</el-select>
</el-form-item>
<el-form-item label="状态">
<el-input v-model="vehicle.vehicleStatus"></el-input>
</el-form-item>
</el-form>
<el-button @click="dialogVisible = false">取消</el-button>
<el-button type="primary" @click="updateVehicle"></el-button>
</span>
</el-dialog>
<el-button size="small" type="danger" @click="handleDelete(scope.row.vehicleId)"></el-button>
</template>
</el-table-column>
</el-table>
</div>
</template>
<script>
import {
getVehicleList, deleteVehicle, getVehicleByVehicleId, insertVehicle, updateVehicle } from '@/api/trajectory/vehicle'
import { getVehicleTypeList } from '@/api/trajectory/vehicleType'
import { getMotorMerchantList } from '@/api/trajectory/motorMerchant'
import { getMotorList } from '@/api/trajectory/motor'
import { getBatterMerchantList } from '@/api/trajectory/batteryMerchant'
import { getBatteryList } from '@/api/trajectory/battery'
export default {
data() {
return {
tableData: [],//
vehicleType: [], //
motorMerchant: [], //
motor: [], //
batteryMerchant: [], //
battery: [], //
dialogVisible: false, //
dialogVisible2: false, //
vehicle: { //
vehicleId: null,
vehicleVin: null,
vehiclePlateNumber: null,
vehicleBrand: null,
vehicleTypeName: null,
batteryMerchantName: null,
batteryName: null,
motorMerchantName: null,
motorName: null,
vehicleStatus: null
},//
form:{} //
}
},
created() {
this.getVehicleList()
this.getVehicleTypeList()
this.getMotorMerchantList()
this.getMotorList()
this.getBatteryMerchantList()
this.getBatteryList()
},
mounted() {
},
methods: {
//
getVehicleList() {
getVehicleList().then(res => {
console.log(res)
this.tableData = res.data
})
},
//
handleDelete(vehicleId) {
deleteVehicle(vehicleId).then(res => {
this.$message.success(res.data)
this.getVehicleList()
})
},
//
handleEdit(vehicleId) {
getVehicleByVehicleId(vehicleId).then(res => {
this.vehicle = res.data
this.dialogVisible = true
})
},
//
getVehicleTypeList() {
getVehicleTypeList().then(res => {
this.vehicleType = res.data
})
},
//
getMotorMerchantList() {
getMotorMerchantList().then(res => {
this.motorMerchant = res.data
})
},
//
getMotorList() {
getMotorList().then(res => {
this.motor = res.data
})
},
//
getBatteryMerchantList() {
getBatterMerchantList().then(res => {
this.batteryMerchant = res.data
})
},
//
getBatteryList() {
getBatteryList().then(res => {
this.battery = res.data
})
},
//
updateVehicle() {
updateVehicle(this.vehicle).then(res => {
this.$message.success(res.data)
})
},
handleAdd() {
this.dialogVisible2 = true
},
InsertVehicle() {
insertVehicle(this.form).then(res => {
this.$message.success(res.data)
//
this.dialogVisible = false;
//
this.getVehicleList();
})
},
handleTrack(vehicleId) {
//
this.$router.push({
name: 'trackMap', // 使
params: { vehicleId: vehicleId } //
});
}
}
}
</script>
<style scoped>
</style>