fix:修改大屏今日巡查,修改终端管理页面报错

This commit is contained in:
SunTao 2024-12-05 17:48:42 +08:00
parent 269fc702fe
commit e522e816b3
7 changed files with 91 additions and 267 deletions

View File

@ -2,7 +2,7 @@
* @Author: SunTao 328867980@qq.com * @Author: SunTao 328867980@qq.com
* @Date: 2024-10-21 09:59:32 * @Date: 2024-10-21 09:59:32
* @LastEditors: SunTao 328867980@qq.com * @LastEditors: SunTao 328867980@qq.com
* @LastEditTime: 2024-12-05 17:13:51 * @LastEditTime: 2024-12-05 17:30:29
* @FilePath: \znxjxt-ui\src\views\big-screen\disease-components\traffic-safety.vue * @FilePath: \znxjxt-ui\src\views\big-screen\disease-components\traffic-safety.vue
* @Description: 病害巡检大屏-今日巡查 * @Description: 病害巡检大屏-今日巡查
--> -->
@ -20,10 +20,10 @@
<span> {{ scale }} </span>% <span> {{ scale }} </span>%
</div> --> </div> -->
<div class="right-rate"> <div class="right-rate">
较昨日<span v-if="state === '增加'" class="up">{{ state }}</span><span v-if="state === '减少'" class="bottom">{{ state 较昨日<span v-if="state === '增加'" class="up">{{ state }}</span><span v-else class="bottom">{{ state
}}</span> {{ count }} }}</span> {{ count }}
<i v-if="state === '增加'" class="el-icon-top"></i> <i v-if="state === '增加'" class="el-icon-top"></i>
<i v-if="state === '减少'" class="el-icon-bottom"></i> <i v-else class="el-icon-bottom"></i>
</div> </div>
</div> </div>

View File

@ -741,7 +741,7 @@ export default {
getLinePoint() { getLinePoint() {
if (!this.markLayerLines) { if (!this.markLayerLines) {
mapPciList().then(({ code, data }) => { mapPciList().then(({ code, data }) => {
if (code === 200) { if (code === 200 && data) {
this.lineString = data.filter((item) => item.coordinates !== null); this.lineString = data.filter((item) => item.coordinates !== null);
this.drawLine(); this.drawLine();
} }

View File

@ -21,10 +21,11 @@
>% >%
</div> --> </div> -->
<div class="right-rate"> <div class="right-rate">
较昨日<span v-if="state === '增加'" class="up">{{ state }}</span><span v-if="state === '减少'" class="bottom">{{ state 较昨日<span v-if="state === '增加'" class="up">{{ state }}</span><span v-if="state === '增加'" class="up">{{ state
}}</span><span v-else class="bottom">{{ state
}}</span> {{ count }} }}</span> {{ count }}
<i v-if="state === '增加'" class="el-icon-top"></i> <i v-if="state === '增加'" class="el-icon-top"></i>
<i v-if="state === '减少'" class="el-icon-bottom"></i> <i v-else class="el-icon-bottom"></i>
</div> </div>
</div> </div>
<!-- 病害总览弹窗 --> <!-- 病害总览弹窗 -->

View File

@ -200,10 +200,10 @@ export default {
...this.searchForm, ...this.searchForm,
...this.pagination, ...this.pagination,
}; };
getScopeList(params).then(({ code, data }) => { getScopeList(params).then(({ code, rows,total }) => {
if (code === 200) { if (code === 200) {
this.sectionList = data.rows; this.sectionList = rows;
this.tableTotal = data.total; this.tableTotal = total;
} }
}); });
}, },

View File

@ -11,60 +11,33 @@
<div class="add-content"> <div class="add-content">
<div> <div>
<div class="left-form"> <div class="left-form">
<el-form <el-form ref="dialogForm" :model="dialogForm" :rules="rules" label-width="100px">
ref="dialogForm"
:model="dialogForm"
:rules="rules"
label-width="100px"
>
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="12"> <el-col :span="12">
<el-form-item label="路段编码" prop="segmentCode"> <el-form-item label="路段编码" prop="segmentCode">
<el-input <el-input v-model="dialogForm.segmentCode" placeholder="请输入路段编码" clearable></el-input>
v-model="dialogForm.segmentCode"
placeholder="请输入路段编码"
clearable
></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="路段名称" prop="segmentName"> <el-form-item label="路段名称" prop="segmentName">
<el-input <el-input v-model="dialogForm.segmentName" placeholder="请输入路段名称" clearable></el-input>
v-model="dialogForm.segmentName"
placeholder="请输入路段名称"
clearable
></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="12"> <el-col :span="12">
<el-form-item label="道路类型" prop="roadType"> <el-form-item label="道路类型" prop="roadType">
<el-select <el-select v-model="dialogForm.roadType" placeholder="请选择道路类型">
v-model="dialogForm.roadType" <el-option v-for="dict in dict.type.bas_road_type" :key="dict.value" :label="dict.label"
placeholder="请选择道路类型" :value="dict.value"></el-option>
>
<el-option
v-for="dict in dict.type.bas_road_type"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="管理站" prop="deptId"> <el-form-item label="管理站" prop="deptId">
<el-select <el-select v-model="dialogForm.deptId" placeholder="请选择管理站">
v-model="dialogForm.deptId" <el-option v-for="dict in deptIdList" :key="dict.value" :label="dict.label"
placeholder="请选择管理站" :value="dict.value"></el-option>
>
<el-option
v-for="dict in deptIdList"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -72,94 +45,53 @@
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="12"> <el-col :span="12">
<el-form-item label="起点桩" prop="stakeStart"> <el-form-item label="起点桩" prop="stakeStart">
<el-input <el-input v-model="dialogForm.stakeStart" placeholder="请填写起点桩" clearable></el-input>
v-model="dialogForm.stakeStart"
placeholder="请填写起点桩"
clearable
></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="终点桩" prop="stakeEnd"> <el-form-item label="终点桩" prop="stakeEnd">
<el-input <el-input v-model="dialogForm.stakeEnd" placeholder="请填写终点桩" clearable></el-input>
v-model="dialogForm.stakeEnd"
placeholder="请填写终点桩"
clearable
></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="12"> <el-col :span="12">
<el-form-item label="路宽" prop="width"> <el-form-item label="路宽" prop="width">
<el-input-number <el-input-number v-model="dialogForm.width" controls-position="right" placeholder="请填写路宽" :min="0"
v-model="dialogForm.width" style="width: 100%"></el-input-number>
controls-position="right"
placeholder="请填写路宽"
:min="0"
style="width: 100%"
></el-input-number>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="里程" prop="mileage"> <el-form-item label="里程" prop="mileage">
<el-input-number <el-input-number v-model="dialogForm.mileage" controls-position="right" placeholder="请填写里程" :min="0"
v-model="dialogForm.mileage" style="width: 100%"></el-input-number>
controls-position="right"
placeholder="请填写里程"
:min="0"
style="width: 100%"
></el-input-number>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="12"> <el-col :span="12">
<el-form-item label="车道数量" prop="laneCount"> <el-form-item label="车道数量" prop="laneCount">
<el-input-number <el-input-number v-model="dialogForm.laneCount" controls-position="right" placeholder="请填写车道数量" :min="0"
v-model="dialogForm.laneCount" style="width: 100%"></el-input-number>
controls-position="right"
placeholder="请填写车道数量"
:min="0"
style="width: 100%"
></el-input-number>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="养护级别" prop="curingLevel"> <el-form-item label="养护级别" prop="curingLevel">
<el-input <el-input v-model="dialogForm.curingLevel" placeholder="请填写养护级别" clearable></el-input>
v-model="dialogForm.curingLevel"
placeholder="请填写养护级别"
clearable
></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="12"> <el-col :span="12">
<el-form-item label="最大限速" prop="maxSpeedLimit"> <el-form-item label="最大限速" prop="maxSpeedLimit">
<el-input-number <el-input-number v-model="dialogForm.maxSpeedLimit" controls-position="right" placeholder="请填写最大限速"
v-model="dialogForm.maxSpeedLimit" :min="0" style="width: 100%"></el-input-number>
controls-position="right"
placeholder="请填写最大限速"
:min="0"
style="width: 100%"
></el-input-number>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="选择路线" prop="routeId"> <el-form-item label="选择路线" prop="routeId">
<el-select <el-select v-model="dialogForm.routeId" placeholder="请选择路线" clearable>
v-model="dialogForm.routeId" <el-option v-for="item in routeList" :key="item.value" :label="item.label" :value="item.value" />
placeholder="请选择路线"
clearable
>
<el-option
v-for="item in routeList"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -167,26 +99,16 @@
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="24"> <el-col :span="24">
<el-form-item label="路段坐标点" prop="coordinates"> <el-form-item label="路段坐标点" prop="coordinates">
<el-input <el-input type="textarea" :disabled="true" v-model="dialogForm.coordinates" rows="4"
type="textarea" resize="none"></el-input>
:disabled="true"
v-model="dialogForm.coordinates"
rows="4"
resize="none"
></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="24"> <el-col :span="24">
<el-form-item label="范围坐标点" prop="polygon"> <el-form-item label="范围坐标点" prop="polygon">
<el-input <el-input type="textarea" :disabled="true" v-model="dialogForm.polygon" rows="4"
type="textarea" resize="none"></el-input>
:disabled="true"
v-model="dialogForm.polygon"
rows="4"
resize="none"
></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@ -200,16 +122,9 @@
</el-form> </el-form>
</div> </div>
<div class="right-map"> <div class="right-map">
<fssm-map <fssm-map :showLine="true" :showDraw="true" id="add_map" ref="mapContainer"
:showLine="true" @endEoordinateLine="getEndEoordinate" @endEoordinate="getEndPolygon" :editCoordinates="editCoordinates"
:showDraw="true" :editCoordinatesLine="editCoordinatesLine"></fssm-map>
id="add_map"
ref="mapContainer"
@endEoordinateLine="getEndEoordinate"
@endEoordinate="getEndPolygon"
:editCoordinates="editCoordinates"
:editCoordinatesLine="editCoordinatesLine"
></fssm-map>
</div> </div>
</div> </div>
<div class="dialog-footer"> <div class="dialog-footer">
@ -323,15 +238,13 @@ export default {
handler(val) { handler(val) {
if (val.title === "修改") { if (val.title === "修改") {
this.dialogForm = val.item; this.dialogForm = val.item;
this.editCoordinates = val.item.polygon.split(";").map((item) => { this.editCoordinates = val.item?.polygon?.split(";")?.map((item) => {
return item.split(","); return item.split(",");
}); });
this.editCoordinatesLine = val.item.coordinates this.editCoordinatesLine = val.item?.coordinates?.split(";")
.split(";") ?.map((item) => {
.map((item) => {
return item.split(","); return item.split(",");
}); });
console.log(val, "ddssss");
} }
}, },
immediate: true, immediate: true,

View File

@ -2,36 +2,23 @@
* @Author: SunTao 328867980@qq.com * @Author: SunTao 328867980@qq.com
* @Date: 2024-10-17 11:01:18 * @Date: 2024-10-17 11:01:18
* @LastEditors: SunTao 328867980@qq.com * @LastEditors: SunTao 328867980@qq.com
* @LastEditTime: 2024-10-17 11:24:08 * @LastEditTime: 2024-12-05 17:40:36
* @FilePath: \znxjxt-ui\src\views\xj\route\route-terminal\components\terminal-add.vue * @FilePath: \znxjxt-ui\src\views\xj\route\route-terminal\components\terminal-add.vue
* @Description: 路线管理-终端管理新增弹窗 * @Description: 路线管理-终端管理新增弹窗
--> -->
<template> <template>
<div class="add-content"> <div class="add-content">
<div class="add-form"> <div class="add-form">
<el-form <el-form ref="dialogForm" :model="dialogForm" :rules="rules" label-width="120px">
ref="dialogForm"
:model="dialogForm"
:rules="rules"
label-width="120px"
>
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="12"> <el-col :span="12">
<el-form-item label="设备编号" prop="clientid"> <el-form-item label="设备编号" prop="clientId">
<el-input <el-input v-model="dialogForm.clientId" placeholder="请输入设备编号" clearable></el-input>
v-model="dialogForm.clientid"
placeholder="请输入设备编号"
clearable
></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="所属车辆" prop="plateno"> <el-form-item label="所属车辆" prop="plateNo">
<el-input <el-input v-model="dialogForm.plateNo" placeholder="请输入所属车辆" clearable></el-input>
v-model="dialogForm.plateno"
placeholder="请输入所属车辆"
clearable
></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@ -55,12 +42,7 @@
</el-col> --> </el-col> -->
<el-col :span="24"> <el-col :span="24">
<el-form-item label="备注" prop="remark"> <el-form-item label="备注" prop="remark">
<el-input <el-input type="textarea" v-model="dialogForm.remark" rows="3" resize="none"></el-input>
type="textarea"
v-model="dialogForm.remark"
rows="3"
resize="none"
></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@ -98,16 +80,16 @@ export default {
return { return {
// //
dialogForm: { dialogForm: {
clientid: "", clientId: "",
plateno: "", plateNo: "",
areas: [], areas: [],
remark: "", remark: "",
}, },
rules: { rules: {
clientid: [ clientId: [
{ required: true, message: "设备编号不能为空", trigger: "blur" }, { required: true, message: "设备编号不能为空", trigger: "blur" },
], ],
plateno: [ plateNo: [
{ required: true, message: "所属车辆不能为空", trigger: "blur" }, { required: true, message: "所属车辆不能为空", trigger: "blur" },
], ],
areas: [ areas: [
@ -129,12 +111,7 @@ export default {
dialogItem: { dialogItem: {
handler(val) { handler(val) {
if (val.title === "修改") { if (val.title === "修改") {
const a = this.dialogForm = JSON.parse(JSON.stringify(val.item))
"122.2772084092066,42.1903654574782;122.4566518803403,41.91936930784885;123.0608999272153,41.9541594027907;122.9638539170191,42.419247153717315;122.37425425176474,42.413753989654815;122.36143698071095,42.24529693046514;122.2772084092066,42.1903654574782";
this.dialogForm.coordinates = a;
this.editCoordinates = a.split(";").map((item) => {
return item.split(",");
});
} }
}, },
immediate: true, immediate: true,

View File

@ -2,7 +2,7 @@
* @Author: SunTao 328867980@qq.com * @Author: SunTao 328867980@qq.com
* @Date: 2024-10-17 10:40:54 * @Date: 2024-10-17 10:40:54
* @LastEditors: SunTao 328867980@qq.com * @LastEditors: SunTao 328867980@qq.com
* @LastEditTime: 2024-10-17 10:53:59 * @LastEditTime: 2024-12-05 17:38:38
* @FilePath: \znxjxt-ui\src\views\xj\route\route-terminal\index.vue * @FilePath: \znxjxt-ui\src\views\xj\route\route-terminal\index.vue
* @Description: 路线管理-终端管理 * @Description: 路线管理-终端管理
--> -->
@ -11,119 +11,52 @@
<div class="section-content"> <div class="section-content">
<!-- 搜索表单 --> <!-- 搜索表单 -->
<div class="section-form"> <div class="section-form">
<el-form <el-form :model="sectionForm" ref="queryForm" size="small" :inline="true" label-width="6rem">
:model="sectionForm" <el-form-item label="设备编号" prop="clientId">
ref="queryForm" <el-input v-model="sectionForm.clientId" placeholder="请输入设备编号" clearable @keyup.enter.native="handleQuery" />
size="small"
:inline="true"
label-width="6rem"
>
<el-form-item label="设备编号" prop="clientid">
<el-input
v-model="sectionForm.clientid"
placeholder="请输入设备编号"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
type="primary" <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
icon="el-icon-search"
size="mini"
@click="handleQuery"
>搜索</el-button
>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
>重置</el-button
>
</el-form-item> </el-form-item>
</el-form> </el-form>
</div> </div>
<!-- 操作按钮 --> <!-- 操作按钮 -->
<div class="btn-row"> <div class="btn-row">
<el-button <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd">新增
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
>新增
</el-button> </el-button>
</div> </div>
<!-- 列表 --> <!-- 列表 -->
<el-table <el-table ref="roadTable" v-loading="loading" :data="sectionList" @selection-change="handleSelectionChange"
ref="roadTable" style="width: 100%">
v-loading="loading"
:data="sectionList"
@selection-change="handleSelectionChange"
style="width: 100%"
>
<el-table-column type="selection" width="55" align="center" /> <el-table-column type="selection" width="55" align="center" />
<el-table-column label="设备编号" align="center" prop="clientId" /> <el-table-column label="设备编号" align="center" prop="clientId" />
<el-table-column label="所属车辆" align="center" prop="plateNo" /> <el-table-column label="所属车辆" align="center" prop="plateNo" />
<el-table-column label="作业范围" align="center" prop="segmentCode" /> <el-table-column label="作业范围" align="center" prop="segmentCode" />
<el-table-column label="设备状态" align="center" prop="name" /> <el-table-column label="设备状态" align="center" prop="name" />
<el-table-column label="网络连接" align="center" prop="name" /> <el-table-column label="网络连接" align="center" prop="name" />
<el-table-column <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
label="操作"
align="center"
class-name="small-padding fixed-width"
>
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button size="mini" type="text" icon="el-icon-view" @click="viewTable(scope.row)">查看
size="mini"
type="text"
icon="el-icon-view"
@click="viewTable(scope.row)"
>查看
</el-button> </el-button>
<el-button <el-button size="mini" type="text" icon="el-icon-edit" @click="editTable(scope.row)">修改
size="mini"
type="text"
icon="el-icon-edit"
@click="editTable(scope.row)"
>修改
</el-button> </el-button>
<el-button <el-button size="mini" type="text" icon="el-icon-delete" @click="deleteTable(scope.row)">删除
size="mini"
type="text"
icon="el-icon-delete"
@click="deleteTable(scope.row)"
>删除
</el-button> </el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<!-- 分页组件 --> <!-- 分页组件 -->
<div class="pagination-part"> <div class="pagination-part">
<el-pagination <el-pagination background :current-page.sync="pagination.page" @current-change="handleCurrentChange"
background :page-sizes="[10, 20, 30, 40]" :page-size.sync="pagination.size" @size-change="handleSizeChange"
:current-page.sync="pagination.page" layout="total, sizes, prev, pager, next, jumper" :total="tableTotal">
@current-change="handleCurrentChange"
:page-sizes="[10, 20, 30, 40]"
:page-size.sync="pagination.size"
@size-change="handleSizeChange"
layout="total, sizes, prev, pager, next, jumper"
:total="tableTotal"
>
</el-pagination> </el-pagination>
</div> </div>
<!-- 新增/修改弹窗 --> <!-- 新增/修改弹窗 -->
<el-dialog <el-dialog :title="addTitle" :visible.sync="addVisible" width="60%" append-to-body :close-on-click-modal="false"
:title="addTitle" destroy-on-close @close="addCancel">
:visible.sync="addVisible" <terminal-add v-if="addVisible" :dialogItem="dialogItem" @addCancel="addCancel"></terminal-add>
width="60%"
append-to-body
:close-on-click-modal="false"
destroy-on-close
@close="addCancel"
>
<terminal-add
v-if="addVisible"
:dialogItem="dialogItem"
@addCancel="addCancel"
></terminal-add>
</el-dialog> </el-dialog>
</div> </div>
</template> </template>
@ -140,7 +73,7 @@ export default {
// //
sectionForm: { sectionForm: {
// segmentCode: "", // segmentCode: "",
clientid: "", clientId: "",
}, },
// //
searchForm: {}, searchForm: {},
@ -190,7 +123,7 @@ export default {
resetQuery() { resetQuery() {
this.sectionForm = { this.sectionForm = {
// segmentCode: "", // segmentCode: "",
clientid: "", clientId: "",
}; };
this.searchForm = {}; this.searchForm = {};
this.getTableList(); this.getTableList();
@ -249,10 +182,11 @@ export default {
* @param {*} val * @param {*} val
* @return {*} * @return {*}
*/ */
editTable() { editTable(item) {
this.addTitle = "修改设备"; this.addTitle = "修改设备";
this.dialogItem = { this.dialogItem = {
title: "修改", title: "修改",
item,
}; };
this.addVisible = true; this.addVisible = true;
}, },
@ -342,4 +276,3 @@ export default {
justify-content: flex-end; justify-content: flex-end;
} }
</style> </style>