Compare commits

..

4 Commits

Author SHA1 Message Date
lijiayao 3278370356 Merge remote-tracking branch 'origin/server_ui_fufanrui' into server_ui_xiaoyao 2024-04-05 20:18:07 +08:00
ffr 8f70042737 车辆commit 2024-04-05 20:07:45 +08:00
lijiayao 5ce70109f5 perf: 优化编辑功能 2024-04-05 20:04:04 +08:00
ffr 5711e52290 上线车辆 2024-04-05 09:51:54 +08:00
7 changed files with 518 additions and 50 deletions

View File

@ -0,0 +1,14 @@
import request from "@/utils/request";
export function detectionList() {
return request({
url: '/business/detection/detectionList',
method: 'post',
})
}
export function postFindByVin(vin) {
return request({
url: '/mq/mq/findByVin/'+vin,
method: 'post',
})
}

View File

@ -0,0 +1,34 @@
import request from '@/utils/request'
// 查询车辆列表
export function VehicleManageList(vehicleListParams) {
return request({
url: '/business/VehicleManage/VehicleManageList',
method: 'post',
data: vehicleListParams
})
}
//根据车辆id进行删除
export function deleteMiddleId(middleId) {
return request({
url: '/business/vehicle/' + middleId,
method: 'delete'
})
}
//新增车辆
export function insertVehicle(middle) {
return request({
url: '/business/vehicle',
method: 'post',
data: middle
})
}
export function vehicleAll() {
return request({
url: '/business/vehicle/vehicleAll',
method: 'post',
})
}

View File

@ -0,0 +1,178 @@
<template>
<div>
<h1>车辆监控页面</h1>
<!-- 列表-->
<el-table :data="vehicleList" style="width: 100%" border>
<el-table-column label="车辆id" width="90" align="center">
<template slot-scope="scope">
<span style="margin-left: 10px">{{ scope.row.vehicleId }}</span>
</template>
</el-table-column>
<el-table-column label="车辆类型" width="90" align="center">
<template slot-scope="scope">
<span style="margin-left: 10px">{{ scope.row.vehicleTypeName }}</span>
</template>
</el-table-column>
<el-table-column label="电机厂商" width="150" align="center">
<template slot-scope="scope">
<span style="margin-left: 10px">{{ scope.row.motorManufacturer }}</span>
</template>
</el-table-column>
<el-table-column label="电池厂商" width="150" align="center">
<template slot-scope="scope">
<span style="margin-left: 10px">{{ scope.row.batteryManufacturer }}</span>
</template>
</el-table-column>
<el-table-column label="电机编号" width="180" align="center">
<template slot-scope="scope">
<span style="margin-left: 10px">{{ scope.row.motorNumber }}</span>
</template>
</el-table-column>
<el-table-column label="电池编号" width="180" align="center">
<template slot-scope="scope">
<span style="margin-left: 10px">{{ scope.row.batteryNumber }}</span>
</template>
</el-table-column>
<el-table-column label="vin码" width="180" align="center">
<template slot-scope="scope">
<span style="margin-left: 10px">{{ scope.row.vin }}</span>
</template>
</el-table-column>
<!-- <el-table-column label="vin码" width="180" align="center">-->
<!-- <template slot-scope="scope">-->
<!-- <span style="margin-left: 10px">{{ scope.row.vin }}</span>-->
<!-- </template>-->
<!-- </el-table-column>-->
<el-table-column label="车辆状态" width="120" align="center">
<template slot-scope="scope">
<span style="margin-left: 10px" v-if="1==scope.row.vehicleState">
<el-tag type="success">在线</el-tag>
</span>
<span style="margin-left: 10px" v-if="0==scope.row.vehicleState">
<el-tag type="danger">离线</el-tag>
</span>
</template>
</el-table-column>
<el-table-column label="操作" width="180" align="center">
<template slot-scope="scope">
<el-button size="mini" type="danger" @click="findByVehicle(scope.row.vin)"></el-button>
</template>
</el-table-column>
</el-table>
</div>
</template>
<script>
//jsjsjson,
//import from ',
import {getVehicleTypes} from "@/api/couplet/vehicle";
import {detectionList, postFindByVin} from "@/api/couplet/VehicleDetection";
export default {
//import使"
components: {},
props: {},
data() {
//"
return {
//
vehicleList: [],
//
total: 0,
//
vehicleTypes: [],
//
formLabelWidth: '120px',
dialogEdit: false,
dialogInsert: false,
//
title: ""
};
},
// data",
computed: {},
//data",
watch: {},
//",
methods: {
//
getVehicleList() {
detectionList().then(
res => {
this.vehicleList = res.data;
}
)
},
//
handleSizeChange(val) {
this.vehicleListParams.pageSize = val;
this.getVehicleList();
},
handleCurrentChange(val) {
this.vehicleListParams.pageNum = val;
this.getVehicleList();
},
//
getVehicleTypes() {
getVehicleTypes().then(
res => {
this.vehicleTypes = res.data;
}
)
},
findByVehicle(vin){
postFindByVin(vin).then(res=>{
if(res.code==200){
this.$message({
message: res.msg,
type: 'success'
});
}else{
this.$message({
message: res.msg,
type: 'error'
});
}
})
}
},
// - 访this",
created() {
//
this.getVehicleList ()
//
this.getVehicleTypes()
},
// - 访DOM",
mounted() {
},
beforeCreate() {
}, // - ",
beforeMount() {
}, // - ",
beforeUpdate() {
}, // - ",
updated() {
}, // - ",
beforeDestroy() {
}, // - ",
destroyed() {
}, // - ",
activated() {
} //keep-alive",
};
</script>
<style scoped>
</style>

View File

@ -112,7 +112,7 @@ export default {
this.$message("覆盖物对象绘制完成");
fenceUpdate(this.drawnPoints).then(res=>{
this.$message.success("编辑成功")
this.$router.push({path: '/business/fence/fence'})
this.$router.push({path: '/couplet/fence/fence'})
})
}
},

View File

@ -1,23 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta
name="viewport"
content="initial-scale=1.0, user-scalable=no, width=device-width"
/>
<title>HELLO, AMAP!</title>
<style>
html,
body,
#container {
width: 100%;
height: 100%;
}
</style>
</head>
<body>
<div id="container"></div>
</body>
</html>

View File

@ -52,17 +52,17 @@
</template>
</el-table-column>
<el-table-column label="维护人" prop="maintainerName" width="100"/>
<el-table-column
label="出行状态">
<template slot-scope="scope">
<span style="margin-left: 10px" v-if="scope.row.fenceCondition == 0"></span>
<span style="margin-left: 10px" v-if="scope.row.fenceCondition == 1"></span>
</template>
</el-table-column>
<el-table-column label="围栏标识" prop="logoName" width="100"/>
<el-table-column align="center" class-name="small-padding fixed-width" label="操作">
<template slot-scope="scope">
<el-button
v-hasPermi="['business:fence:fenceUpdate']"
icon="el-icon-edit"
size="mini"
type="text"
@click="handleQueryFence(scope.row)"
>查询围栏
</el-button>
<el-button
v-hasPermi="['business:fence:fenceUpdate']"
icon="el-icon-edit"
@ -97,6 +97,14 @@
@click="handleFenceDelete(scope.row)"
>删除
</el-button>
<el-button
v-hasPermi="['business:fence:fenceDelete']"
icon="el-icon-edit"
size="mini"
type="text"
@click="handleUpdate(scope.row)"
>修改电子围栏
</el-button>
</template>
</el-table-column>
</el-table>
@ -111,6 +119,8 @@
:total="400">
</el-pagination>
</div>
<!-- Form -->
<el-dialog title="新增电子围栏" :visible.sync="dialogFormVisible">
<el-form :model="fenceInsertRequest">
@ -127,7 +137,6 @@
<template>
<el-checkbox :indeterminate="isIndeterminate" v-model="checkAll" @change="handleCheckAllChange"></el-checkbox>
<div style="margin: 15px 0;"></div>
<el-checkbox-group v-model="fenceInsertRequest.logoIds" @change="handleChange">
<el-checkbox v-for="item in logo" :key="item.logoId" :label="item.logoId" >{{item.logoName}}</el-checkbox>
</el-checkbox-group>
@ -138,30 +147,46 @@
<el-button type="primary" @click="addFence"> </el-button>
</div>
</el-dialog>
<el-dialog title="修改电子围栏" :visible.sync="dialogFormVisible">
<el-form :model="fenceInsertRequest">
<el-form-item label="围栏名称" :label-width="formLabelWidth">
<el-input v-model="fenceInsertRequest.fenceName" autocomplete="off"></el-input>
</el-form-item>
<el-dialog title="修改电子围栏" :visible.sync="dialogFormVisible2">
<el-form :model="fenceUpdateRequest">
<el-form-item label="围栏编号" :label-width="formLabelWidth">
<el-input v-model="fenceUpdateRequest.fenceId" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="围栏名称" :label-width="formLabelWidth">
<el-input v-model="fenceUpdateRequest.fenceName" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="经纬度" :label-width="formLabelWidth">
<el-input v-model="fenceUpdateRequest.fenceLongitudeLatitude" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="电子围栏描述信息" :label-width="formLabelWidth">
<el-input v-model="fenceInsertRequest.fenceDescription" autocomplete="off"></el-input>
<el-input v-model="fenceUpdateRequest.fenceDescription" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="电子围栏创建时间" :label-width="formLabelWidth">
<el-input v-model="fenceUpdateRequest.createTime" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="电子围栏修改时间" :label-width="formLabelWidth">
<el-input v-model="fenceUpdateRequest.updateTime" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="维护负责人" :label-width="formLabelWidth">
<el-input v-model="fenceInsertRequest.maintainerName" autocomplete="off"></el-input>
<el-input v-model="fenceUpdateRequest.maintainerName" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="状态" :label-width="formLabelWidth">
<el-input v-model="fenceUpdateRequest.fenceState" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="运行状态" :label-width="formLabelWidth">
<el-select v-model="fenceUpdateRequest.fenceCondition" placeholder="请选择运行状态">
<el-option label="驶入" value="0"></el-option>
<el-option label="驶出" value="1"></el-option>
</el-select>
</el-form-item>
<template>
<el-checkbox :indeterminate="isIndeterminate" v-model="checkAll" @change="handleCheckAllChange"></el-checkbox>
<div style="margin: 15px 0;"></div>
<el-checkbox-group v-model="fenceInsertRequest.logoIds" @change="handleChange">
<el-checkbox v-for="item in logo" :key="item.logoId" :label="item.logoId" >{{item.logoName}}</el-checkbox>
</el-checkbox-group>
</template>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="dialogFormVisible = false"> </el-button>
<el-button type="primary" @click="addFence"> </el-button>
<el-button type="primary" @click="updateFence"> </el-button>
</div>
</el-dialog>
@ -170,7 +195,7 @@
</template>
<script>
import {fenceList, changeFenceStatus, queryByLogo, fenceDelete, fenceAdd} from "@/api/couplet/fence";
import {fenceList, changeFenceStatus, queryByLogo, fenceDelete, fenceAdd, fenceUpdate} from "@/api/couplet/fence";
import path from "path";
export default {
components: {},
@ -184,6 +209,7 @@ export default {
logoIds:[]
},
dialogFormVisible: false,
dialogFormVisible2: false,
formLabelWidth: '120px',
checkAll: false,
logo: [
@ -321,8 +347,21 @@ export default {
handleFenceUpdate(row){
this.$router.push({path: '/business/fence/container', query: {drawGraph: row}})
},
handleQueryFence(){
handleUpdate(row){
this.dialogFormVisible2=true;
this.fenceUpdateRequest=row
},
/**
* 修改电子围栏
*/
updateFence(){
fenceUpdate(this.fenceUpdateRequest).then(
res=>{
this.$message.success("修改成功")
this.dialogFormVisible2=false;
}
)
}
},
created() {

View File

@ -0,0 +1,226 @@
<template>
<div>
<h1>车辆管理页面</h1>
<!-- 列表-->
<el-table :data="vehicleList" style="width: 100%" border>
<el-table-column label="车辆id" width="90" align="center">
<template slot-scope="scope">
<span style="margin-left: 10px">{{ scope.row.vehicleId }}</span>
</template>
</el-table-column>
<el-table-column label="车辆类型" width="90" align="center">
<template slot-scope="scope">
<span style="margin-left: 10px">{{ scope.row.vehicleTypeName }}</span>
</template>
</el-table-column>
<el-table-column label="电机厂商" width="150" align="center">
<template slot-scope="scope">
<span style="margin-left: 10px">{{ scope.row.motorManufacturer }}</span>
</template>
</el-table-column>
<el-table-column label="电池厂商" width="150" align="center">
<template slot-scope="scope">
<span style="margin-left: 10px">{{ scope.row.batteryManufacturer }}</span>
</template>
</el-table-column>
<el-table-column label="电机编号" width="180" align="center">
<template slot-scope="scope">
<span style="margin-left: 10px">{{ scope.row.motorNumber }}</span>
</template>
</el-table-column>
<el-table-column label="电池编号" width="180" align="center">
<template slot-scope="scope">
<span style="margin-left: 10px">{{ scope.row.batteryNumber }}</span>
</template>
</el-table-column>
<!-- <el-table-column label="vin码" width="180" align="center">-->
<!-- <template slot-scope="scope">-->
<!-- <span style="margin-left: 10px">{{ scope.row.vin }}</span>-->0
<!-- </template>-->
<!-- </el-table-column>-->
<el-table-column label="车辆状态" width="120" align="center">
<template slot-scope="scope">
<span style="margin-left: 10px" v-if="1==scope.row.vehicleState">
<el-tag type="success">在线</el-tag>
</span>
<span style="margin-left: 10px" v-if="0==scope.row.vehicleState">
<el-tag type="danger">离线</el-tag>
</span>
</template>
</el-table-column>
<el-table-column label="操作" width="180" align="center">
<template slot-scope="scope">
<el-button size="mini" type="danger" @click="deleteById(scope.row.middleId)"></el-button>
</template>
</el-table-column>
</el-table>
<!-- &lt;!&ndash; 分页&ndash;&gt;-->
<!-- <el-pagination-->
<!-- @size-change="handleSizeChange"-->
<!-- @current-change="handleCurrentChange"-->
<!-- :current-page="vehicleListParams.pageNum"-->
<!-- :page-sizes="[5,7,10,20]"-->
<!-- :page-size="vehicleListParams.pageSize"-->
<!-- layout="total, sizes, prev, pager, next, jumper"-->
<!-- :total="total">-->
<!-- </el-pagination>-->
<!-- Form -->
<el-button type="text" @click="dialogFormVisible = true">添加管理车辆</el-button>
<el-dialog title="添加管理车辆" :visible.sync="dialogFormVisible">
<el-form :model="Addform">
<el-checkbox v-model="Addform.vehicleIds" v-for="item in vehicleTypes" :label="item.vehicleId">{{item.motorManufacturer}}</el-checkbox>
</el-form>
<el-button size="mini" type="danger" @click="insertVehicle()"></el-button>
<div slot="footer" class="dialog-footer">
<el-button @click="dialogFormVisible = false"> </el-button>
<el-button type="primary" @click="dialogFormVisible = false"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
//jsjsjson,
//import from ',
import {deleteMiddleId, insertVehicle, vehicleAll, VehicleManageList} from "@/api/couplet/vehiclemanage";
export default {
//import使"
components: {},
props: {},
data() {
//"
return {
//
vehicleList: [],
Addform:{
vehicleIds:[],
userId:''
},
//
total: 0,
//
vehicleTypes: [],
dialogTableVisible: false,
delivery: false,
dialogFormVisible: false,
formLabelWidth: '120px',
//
title: ""
};
},
// data",
computed: {},
//data",
watch: {},
//",
methods: {
//
getVehicleList() {
VehicleManageList(this.vehicleListParams).then(
res => {
this.vehicleList = res.data;
this.total = res.data.total;
}
)
},
insertVehicle(){
insertVehicle(this.Addform).then(
res => {
if(res.code==200){
this.getVehicleList()
this.$message({
type: 'success',
message: '添加成功!'
});
}else{
this.$message({
type: 'error',
message: '添加失败!'
});
}
}
)},
//
getVehicleTypes() {
vehicleAll().then(
res => {
this.vehicleTypes = res.data;
}
)
},
//id
deleteById(middleId) {
this.$confirm('此操作将永久删除该数据,是否继续?', "提示", {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
deleteMiddleId(middleId).then(
res => {
if (res.code == 200) {
//
this.getVehicleList();
this.$message({
type: 'success',
message: '删除成功!'
});
} else {
this.$message({
type: 'error',
message: '删除失败!'
});
}
}
)
}).catch(() => {
this.$message({
type: 'info',
message: '已取消删除'
})
})
},
},
// - 访this",
created() {
//
this.getVehicleList()
//
this.getVehicleTypes()
},
// - 访DOM",
mounted() {
},
beforeCreate() {
}, // - ",
beforeMount() {
}, // - ",
beforeUpdate() {
}, // - ",
updated() {
}, // - ",
beforeDestroy() {
}, // - ",
destroyed() {
}, // - ",
activated() {
} //keep-alive",
};
</script>
<style scoped>
</style>