feat(): 实时数据提交

master
baize 2024-06-18 18:56:44 +08:00
parent 1abcbca4fc
commit 67e10b08d2
6 changed files with 322 additions and 17 deletions

View File

@ -0,0 +1,16 @@
import request from '@/utils/request'
// 查询车辆录入列表
export function listVehicle(data) {
return request({
url: '/customerBusiness/fence/getConn',
method: 'post',
data: data,
headers: {
'enterprise-code': 'liu_45'
}
})
}

View File

@ -7,7 +7,7 @@ export function listVehicle(query) {
method: 'get', method: 'get',
params: query, params: query,
headers: { headers: {
'enterprise-code': 'liu_42' 'enterprise-code': 'liu_45'
} }
}) })
} }
@ -18,7 +18,7 @@ export function getVehicle(id) {
url: '/customerBusiness/vehicle/' + id, url: '/customerBusiness/vehicle/' + id,
method: 'get', method: 'get',
headers: { headers: {
'enterprise-code': 'liu_42' 'enterprise-code': 'liu_45'
} }
}) })
} }
@ -30,7 +30,7 @@ export function addVehicle(data) {
method: 'post', method: 'post',
data: data, data: data,
headers: { headers: {
'enterprise-code': 'liu_42' 'enterprise-code': 'liu_45'
} }
}) })
} }
@ -42,7 +42,7 @@ export function updateVehicle(data) {
method: 'put', method: 'put',
data: data, data: data,
headers: { headers: {
'enterprise-code': 'liu_42' 'enterprise-code': 'liu_45'
} }
}) })
} }
@ -53,7 +53,7 @@ export function delVehicle(id) {
url: '/customerBusiness/vehicle/' + id, url: '/customerBusiness/vehicle/' + id,
method: 'delete', method: 'delete',
headers: { headers: {
'enterprise-code': 'liu_42' 'enterprise-code': 'liu_45'
} }
}) })
} }

View File

@ -57,9 +57,9 @@ service.interceptors.request.use(config => {
const s_time = sessionObj.time; // 请求时间 const s_time = sessionObj.time; // 请求时间
const interval = 1000; // 间隔时间(ms),小于此时间视为重复提交 const interval = 1000; // 间隔时间(ms),小于此时间视为重复提交
if (s_data === requestObj.data && requestObj.time - s_time < interval && s_url === requestObj.url) { if (s_data === requestObj.data && requestObj.time - s_time < interval && s_url === requestObj.url) {
const message = '数据正在处理,请勿重复提交'; // const message = '数据正在处理,请勿重复提交';
console.warn(`[${s_url}]: ` + message) // console.warn(`[${s_url}]: ` + message)
return Promise.reject(new Error(message)) // return Promise.reject(new Error(message))
} else { } else {
cache.session.setJSON('sessionObj', requestObj) cache.session.setJSON('sessionObj', requestObj)
} }

View File

@ -0,0 +1,181 @@
<template>
<div class="app-container">
<span v-if="enterprise.enterpriseStatus==='N'">
<el-table :data="tableData" >
<el-table-column label="企业名称" align="center" prop="ebterpriseName" />
<el-table-column label="法定代表人" align="center" prop="legalPerson" />
<el-table-column label="企业成立时间" align="center" prop="estabinessDate" width="180"/>
<el-table-column label="注册地址" align="center" prop="address" />
<el-table-column label="企业联系方式" align="center" prop="contactPhone" />
<el-table-column label="公司邮箱" align="center" prop="email" />
</el-table>
</span>
<span v-if="enterprise.enterpriseStatus!=='N'">
<span>{{"企业信息未完善"}}</span>
<span>
<el-button
size="mini"
type="primary"
@click="handleUpdate(open,enterprise)"
>完善信息</el-button>
</span>
</span>
<!-- 添加或修改车辆运营平台对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="企业名称" prop="ebterpriseName">
<el-input v-model="form.ebterpriseName" placeholder="请输入企业名称" />
</el-form-item>
<el-form-item label="法定代表人" prop="legalPerson">
<el-input v-model="form.legalPerson" placeholder="请输入法定代表人" />
</el-form-item>
<el-form-item label="经营执照凭证号码" prop="businessLincenseNumber">
<el-input v-model="form.businessLincenseNumber" placeholder="请输入经营执照凭证号码" />
</el-form-item>
<el-form-item label="企业成立时间" prop="estabinessDate">
<el-date-picker clearable
v-model="form.estabinessDate"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择企业成立时间">
</el-date-picker>
</el-form-item>
<el-form-item label="经营范围" prop="businessScope">
<el-input v-model="form.businessScope" placeholder="请输入经营范围" />
</el-form-item>
<el-form-item label="注册地址" prop="address">
<el-input v-model="form.address" placeholder="请输入注册地址" />
</el-form-item>
<el-form-item label="企业联系方式" prop="contactPhone">
<el-input v-model="form.contactPhone" placeholder="请输入企业联系方式" />
</el-form-item>
<el-form-item label="公司邮箱" prop="email">
<el-input v-model="form.email" placeholder="请输入公司邮箱" />
</el-form-item>
<el-form-item label="企业入驻平台时期" prop="registrationDate">
<el-date-picker clearable
v-model="form.registrationDate"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择企业入驻平台时期">
</el-date-picker>
</el-form-item>
<el-form-item label="企业认证id" prop="certificationId">
<el-input v-model="form.certificationId" placeholder="请输入企业认证id" />
</el-form-item>
<el-form-item label="认证时间" prop="authenticationDate">
<el-date-picker clearable
v-model="form.authenticationDate"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择认证时间">
</el-date-picker>
</el-form-item>
<el-form-item label="开通服务id" prop="openServerId">
<el-input v-model="form.openServerId" placeholder="请输入开通服务id" />
</el-form-item>
<el-form-item label="增值服务id" prop="addServerId">
<el-input v-model="form.addServerId" placeholder="请输入增值服务id" />
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" placeholder="请输入备注" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import {selectByName} from "@/api/customerBusiness/fence";
import {parseTime} from "../../../utils/muyu";
import {getCar, updateCar, updateEnterprise} from "@/api/customerBusiness/vehicle";
export default {
name: "Car",
dicts: ['service_level', 'enterprise_status'],
data() {
return {
//
loading: true,
enterprise:{},
//
tableData: [],
//
title: "",
//
open: false,
//
form: {},
//
rules: {
}
};
},
created() {
this.selectByName();
},
methods: {
parseTime,
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {
id: null,
ebterpriseName: null,
legalPerson: null,
businessLincenseNumber: null,
estabinessDate: null,
businessScope: null,
address: null,
contactPhone: null,
email: null,
enterpriseStatus: null,
registrationDate: null,
certificationId: null,
authenticationDate: null,
serviceLevel: null,
openServerId: null,
addServerId: null,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null,
remark: null
};
this.resetForm("form");
},
/** 修改按钮操作 */
handleUpdate(open,row) {
// this.reset();
this.form = row;
this.open = true;
this.title = "修改车辆运营平台";
},
selectByName() {
selectByName().then(response => {
this.enterprise = response.data;
this.tableData.push(this.enterprise)
});
},
/** 提交按钮 */
submitForm() {
updateEnterprise(this.form).then(response =>{
console.log(this.form)
this.$modal.msgSuccess("修改成功");
this.open = false;
this.selectByName();
})
}
}
};
</script>

View File

@ -0,0 +1,93 @@
<template>
<div>
<el-table
:data="tableData"
style="width: 100%">
<el-table-column label="车辆识别号" width="180">
<template slot-scope="scope">
{{ scope.row.vin }}
</template>
</el-table-column>
<el-table-column label="时间戳" width="180">
<template slot-scope="scope" >
{{ parseTime(scope.row.timestamp, '{y}-{m}-{d}:{h}:{i}:{s}') }}
</template>
</el-table-column>
<el-table-column label="经度" width="180">
<template slot-scope="scope">
{{ scope.row.longitude }}
</template>
</el-table-column>
<el-table-column label="纬度" width="180">
<template slot-scope="scope">
{{ scope.row.latitude }}
</template>
</el-table-column>
<el-table-column label="速度" width="180">
<template slot-scope="scope">
{{ scope.row.speed }}
</template>
</el-table-column>
<el-table-column label="里程" width="180">
<template slot-scope="scope">
{{ scope.row.mileage }}
</template>
</el-table-column>
<el-table-column label="电压" width="180">
<template slot-scope="scope">
{{ scope.row.voltage }}
</template>
</el-table-column>
</el-table>
</div>
</template>
<script>
import {listVehicle} from "@/api/customerBusiness/realtime";
import {parseTime} from "../../../utils/muyu";
export default {
name: "Realtime",
data() {
return {
marker: null,
lineArr: [
[116.478935,39.997761],
// ...
[116.484648,39.999861]
],
map: null,
polyline: null,
passedPolyline: null,
tableData: [],
car: {},
timer:"",
vin:"",
};
},
created() {
this.vin = this.$route.params.vin;
console.log(this.vin)
this.start();
},
methods: {
parseTime,
start(){
this.timer = setInterval(() => {
listVehicle(this.vin).then(response => {
this.tableData=[];
console.log(response.data)
this.car=response.data
this.tableData.push(this.car)
});
},1000)
},
},
};
</script>

View File

@ -159,15 +159,15 @@
<el-table-column label="变速器类型" align="center" prop="transmission" /> <el-table-column label="变速器类型" align="center" prop="transmission" />
<el-table-column label="驱动方式" align="center" prop="driveType" /> <el-table-column label="驱动方式" align="center" prop="driveType" />
<el-table-column label="行驶里程" align="center" prop="mileage" /> <el-table-column label="行驶里程" align="center" prop="mileage" />
<el-table-column label="注册日期" align="center" prop="registrationDate" width="180"> <!-- <el-table-column label="注册日期" align="center" prop="registrationDate" width="180">-->
<template slot-scope="scope"> <!-- <template slot-scope="scope">-->
<span>{{ parseTime(scope.row.registrationDate, '{y}-{m}-{d}') }}</span> <!-- <span>{{ parseTime(scope.row.registrationDate, '{y}-{m}-{d}') }}</span>-->
</template> <!-- </template>-->
</el-table-column> <!-- </el-table-column>-->
<el-table-column label="车牌号码" align="center" prop="licenseNumber" /> <!-- <el-table-column label="车牌号码" align="center" prop="licenseNumber" />-->
<el-table-column label="持有者" align="center" prop="holder" /> <!-- <el-table-column label="持有者" align="center" prop="holder" />-->
<el-table-column label="车辆类型" align="center" prop="vehicleType" /> <!-- <el-table-column label="车辆类型" align="center" prop="vehicleType" />-->
<el-table-column label="备注" align="center" prop="remark" /> <!-- <el-table-column label="备注" align="center" prop="remark" />-->
<el-table-column label="操作" align="center" class-name="small-padding fixed-width"> <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button
@ -184,6 +184,11 @@
@click="handleDelete(scope.row)" @click="handleDelete(scope.row)"
v-hasPermi="['customerBusiness:vehicle:remove']" v-hasPermi="['customerBusiness:vehicle:remove']"
>删除</el-button> >删除</el-button>
<el-button
size="mini"
type="text"
@click="realTime(scope.row)"
>实时数据</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -317,6 +322,16 @@ export default {
this.getList(); this.getList();
}, },
methods: { methods: {
//
realTime(row){
console.log(row)
this.$router.push({
name: 'Realtime',
params: { vin: row }
})
},
/** 查询车辆录入列表 */ /** 查询车辆录入列表 */
getList() { getList() {
this.loading = true; this.loading = true;