Compare commits

..

8 Commits

Author SHA1 Message Date
lijiayao 66c4e7ba29 Merge remote-tracking branch 'origin/server_ui_liuyunhu' into server_ui_xiaoyao 2024-04-01 19:52:23 +08:00
lijiayao c1dee2a715 Merge remote-tracking branch 'origin/server_ui_dongxiaodong' into server_ui_xiaoyao 2024-04-01 19:52:16 +08:00
dongxiaodong c301a0d82b 完善代码 2024-03-31 22:29:33 +08:00
liuyunhu 00eb65d366 车辆管理完成功能 2024-03-31 22:13:49 +08:00
liuyunhu 25c8d16954 车辆管理模块 2024-03-31 15:56:17 +08:00
dongxiaodong fb9bd6f533 Merge branch 'server_five_ui' into server_ui_dongxiaodong 2024-03-31 15:07:18 +08:00
dongxiaodong 9ff5e6e6f5 Merge branch 'server_ui_xiaoyao' into server_ui_dongxiaodong 2024-03-31 14:46:13 +08:00
dongxiaodong bbe9cb3de2 dxd_3/31 2024-03-31 14:41:48 +08:00
5 changed files with 539 additions and 39 deletions

View File

@ -0,0 +1,52 @@
import request from '@/utils/request'
// 查询故障码数据列表
export function listTrouble(data) {
return request({
url: '/trouble/trouble/troubleList',
method: 'post',
data: data
})
}
// 查询故障类型
export function getTroubleType() {
return request({
url: '/trouble/trouble/troubleTypeList',
method: 'get'
})
}
// 查询故障等级
export function getTroubleGrade() {
return request({
url: '/trouble/trouble/troubleGradeList',
method: 'get'
})
}
// 添加故障码数据
export function getAddTrouble(data) {
return request({
url: '/trouble/trouble/insertTrouble',
method: 'post',
data: data
})
}
// 修改故障码数据信息
export function getUpdateTrouble(data) {
return request({
url: '/trouble/trouble/updateTrouble',
method: 'post',
data: data
})
}
// 删除故障码数据信息
export function getDelTrouble(troubleId) {
return request({
url: '/trouble/trouble/remove/' + troubleId,
method: 'get'
})
}

View File

@ -0,0 +1,53 @@
import request from '@/utils/request'
// 查询车辆列表
export function list(vehicleListParams) {
return request({
url: '/vehicle/vehicle/list',
method: 'post',
data: vehicleListParams
})
}
//根据车辆id进行删除
export function deleteById(vehicleId) {
return request({
url: '/vehicle/vehicle/deleteById/' + vehicleId,
method: 'get'
})
}
//获取车辆类型
export function getVehicleTypes() {
return request({
url: '/vehicle/vehicleType/list',
method: 'get'
})
}
//编辑车辆
export function editById(vehicle) {
return request({
url: '/vehicle/vehicle/editById',
method: 'post',
data:vehicle
})
}
//新增车辆
export function insert(vehicle) {
return request({
url: '/vehicle/vehicle/insert',
method: 'post',
data:vehicle
})
}
//获取绑定当前车辆的标识
export function getBindLogoByVehicleId(vehicleId) {
return request({
url: '/vehicle/vehicle/getBindLogoById/'+vehicleId,
method: 'get'
})
}

View File

@ -1,19 +0,0 @@
import request from '@/utils/request'
// 查询车辆列表
export function list(vehicleListParams) {
return request({
url: '/vehicle/vehicle/list',
method: 'post',
data: vehicleListParams
})
}
//根据车辆id进行删除
export function deleteById(vehicleId) {
return request({
url: '/vehicle/vehicle/deleteById/' + vehicleId,
method: 'get'
})
}

View File

@ -18,7 +18,7 @@
</el-form-item>
<el-form-item>
<el-button icon="el-icon-search" size="mini" type="primary" @click="handleQuery"></el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetTroubleQuery"></el-button>
</el-form-item>
</el-form>
@ -71,11 +71,29 @@
<el-table v-loading="loading" :data="dataList" @selection-change="handleSelectionChange">
<el-table-column align="center" type="selection" width="55"/>
<el-table-column align="center" label="故障码" prop="troubleCode"/>
<el-table-column align="center" label="故障类型" prop="typeName"/>
<!-- <el-table-column align="center" label="故障类型" prop="typeName"/>-->
<el-table-column align="center" label="故障类型">
<template slot-scope="scope">
<div slot="reference" class="name-wrapper">
<el-tag size="medium" v-if="scope.row.typeId===1"></el-tag>
<el-tag size="medium" v-if="scope.row.typeId===2"></el-tag>
<el-tag size="medium" v-if="scope.row.typeId===3"></el-tag>
<el-tag size="medium" v-if="scope.row.typeId===4"></el-tag>
</div>
</template>
</el-table-column>
<el-table-column align="center" label="故障位" prop="troublePosition"/>
<el-table-column align="center" label="故障值" prop="troubleValue"/>
<el-table-column align="center" label="故障标签" prop="troubleTag"/>
<el-table-column align="center" label="故障等级" prop="gradeName"/>
<el-table-column align="center" label="故障等级">
<template slot-scope="scope">
<div slot="reference" class="name-wrapper">
<el-tag size="medium" v-if="scope.row.gradeId===1"></el-tag>
<el-tag size="medium" v-if="scope.row.gradeId===2"></el-tag>
<el-tag size="medium" v-if="scope.row.gradeId===3"></el-tag>
</div>
</template>
</el-table-column>
<el-table-column align="center" class-name="small-padding fixed-width" label="操作">
<template slot-scope="scope">
<el-button
@ -89,19 +107,101 @@
icon="el-icon-delete"
size="mini"
type="text"
@click="handleDelete(scope.row)"
@click="handleDelet(scope.row.troubleId)"
>删除
</el-button>
</template>
</el-table-column>
</el-table>
<!-- 添加对话框 -->
<el-dialog :visible.sync="opens" append-to-body width="500px">
<el-form ref="form" :model="form" label-width="80px">
<el-form-item label="故障码">
<el-input v-model="form.troubleCode"/>
</el-form-item>
<el-form-item label="故障码位" prop="troublePosition">
<el-input v-model="form.troublePosition"/>
</el-form-item>
<el-form-item label="故障码值" prop="troubleValue">
<el-input v-model="form.troubleValue"/>
</el-form-item>
<el-form-item label="故障码标签" prop="troubleTag">
<el-input v-model="form.troubleTag"/>
</el-form-item>
<el-form-item label="故障码类型" prop="typeId">
<el-select v-model="form.typeId" placeholder="请选择故障类型">
<el-option v-for="item in type" :key="item.typeId" :label="item.typeName" :value="item.typeId"></el-option>
</el-select>
</el-form-item>
<el-form-item label="故障码等级" prop="gradeId">
<el-select v-model="form.gradeId">
<el-option v-for="item in grade" :key="item.gradeId" :label="item.gradeName" :value="item.gradeId"></el-option>
</el-select>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitAdd"> </el-button>
<el-button @click="cance"> </el-button>
</div>
</el-dialog>
<!--修改对话框-->
<el-dialog :visible.sync="open" append-to-body width="500px">
<el-form ref="fore" :model="fore" label-width="80px">
<el-form-item label="故障码">
<el-input v-model="fore.troubleCode"/>
</el-form-item>
<el-form-item label="故障码位" prop="troublePosition">
<el-input v-model="fore.troublePosition"/>
</el-form-item>
<el-form-item label="故障码值" prop="troubleValue">
<el-input v-model="fore.troubleValue"/>
</el-form-item>
<el-form-item label="故障码标签" prop="troubleTag">
<el-input v-model="fore.troubleTag"/>
</el-form-item>
<el-form-item label="故障码类型" prop="typeId">
<el-select v-model="form.typeId" placeholder="请选择故障类型">
<el-option v-for="item in type" :key="item.typeId" :label="item.typeName" :value="item.typeId"></el-option>
</el-select>
</el-form-item>
<el-form-item label="故障码等级" prop="gradeId">
<el-select v-model="form.gradeId">
<el-option v-for="item in grade" :key="item.gradeId" :label="item.gradeName" :value="item.gradeId"></el-option>
</el-select>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitUpd"> </el-button>
<el-button @click="cance"> </el-button>
</div>
</el-dialog>
<el-pagination
@size-change="handleSize"
@current-change="handleCurrent"
:current-page="queryParams.pageNum"
:page-sizes = "[2, 3 , 5, 10]"
:page-size="queryParams.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="100"></el-pagination>
</div>
</template>
<script>
//jsjsjson,
//import from ',
export default {
import {
getAddTrouble,
getDelTrouble,
getTroubleGrade,
getTroubleType,
getUpdateTrouble,
listTrouble
} from '@/api/couplet/trouble'
export default {
//import使"
components: {},
props: {},
@ -109,13 +209,34 @@
//"
return {
queryParams:{troubleCode:'',troublePosition:''},
queryParams:{
pageNum : 1,
pageSize : 10,
troubleCode:'',
troublePosition:''
},
typeList1:[],
loading: true,
//
showSearch:true,
//
single:true,
//
multiple:true
multiple:true,
//
dataList:[],
//
total: 0,
//
ids:[],
//
open: false,
opens: false,
//
form: {},
fore:{},
type:[],
grade:[]
};
},
// data",
@ -124,27 +245,94 @@
watch: {},
//",
methods: {
getList() {
this.loading =true;
listTrouble(this.addDateRange(this.queryParams)).then(res =>{
this.dataList = res.data.list;
this.total = res.data.total;
this.loading = false;
})
},
handleSelectionChange(selection) {
this.ids = selection.map(item => item.troubleId)
this.single = selection.length !=1
this.multiple = !selection.length
},
handleQuery() {
this.queryParams.pageNum = 1;
this.getList()
},
resetQuery() {
resetTroubleQuery() {
this.resetForm("queryForm")
this.handleQuery()
},
/** 新增按钮操作 */
handleAdd() {
this.opens = true;
},
handleUpd() {
this.open = true;
},
cance() {
this.open = false;
this.reset();
},
handleUpdate(data) {
this.fore = data
this.open = true
},
submitAdd() {
getAddTrouble(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.opens = false;
this.getList();
});
this.opens = true;
},
submitUpd() {
getUpdateTrouble(this.fore).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
this.open = true;
},
handleDel() {
},
handleDelet(troubleId) {
getDelTrouble(troubleId).then(res =>{
this.$modal.msgSuccess("删除成功");
this.getList();
})
},
handleExe(){
},
changTypeId() {
getTroubleType().then(res => {
this.type = res
})
},
changGradeId() {
getTroubleGrade().then(res => {
this.grade = res
})
},
handleSize(val) {
this.queryParams.pageSize = val
this.getList()
},
handleCurrent(val) {
this.queryParams.pageNum = val
this.getList()
}
},
// - 访this",
created() {
this.getList()
this.changTypeId()
this.changGradeId()
},
// - 访DOM",
mounted() {

View File

@ -3,14 +3,33 @@
<h1>车辆管理页面</h1>
<!-- {{ vehicleList }}-->
<!-- 列表表单-->
<el-form ref="form" :model="vehicleListParams" label-width="80px">
<el-form-item label="类型">
<el-select v-model="vehicleListParams.vehicleType" clearable placeholder="车辆类型" @change="getVehicleList">
<el-option v-for="item in vehicleTypes" :key="item.vehicleTypeId" :label="item.vehicleTypeName"
:value="item.vehicleTypeId"></el-option>
</el-select>
</el-form-item>
<el-form-item label="状态">
<el-select v-model="vehicleListParams.vehicleState" clearable placeholder="车辆状态" @change="getVehicleList">
<el-option key="1" label="在线" value="1"></el-option>
<el-option key="0" label="离线" value="0"></el-option>
</el-select>
</el-form-item>
</el-form>
<el-button type="primary" icon="el-icon-edit" @click="toInsert"></el-button>
<!-- 列表-->
<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>
<!-- TODO 暂时显示车辆类型id待处理-->
<el-table-column label="车辆类型" width="90" align="center">
<template slot-scope="scope">
<span style="margin-left: 10px">{{ scope.row.vehicleTypeName }}</span>
@ -36,11 +55,11 @@
<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>-->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">
@ -53,11 +72,93 @@
</el-table-column>
<el-table-column label="操作" width="180" align="center">
<template slot-scope="scope">
<el-button size="mini" @click="">编辑</el-button>
<el-button size="mini" @click="toEdit(scope.row)"></el-button>
<el-button size="mini" type="danger" @click="deleteById(scope.row.vehicleId)"></el-button>
</template>
</el-table-column>
</el-table>
<!-- 分页-->
<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>
<!-- 编辑对话框-->
<el-dialog :title=title :visible.sync="dialogEdit">
<el-form :model="vehicle">
<el-form-item label="车辆类型" :label-width="formLabelWidth">
<el-select v-model="vehicle.vehicleType" placeholder="车辆类型">
<el-option v-for="item in vehicleTypes" :key="item.vehicleTypeId" :label="item.vehicleTypeName"
:value="item.vehicleTypeId"></el-option>
</el-select>
</el-form-item>
<el-form-item label="电机厂商" :label-width="formLabelWidth">
<el-input v-model="vehicle.motorManufacturer" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="电池厂商" :label-width="formLabelWidth">
<el-input v-model="vehicle.batteryManufacturer" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="电机编号" :label-width="formLabelWidth">
<el-input v-model="vehicle.motorNumber" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="电池编号" :label-width="formLabelWidth">
<el-input v-model="vehicle.batteryNumber" autocomplete="off"></el-input>
</el-form-item>
<!-- 标签复选框 需要在点击编辑框的时候查询当前车说绑定的标识-->
<el-checkbox-group v-model="vehicle.logoIds">
<el-checkbox :label=1>标识1</el-checkbox>
<el-checkbox :label=2>标识2</el-checkbox>
<el-checkbox :label=3>标识3</el-checkbox>
</el-checkbox-group>
</el-form>
<!-- {{ vehicle }}-->
<div slot="footer" class="dialog-footer">
<el-button @click="reset()"> </el-button>
<el-button type="primary" @click="editById"> </el-button>
</div>
</el-dialog>
<!-- 新增对话框-->
<el-dialog :title=title :visible.sync="dialogInsert">
<el-form :model="vehicle">
<el-form-item label="车辆类型" :label-width="formLabelWidth">
<el-select v-model="vehicle.vehicleType" placeholder="车辆类型">
<el-option v-for="item in vehicleTypes" :key="item.vehicleTypeId" :label="item.vehicleTypeName"
:value="item.vehicleTypeId"></el-option>
</el-select>
</el-form-item>
<el-form-item label="电机厂商" :label-width="formLabelWidth">
<el-input v-model="vehicle.motorManufacturer" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="电池厂商" :label-width="formLabelWidth">
<el-input v-model="vehicle.batteryManufacturer" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="电机编号" :label-width="formLabelWidth">
<el-input v-model="vehicle.motorNumber" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="电池编号" :label-width="formLabelWidth">
<el-input v-model="vehicle.batteryNumber" autocomplete="off"></el-input>
</el-form-item>
<!-- 标签复选框-->
<el-checkbox-group v-model="vehicle.logoIds">
<el-checkbox :label=1>标识1</el-checkbox>
<el-checkbox :label=2>标识2</el-checkbox>
<el-checkbox :label=3>标识3</el-checkbox>
</el-checkbox-group>
</el-form>
<!-- {{ vehicle }}-->
<div slot="footer" class="dialog-footer">
<el-button @click="reset()"> </el-button>
<el-button type="primary" @click="insert"> </el-button>
</div>
</el-dialog>
</div>
@ -66,7 +167,7 @@
<script>
//jsjsjson,
//import from ',
import {deleteById, list} from "@/api/system/vehicle";
import {deleteById, editById, getBindLogoByVehicleId, getVehicleTypes, insert, list} from "@/api/couplet/vehicle";
export default {
//import使"
@ -78,6 +179,12 @@ export default {
//
vehicleList: [],
//
total: 0,
//
vehicleTypes: [],
//
vehicleListParams: {
//
@ -85,6 +192,10 @@ export default {
// 0线 1线
vehicleState: '',
pageNum: 1,
pageSize: 5,
},
//
@ -107,9 +218,18 @@ export default {
//
batteryNumber: '',
//
logoIds: [],
},
//
formLabelWidth: '120px',
dialogEdit: false,
dialogInsert: false,
//
title: ""
};
},
@ -123,7 +243,27 @@ export default {
getVehicleList() {
list(this.vehicleListParams).then(
res => {
this.vehicleList = res.data;
this.vehicleList = res.data.list;
this.total = res.data.total;
}
)
},
//
handleSizeChange(val) {
this.vehicleListParams.pageSize = val;
this.getVehicleList();
},
handleCurrentChange(val) {
this.vehicleListParams.pageNum = val;
this.getVehicleList();
},
//
getVehicleTypes() {
getVehicleTypes().then(
res => {
this.vehicleTypes = res.data;
}
)
},
@ -159,11 +299,97 @@ export default {
})
})
},
//
toEdit(row) {
this.reset()
//
this.vehicle.vehicleId = row.vehicleId;
this.vehicle.vehicleType = row.vehicleType;
this.vehicle.motorManufacturer = row.motorManufacturer;
this.vehicle.batteryManufacturer = row.batteryManufacturer;
this.vehicle.motorNumber = row.motorNumber;
this.vehicle.batteryNumber = row.batteryNumber;
//
getBindLogoByVehicleId(row.vehicleId).then(
res => {
//
this.vehicle.logoIds = res.data;
}
)
this.title = "编辑车辆"
this.dialogEdit = true;
},
//
reset() {
this.dialogEdit = false
this.dialogInsert = false
this.vehicle = {
//id
vehicleId: '',
//
vehicleType: '',
//
motorManufacturer: '',
//
batteryManufacturer: '',
//
motorNumber: '',
//
batteryNumber: '',
//
logoIds: [],
}
// this.$message.info("")
},
//
editById() {
editById(this.vehicle).then(
res => {
if (res.code == 200) {
this.dialogEdit = false;
this.getVehicleList();
this.$message.success("编辑成功");
} else {
this.$message.error("编辑失败");
}
}
);
},
//
toInsert() {
this.reset()
this.title = "新增车辆"
this.dialogInsert = true;
},
//
insert() {
insert(this.vehicle).then(
res => {
if (res.code == 200) {
this.dialogInsert = false;
this.getVehicleList();
this.$message.success("新增成功");
} else {
this.$message.error("新增失败");
}
}
)
},
},
// - 访this",
created() {
//
this.getVehicleList()
//
this.getVehicleTypes()
},
// - 访DOM",
mounted() {