Compare commits

..

No commits in common. "master" and "dev.saas" have entirely different histories.

13 changed files with 199 additions and 217 deletions

View File

@ -3,7 +3,7 @@ import request from '@/utils/request'
// 查询车辆基础信息列表
export function listCar(query) {
return request({
url: '/saas/car/list',
url: '/car/car/list',
method: 'get',
params: query
})
@ -12,7 +12,7 @@ export function listCar(query) {
// 查询车辆基础信息详细
export function getCar(id) {
return request({
url: '/saas/car/' + id,
url: '/car/car/' + id,
method: 'get'
})
}
@ -20,7 +20,7 @@ export function getCar(id) {
// 新增车辆基础信息
export function addCar(data) {
return request({
url: '/saas/car',
url: '/car/car',
method: 'post',
data: data
})
@ -29,7 +29,7 @@ export function addCar(data) {
// 修改车辆基础信息
export function updateCar(data) {
return request({
url: '/saas/car',
url: '/car/car',
method: 'put',
data: data
})
@ -38,7 +38,16 @@ export function updateCar(data) {
// 删除车辆基础信息
export function delCar(id) {
return request({
url: '/saas/car/' + id,
url: '/car/car/' + id,
method: 'delete'
})
}
// 查询所有车辆类型
export function getSysType() {
return request({
url: '/car/sysType/list' ,
method: 'get'
})
}

View File

@ -3,7 +3,7 @@ import request from '@/utils/request'
// 报文模版列表
export function templateList() {
return request({
url: 'saas/messageTemplate/list',
url: 'car/messageTemplate/list',
method: 'POST',
})
}
@ -11,7 +11,7 @@ export function templateList() {
//添加报文模版
export function addTemplate(data) {
return request({
url: 'saas/messageTemplate/',
url: 'car/messageTemplate/',
method: 'POST',
data: data
})
@ -20,7 +20,7 @@ export function addTemplate(data) {
// 报文数据列表
export function valueList(data) {
return request({
url: 'saas/messageValue/list',
url: 'car/messageValue/list',
method: 'POST',
data: data
})
@ -29,8 +29,16 @@ export function valueList(data) {
// 添加报文数据
export function addValue(data) {
return request({
url: 'saas/messageValue/',
url: 'car/messageValue/',
method: 'POST',
data: data
})
}
// 根据报文模版类型Id查询数据
export function findByTemplateValue(id) {
return request({
url: 'car/messageValue/templateId/'+id,
method: 'POST'
})
}

View File

@ -1,10 +0,0 @@
import request from "@/utils/request";
//查询所有的车辆类型
export function listType(){
return request({
url: '/saas/sysType/list',
method: 'get'
})
}

View File

@ -2,7 +2,7 @@ import request from '@/utils/request'
// 登录方法
export function login(username, password,firmId, code, uuid) {
export function login(username, password, code, uuid) {
return request({
url: '/auth/login',
headers: {
@ -10,7 +10,7 @@ export function login(username, password,firmId, code, uuid) {
repeatSubmit: false
},
method: 'post',
data: {username, password,firmId, code, uuid}
data: {username, password, code, uuid}
})
}

View File

@ -3,7 +3,7 @@ import request from '@/utils/request'
// 查询预警日志列表
export function listLogs(query) {
return request({
url: '/saas/logs/list',
url: '/warn/logs/list',
method: 'get',
params: query
})
@ -12,7 +12,7 @@ export function listLogs(query) {
// 查询预警日志详细
export function getLogs(id) {
return request({
url: '/saas/logs/' + id,
url: '/warn/logs/' + id,
method: 'get'
})
}
@ -20,7 +20,7 @@ export function getLogs(id) {
// 新增预警日志
export function addLogs(data) {
return request({
url: '/saas/logs',
url: '/warn/logs',
method: 'post',
data: data
})
@ -29,7 +29,7 @@ export function addLogs(data) {
// 修改预警日志
export function updateLogs(data) {
return request({
url: '/saas/logs',
url: '/warn/logs',
method: 'put',
data: data
})
@ -38,7 +38,7 @@ export function updateLogs(data) {
// 删除预警日志
export function delLogs(id) {
return request({
url: '/saas/logs/' + id,
url: '/warn/logs/' + id,
method: 'delete'
})
}

View File

@ -3,7 +3,7 @@ import request from '@/utils/request'
// 查询预警规则列表
export function listRule(query) {
return request({
url: '/saas/rule/list',
url: '/warn/rule/list',
method: 'get',
params: query
})
@ -12,7 +12,7 @@ export function listRule(query) {
// 查询预警规则详细
export function getRule(id) {
return request({
url: '/saas/rule/' + id,
url: '/warn/rule/' + id,
method: 'get'
})
}
@ -20,7 +20,7 @@ export function getRule(id) {
// 新增预警规则
export function addRule(data) {
return request({
url: '/saas/rule',
url: '/warn/rule',
method: 'post',
data: data
})
@ -29,7 +29,7 @@ export function addRule(data) {
// 修改预警规则
export function updateRule(data) {
return request({
url: '/saas/rule',
url: '/warn/rule',
method: 'put',
data: data
})
@ -38,7 +38,7 @@ export function updateRule(data) {
// 删除预警规则
export function delRule(id) {
return request({
url: '/saas/rule/' + id,
url: '/warn/rule/' + id,
method: 'delete'
})
}

View File

@ -1,10 +1,17 @@
import request from '@/utils/request'
// //根据车辆类型
// export function findBySysTypeId(id) {
// return request({
// url: 'car/sysType/findBySysTypeId/' + id,
// method: "POST"
// })
// }
// 查询预警策略列表
export function listStrategy(query) {
return request({
url: '/saas/strategy/list',
url: '/warn/strategy/list',
method: 'get',
params: query
})
@ -13,7 +20,7 @@ export function listStrategy(query) {
// 查询预警策略详细
export function getStrategy(id) {
return request({
url: '/saas/strategy/' + id,
url: '/warn/strategy/' + id,
method: 'get'
})
}
@ -21,7 +28,7 @@ export function getStrategy(id) {
// 新增预警策略
export function addStrategy(data) {
return request({
url: '/saas/strategy',
url: '/warn/strategy',
method: 'post',
data: data
})
@ -30,7 +37,7 @@ export function addStrategy(data) {
// 修改预警策略
export function updateStrategy(data) {
return request({
url: '/saas/strategy',
url: '/warn/strategy',
method: 'put',
data: data
})
@ -39,7 +46,15 @@ export function updateStrategy(data) {
// 删除预警策略
export function delStrategy(id) {
return request({
url: '/saas/strategy/' + id,
url: '/warn/strategy/' + id,
method: 'delete'
})
}

View File

@ -1,10 +0,0 @@
import request from '@/utils/request'
// 查询用户列表
export function firmList() {
return request({
url: '/system/sysFirm/firmList',
method: 'get'
})
}

View File

@ -40,11 +40,10 @@ const user = {
Login({commit}, userInfo) {
const username = userInfo.username.trim()
const password = userInfo.password
const firmId = userInfo.firmId;
const code = userInfo.code
const uuid = userInfo.uuid
return new Promise((resolve, reject) => {
login(username, password,firmId, code, uuid).then(res => {
login(username, password, code, uuid).then(res => {
let data = res.data
setToken(data.access_token)
commit('SET_TOKEN', data.access_token)

View File

@ -1,6 +1,6 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="82px">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="车辆VIN码" prop="carVin">
<el-input
v-model="queryParams.carVin"
@ -40,8 +40,7 @@
size="mini"
@click="handleAdd"
v-hasPermi="['car:car:add']"
>新增
</el-button>
>新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
@ -52,8 +51,7 @@
:disabled="single"
@click="handleUpdate"
v-hasPermi="['car:car:edit']"
>修改
</el-button>
>修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
@ -64,8 +62,7 @@
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['car:car:remove']"
>删除
</el-button>
>删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
@ -75,8 +72,7 @@
size="mini"
@click="handleExport"
v-hasPermi="['car:car:export']"
>导出
</el-button>
>导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
@ -86,9 +82,13 @@
<el-table-column label="自增主键" align="center" prop="id" />
<el-table-column label="车辆VIN码" align="center" prop="carVin" />
<el-table-column label="车辆车牌号" align="center" prop="carPlate" />
<el-table-column label="车辆品牌" align="center" prop="carBrand"/>
<el-table-column label="车辆品牌;" align="center" prop="carBrand" />
<el-table-column label="车辆型号" align="center" prop="carModel" />
<el-table-column label="车辆车型" align="center" prop="carType" />
<el-table-column label="车辆电机厂商" align="center" prop="carMotorManufacturer" />
<el-table-column label="电机型号" align="center" prop="carMotorModel" />
<el-table-column label="车辆电池厂商" align="center" prop="carBatteryManufacturer" />
<el-table-column label="电池型号" align="center" prop="carBatteryModel" />
<el-table-column label="围栏组编码" align="center" prop="groupCode" />
<el-table-column label="启用状态" align="center" prop="state" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
@ -99,22 +99,21 @@
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['car:car:edit']"
>修改
</el-button>
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['car:car:remove']"
>删除
</el-button>
<!-- <el-button-->
<!-- size="mini"-->
<!-- type="text"-->
<!-- icon="el-icon-s-order"-->
<!-- @click="handleAddStrategy(scope.row)"-->
<!-- >详细信息</el-button>-->
>删除</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-plus"
@click="handleAddStrategy(scope.row)"
v-hasPermi="['car:car:add']"
>添加策略信息</el-button>
</template>
</el-table-column>
</el-table>
@ -129,28 +128,24 @@
<!-- 添加或修改车辆基础信息对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="82px">
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="车辆VIN码" prop="carVin">
<el-input v-model="form.carVin" placeholder="请输入车辆VIN码" />
</el-form-item>
<el-form-item label="车辆车牌号" prop="carPlate">
<el-input v-model="form.carPlate" placeholder="请输入车辆车牌号" />
</el-form-item>
<el-form-item label="车辆品牌" prop="carBrand">
<el-input v-model="form.carBrand" placeholder="请输入车辆品牌"/>
<el-form-item label="车辆电机厂商" prop="carMotorManufacturer">
<el-input v-model="form.carMotorManufacturer" placeholder="请输入车辆电机厂商" />
</el-form-item>
<el-form-item label="车辆型号" prop="carModel">
<el-input v-model="form.carModel" placeholder="请输入车辆型号"/>
<el-form-item label="电机型号" prop="carMotorModel">
<el-input v-model="form.carMotorModel" placeholder="请输入电机型号" />
</el-form-item>
<el-form-item label="车辆车型" prop="carType">
<el-select v-model="form.carType" placeholder="请选择报文模版id" :change="getCarTypeList">
<el-option
v-for="item in sysCarType"
:key="item.id"
:label="item.sysTypeName"
:value="item.id">
</el-option>
</el-select>
<el-form-item label="车辆电池厂商" prop="carBatteryManufacturer">
<el-input v-model="form.carBatteryManufacturer" placeholder="请输入车辆电池厂商" />
</el-form-item>
<el-form-item label="电池型号" prop="carBatteryModel">
<el-input v-model="form.carBatteryModel" placeholder="请输入电池型号" />
</el-form-item>
<el-form-item label="围栏组编码" prop="groupCode">
<el-input v-model="form.groupCode" placeholder="请输入围栏组编码" />
@ -161,16 +156,6 @@
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
</el-form-item>
<el-form-item label="策略信息" prop="strategyId">
<el-select v-model="form.msgId" placeholder="请选择报文模版id">
<el-option
v-for="item in strategyList"
:key="item.id"
:label="item.strategyName"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
@ -178,13 +163,39 @@
</div>
</el-dialog>
<!-- 添加预警策略对话框 -->
<el-dialog :title="title" :visible.sync="beginOpen" width="500px" append-to-body>
<el-form ref="formList" :model="formList" :rules="rules" label-width="80px">
<el-form-item label="车辆类型id" prop="carTypeId">
<el-input v-model="formList.carTypeId" placeholder="请输入车辆类型id" />
</el-form-item>
<el-form-item label="报文模版id" prop="msgId">
<el-select v-model="formList.msgId" placeholder="请选择报文模版id">
<el-option
v-for="item in templateList"
:key="item.messageTemplateId"
:label="item.messageTemplateName"
:value="item.messageTemplateId">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="策略名称" prop="strategyName">
<el-input v-model="formList.strategyName" placeholder="请输入策略名称" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitAddForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import {listCar, getCar, delCar, addCar, updateCar} from "/src/api/car/car";
import {addStrategy, listStrategy} from "@/api/platform/strategy";
import {listType} from "@/api/car/type";
import {templateList} from "@/api/car/message/template";
import {addStrategy} from "@/api/platform/strategy";
export default {
name: "Car",
@ -205,8 +216,6 @@ export default {
//
carList: [],
templateList:[],
//
sysCarType: [],
//
title: "",
//
@ -224,25 +233,15 @@ export default {
state: null,
},
//
form: {
carVin: null,
carPlate: null,
carBrand: null,
carModel: null,
carType: null,
groupCode: null,
state: null,
remark: null,
msgId: null
},
form: {},
formList:{},
//
rules: {}
rules: {
}
};
},
created() {
this.getList();
this.getListType();
},
methods: {
/** 查询车辆基础信息列表 */
@ -254,11 +253,6 @@ export default {
this.loading = false;
});
},
getListType() {
listType().then(res => {
this.sysCarType = res.data.rows;
})
},
//
cancel() {
this.open = false;
@ -273,6 +267,12 @@ export default {
carBrand: null,
carModel: null,
carType: null,
carLastJoinTime: null,
carLastOfflineTime: null,
carMotorManufacturer: null,
carMotorModel: null,
carBatteryManufacturer: null,
carBatteryModel: null,
groupCode: null,
state: null,
createBy: null,
@ -281,6 +281,7 @@ export default {
updateTime: null,
remark: null
};
this.resetForm("form");
},
//
@ -314,11 +315,21 @@ export default {
this.open = true;
this.title = "添加车辆基础信息";
},
/** 离焦获取策略信息 **/
getCarTypeList(carType) {
listStrategy({sysTypeId: carType}).then(res => {
this.strategyList = res.data;
})
/** 添加策略信息按钮 **/
handleAddStrategy(row) {
this.init();
const id = row.id || this.ids
getCar(id).then(response => {
this.formList.carTypeId = response.data.id;
this.beginOpen = true;
this.title ="添加策略信息";
});
templateList().then(response => {
this.templateList = response.data;
console.log(this.templateList);
});
},
/** 修改按钮操作 */
handleUpdate(row) {
@ -328,14 +339,8 @@ export default {
this.form = response.data;
this.open = true;
this.title = "修改车辆基础信息";
this.listStrategy(response.data.carType)
});
},
listStrategy(sysTypeId) {
listStrategy({sysTypeId: sysTypeId}).then(res => {
this.strategyList = res.data.rows;
})
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
@ -356,7 +361,14 @@ export default {
}
});
},
/** 添加策略信息**/
submitAddForm(){
addStrategy(this.formList).then(response => {
this.$modal.msgSuccess("添加策略信息成功");
this.beginOpen = false;
this.getList();
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
@ -365,9 +377,9 @@ export default {
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {
});
}).catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
this.download('car/car/export', {

View File

@ -2,17 +2,6 @@
<div class="login">
<el-form ref="loginForm" :model="loginForm" :rules="loginRules" class="login-form">
<h3 class="title">若依后台管理系统</h3>
<el-form-item prop="firmId">
<el-select v-model="loginForm.firmId" placeholder="请选择公司" style="width: 350px">
<el-option
v-for="item in firmList"
:key="item.id"
:label="item.name"
:value="item.id">
</el-option>
<svg-icon slot="prefix" class="el-input__icon input-icon" icon-class="user"/>
</el-select>
</el-form-item>
<el-form-item prop="username">
<el-input
v-model="loginForm.username"
@ -76,13 +65,11 @@
import {getCodeImg} from "@/api/login";
import Cookies from "js-cookie";
import {decrypt, encrypt} from '@/utils/jsencrypt'
import { firmList } from '@/api/system/firm'
export default {
name: "Login",
data() {
return {
firmList: [],
codeUrl: "",
loginForm: {
username: "admin",
@ -104,7 +91,7 @@ export default {
//
captchaEnabled: false,
//
register: true,
register: false,
redirect: undefined
};
},
@ -119,15 +106,8 @@ export default {
created() {
this.getCode();
this.getCookie();
this.getFirmList();
},
methods: {
getFirmList(){
firmList().then(response => {
this.firmList = response.data;
console.log(this.firmList)
})
},
getCode() {
getCodeImg().then(res => {
this.captchaEnabled = res.data.captchaEnabled === undefined ? true : res.data.captchaEnabled;

View File

@ -33,6 +33,22 @@
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="最大值" prop="maxValue">
<el-input
v-model="queryParams.maxValue"
placeholder="请输入最大值"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="最小值" prop="minValue">
<el-input
v-model="queryParams.minValue"
placeholder="请输入最小值"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button>
@ -93,9 +109,8 @@
<el-table-column label="报文数据类型id" align="center" prop="msgTypeId" />
<el-table-column label="滑窗时间" align="center" prop="slideTime" />
<el-table-column label="滑窗频率" align="center" prop="slideFrequency" />
<el-table-column label="数据频率名称" align="center" prop="slideData" />
<el-table-column label="数据频率最大值" align="center" prop="slideMaxNum" />
<el-table-column label="数据频率最小值" align="center" prop="slideMinNum" />
<el-table-column label="最大值" align="center" prop="maxValue" />
<el-table-column label="最小值" align="center" prop="minValue" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
@ -133,7 +148,8 @@
v-for="item in strategyList"
:key="item.id"
:label="item.strategyName"
:value="item.id">
:value="item.id"
>
</el-option>
</el-select>
</el-form-item>
@ -141,13 +157,14 @@
<el-input v-model="form.ruleName" placeholder="请输入规则名称" />
</el-form-item>
<el-form-item label="报文数据类型id" prop="msgTypeId">
<el-select ref="select" v-model="form.msgTypeId" multiple placeholder="请选择报文数据名称">
<el-select v-model="form.messageId" placeholder="请选择报文数据名称">
<el-option
ref="multipleTable"
tooltip-effect="dark"
v-for="item in templateValueList"
:key="item.messageId"
:label="item.messageCode"
:value="item.messageId">
<el-checkbox @change="clickBox(item.messageId)" :value ="value.includes(item.messageId)" :label="item.messageCode"></el-checkbox>
</el-option>
</el-select>
</el-form-item>
@ -165,16 +182,7 @@
<el-option value="1:60">1:60</el-option>
</el-select>
</el-form-item>
<el-form-item label="数据频率名称" prop="slideData">
<el-input v-model="form.slideData" placeholder="请输入数据频率名称" />
</el-form-item>
<el-form-item label="数据频率最大值" prop="slideMaxNum">
<el-input v-model="form.slideMaxNum" placeholder="请输入数据频率最大值" />
</el-form-item>
<el-form-item label="数据频率最小值" prop="slideMinNum">
<el-input v-model="form.slideMinNum" placeholder="请输入数据频率最小值" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
@ -188,7 +196,6 @@
import { listRule, getRule, delRule, addRule, updateRule } from "/src/api/platform/rule";
import { listStrategy} from "@/api/platform/strategy";
import {valueList} from "@/api/car/message/template";
import item from "@/layout/components/Sidebar/Item.vue";
export default {
name: "Rule",
@ -202,10 +209,8 @@ export default {
single: true,
//
multiple: true,
props: { multiple: true },
//
showSearch: true,
//
total: 0,
//
@ -214,7 +219,6 @@ export default {
sysTypeList :[],
//
templateValueList:[],
value:[],
//
templateList :[],
@ -230,8 +234,6 @@ export default {
title: "",
//
open: false,
//
drawer:false,
//
queryParams: {
pageNum: 1,
@ -241,9 +243,8 @@ export default {
msgTypeId: null,
slideTime: null,
slideFrequency: null,
slideData:null,
slideMaxNum: null,
slideMinNum: null
maxValue: null,
minValue: null
},
//
form: {},
@ -256,27 +257,6 @@ export default {
this.getList();
},
methods: {
clickBox(val) {
console.log('val::', val);
let values = this.value
if(values.includes(val)) {
this.value = values.filter(n => n !== val)
} else {
values.push(val)
this.value = values
}
console.log('this.value::', this.value)
this.value.forEach((item,index)=>{
// console.log("item:"+item);
// console.log("index"+index);
this.form.msgTypeId += ","+item;
})
console.log(this.form.msgTypeId.substring(1));
},
/** 查询预警规则列表 */
getList() {
this.loading = true;
@ -300,9 +280,8 @@ export default {
msgTypeId: null,
slideTime: null,
slideFrequency: null,
slideData:null,
slideMaxNum: null,
slideMinNum: null
maxValue: null,
minValue: null
};
this.resetForm("form");
},

View File

@ -35,7 +35,7 @@ module.exports = {
proxy: {
// detail: https://cli.vuejs.org/config/#devserver-proxy
[process.env.VUE_APP_BASE_API]: {
target: `http://localhost:18080`,
target: `http://localhost:8080`,
changeOrigin: true,
pathRewrite: {
['^' + process.env.VUE_APP_BASE_API]: ''