fix:修改联调

This commit is contained in:
SunTao 2025-01-15 15:09:36 +08:00
parent ba5183d592
commit c661674306
10 changed files with 715 additions and 349 deletions

View File

@ -18,3 +18,21 @@ export function getDefectList(params) {
params, params,
}); });
} }
// 查询数据列表
export function getDataList(params) {
return request({
url: "/basCheckoutSetting/list",
method: "get",
params,
});
}
// 修改数据状态
export function updateStatus(data) {
return request({
url: "/basCheckoutSetting/updateStatus",
method: "post",
data,
});
}

View File

@ -60,3 +60,12 @@ export function getMaintenanceNoticeById(params) {
params, params,
}); });
} }
// 查询病害列表
export function listDefect(query) {
return request({
url: "/xj/defect/list",
method: "get",
params: query,
});
}

View File

@ -2,7 +2,7 @@
* @Author: error: error: git config user.name & please set dead value or install git && error: git config user.email & please set dead value or install git & please set dead value or install git * @Author: error: error: git config user.name & please set dead value or install git && error: git config user.email & please set dead value or install git & please set dead value or install git
* @Date: 2024-10-08 09:26:24 * @Date: 2024-10-08 09:26:24
* @LastEditors: SunTao 328867980@qq.com * @LastEditors: SunTao 328867980@qq.com
* @LastEditTime: 2024-12-02 14:46:30 * @LastEditTime: 2025-01-15 14:48:24
* @FilePath: \znxjxt-ui\src\api\xj\warnSetup.js * @FilePath: \znxjxt-ui\src\api\xj\warnSetup.js
* @Description: 巡检信息-预警设置 * @Description: 巡检信息-预警设置
*/ */
@ -13,7 +13,7 @@ export function getDefectList(params) {
return request({ return request({
// 病害类型下拉 // 病害类型下拉
// url: "/metadata/defectType", // url: "/metadata/defectType",
url: "/bigscreen/v2/getDefectTypesDrowDown", url: "/alarmSetting/dropDown",
method: "get", method: "get",
params, params,
}); });
@ -28,6 +28,15 @@ export function getWarnSetupList(params) {
}); });
} }
// 新增预警设置
export function addWarnSetup(data) {
return request({
url: "/alarmSetting/add",
method: "post",
data,
});
}
// 更新预警设置 // 更新预警设置
export function updateWarnSetup(params) { export function updateWarnSetup(params) {
return request({ return request({
@ -44,3 +53,11 @@ export function getSegment() {
method: "post", method: "post",
}); });
} }
// 删除预警设置
export function delWarnSetup(id) {
return request({
url: `/alarmSetting/${id}`,
method: "delete",
});
}

View File

@ -2,7 +2,7 @@
* @Author: SunTao 328867980@qq.com * @Author: SunTao 328867980@qq.com
* @Date: 2024-11-20 11:58:33 * @Date: 2024-11-20 11:58:33
* @LastEditors: SunTao 328867980@qq.com * @LastEditors: SunTao 328867980@qq.com
* @LastEditTime: 2025-01-03 10:37:57 * @LastEditTime: 2025-01-15 11:48:48
* @FilePath: \znxjxt-ui\src\views\xj\document\maintenance-notice\components\edit-dialog.vue * @FilePath: \znxjxt-ui\src\views\xj\document\maintenance-notice\components\edit-dialog.vue
* @Description: 养护通知单编辑弹窗 * @Description: 养护通知单编辑弹窗
--> -->
@ -89,6 +89,272 @@
</el-form-item> </el-form-item>
</el-row> --> </el-row> -->
</el-form> </el-form>
<el-card shadow="never">
<div slot="header" class="clearfix">
<span>选择病害</span>
<!-- <el-button style="float: right; padding: 3px 0" type="text"
>操作按钮</el-button
> -->
</div>
<!-- 列表查询条件 -->
<el-form
:model="diseaseForm"
ref="queryForm"
size="small"
:inline="true"
label-width="100px"
>
<el-form-item label="道路名称" prop="segmentName">
<el-select
v-model="diseaseForm.segmentName"
placeholder="请选择路段"
filterable
clearable
>
<el-option
v-for="item in segmentList"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item label="采集时间" prop="dateTime">
<el-date-picker
v-model="dateTime"
type="daterange"
start-placeholder="开始日期"
end-placeholder="结束日期"
format="yyyy-MM-dd"
value-format="yyyy-MM-dd"
clearable
/>
</el-form-item>
<el-form-item label="病害类型" prop="paramsDefectType">
<el-cascader
v-model="paramsDefectType"
:options="tableDefect"
:props="{
checkStrictly: true,
emitPath: true,
children: 'subTypes',
}"
clearable
></el-cascader>
</el-form-item>
<!-- <el-form-item label="病害状态" prop="state">
<el-select
v-model="diseaseForm.state"
placeholder="请选择病害状态"
clearable
>
<el-option
v-for="item in defectStatus"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item> -->
<el-form-item label="上下行" prop="inspectDirection">
<el-select
v-model="diseaseForm.inspectDirection"
placeholder="请选择"
clearable
>
<el-option label="上行" value="0" />
<el-option label="下行" value="1" />
</el-select>
</el-form-item>
<el-form-item label="公里桩" prop="stakeRange">
<el-input
v-model="diseaseForm.stakeStart"
placeholder="起始公里桩"
style="width: 10rem"
clearable
/>
<span style="margin: 0 5px">-</span>
<el-input
v-model="diseaseForm.stakeEnd"
placeholder="终止公里桩"
style="width: 10rem"
clearable
/>
<el-tooltip
class="item"
effect="dark"
content="格式为K0000+000"
placement="top"
>
<i class="el-icon-info"></i>
</el-tooltip>
</el-form-item>
<el-form-item label="病害id" prop="id">
<el-input
v-model="diseaseForm.id"
placeholder="请填写病害id"
clearable
/>
</el-form-item>
<el-form-item label="病害长度" prop="lengthRange">
<el-input-number
v-model="diseaseForm.minLen"
controls-position="right"
placeholder="最小长度"
:min="0"
></el-input-number>
<span style="margin: 0 5px">-</span>
<el-input-number
v-model="diseaseForm.maxLen"
controls-position="right"
placeholder="最大长度"
:min="0"
></el-input-number>
</el-form-item>
<el-form-item label="快照id" prop="snapshotId">
<el-input
v-model="diseaseForm.snapshotId"
placeholder="请填写快照id"
clearable
/>
</el-form-item>
<el-form-item label="病害面积" prop="areaRange">
<el-input-number
v-model="diseaseForm.minArea"
controls-position="right"
placeholder="最小面积"
:min="0"
></el-input-number>
<span style="margin: 0 5px">-</span>
<el-input-number
v-model="diseaseForm.maxArea"
controls-position="right"
placeholder="最大面积"
:min="0"
></el-input-number>
</el-form-item>
<el-form-item label="巡检任务" prop="taskId">
<el-select
v-model="diseaseForm.taskId"
placeholder="请选择巡检任务"
filterable
clearable
>
<el-option
v-for="item in taskList"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item label="是否已确认" prop="confirmStatus">
<el-select
v-model="diseaseForm.confirmStatus"
placeholder="请选择"
clearable
>
<el-option label="确认" value="1" />
<el-option label="未确认" value="2" />
</el-select>
</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
>
</el-form-item>
</el-form>
<!-- 列表 -->
<el-table
ref="roadTable"
v-loading="loading"
:data="diseaseList"
:row-key="getRowKey"
@selection-change="handleSelectionChange"
height="40rem"
style="width: 100%"
>
<el-table-column
type="selection"
:reserve-selection="true"
width="55"
align="center"
/>
<el-table-column label="路段名称" align="center" prop="segmentName" />
<el-table-column label="采集时间" align="center" prop="createdTime">
<template slot-scope="scope">
<span>{{ new Date(scope.row.createdTime).toLocaleString() }}</span>
</template>
</el-table-column>
<el-table-column label="病害类型" align="center" prop="defectTypeName">
</el-table-column>
<!-- <el-table-column label="病害状态" align="center" prop="state">
<template slot-scope="scope">
<span>{{ filterState(scope.row.state) }}</span>
</template>
</el-table-column> -->
<el-table-column label="校验状态" align="center" prop="dataStatus">
<template slot-scope="scope">
<span>{{
scope.row.dataStatus
? scope.row.dataStatus === 1
? "未校验"
: "已校验"
: ""
}}</span>
</template>
</el-table-column>
<el-table-column label="开始桩号" align="center" prop="stakeStart" />
<el-table-column label="结束桩号" align="center" prop="stakeEnd" />
<el-table-column label="病害图片" align="center" prop="media">
<template slot-scope="scope">
<img
@click="showScreenImg(scope.row)"
height="50"
:src="scope.row.mediaUrl"
/>
</template>
</el-table-column>
<el-table-column label="病害长度" align="center" prop="targetLen">
<template slot-scope="scope">
{{ scope.row.targetLen * 1 <= 0 ? "" : `${scope.row.targetLen}` }}
</template>
</el-table-column>
<el-table-column label="病害面积" align="center" prop="targetArea" />
<el-table-column
label="道路方向"
align="center"
prop="inspectDirection"
>
<template slot-scope="scope">
<span>{{
scope.row.inspectDirection === "0" ? "上行" : "下行"
}}</span>
</template>
</el-table-column>
</el-table>
<!-- 分页组件 -->
<div class="pagination-part">
<el-pagination
background
:current-page.sync="pagination.page"
@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>
</div>
</el-card>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button> <el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button> <el-button @click="cancel"> </el-button>
@ -98,7 +364,7 @@
<script> <script>
import FssmScroll from "@/components/scroll/fssm-scroll.vue"; import FssmScroll from "@/components/scroll/fssm-scroll.vue";
import { addMaintenanceNotice } from "@/api/xj/document"; import { addMaintenanceNotice, listDefect } from "@/api/xj/document";
export default { export default {
name: "EditDialog", name: "EditDialog",
components: { FssmScroll }, components: { FssmScroll },
@ -173,6 +439,48 @@ export default {
// }, // },
// ], // ],
}, },
//
diseaseForm: {
segmentName: "",
defectType: "",
classType: "",
taskId: "",
state: "",
inspectDirection: "",
stakeStart: "",
stakeEnd: "",
warningFlag: null,
minLen: undefined,
maxLen: undefined,
minArea: undefined,
maxArea: undefined,
confirmStatus: "",
id: "",
snapshotId: "",
taskId: "",
},
//
dateTime: [],
//
paramsDefectType: [],
//
tableDefect: [],
//
taskList: [],
//
diseaseList: [],
//
loading: false,
//
checkList: [],
// -
tableTotal: 0,
// -
pagination: {
page: 1,
size: 10,
},
}; };
}, },
watch: { watch: {
@ -197,6 +505,9 @@ export default {
immediate: true, immediate: true,
}, },
}, },
mounted() {
this.getDiseaseList();
},
methods: { methods: {
// /** // /**
// * @description: // * @description:
@ -212,6 +523,72 @@ export default {
// this.editForm.taskDescription.splice(index, 1); // this.editForm.taskDescription.splice(index, 1);
// }, // },
handleQuery() {},
resetQuery() {},
/**
* @description: 获取病害列表数据
* @param {*}
* @return {*}
*/
getDiseaseList() {
this.loading = true;
const params = {
...this.searchForm,
...this.pagination,
startTime: this.dateTime ? this.dateTime[0] : "",
endTime: this.dateTime ? this.dateTime[1] : "",
};
listDefect(params)
.then((response) => {
this.diseaseList = response.rows;
this.tableTotal = response.total;
this.loading = false;
})
.catch(() => {
this.loading = false;
});
},
/**
* @description: 列表行绑定id
* @param {*} row
* @return {*}
*/
getRowKey(row) {
return row.snapshotId;
},
/**
* @description: 列表选择改变事件
* @param {*} selection
* @return {*}
*/
handleSelectionChange(selection) {
this.checkList = selection;
},
/**
* @description: 切换分页
* @param {*} arg
* @return {*}
*/
handleCurrentChange(arg) {
this.pagination.page = arg;
this.getDiseaseList();
},
/**
* @description: 切换每条/
* @param {*} arg
* @return {*}
*/
handleSizeChange(arg) {
this.pagination.size = arg;
this.getDiseaseList();
},
/** /**
* @description: 取消 * @description: 取消
*/ */
@ -273,8 +650,17 @@ export default {
} }
} }
/* 分页样式 */
.pagination-part {
width: 100%;
display: flex;
padding-top: 1rem;
justify-content: flex-end;
}
/* 页脚 */ /* 页脚 */
.dialog-footer { .dialog-footer {
padding: 1rem 0;
display: flex; display: flex;
justify-content: flex-end; justify-content: flex-end;
} }

View File

@ -2,7 +2,7 @@
* @Author: SunTao 328867980@qq.com * @Author: SunTao 328867980@qq.com
* @Date: 2024-11-20 11:58:33 * @Date: 2024-11-20 11:58:33
* @LastEditors: SunTao 328867980@qq.com * @LastEditors: SunTao 328867980@qq.com
* @LastEditTime: 2025-01-14 09:37:31 * @LastEditTime: 2025-01-15 11:15:05
* @FilePath: \znxjxt-ui\src\views\xj\document\maintenance-notice\index.vue * @FilePath: \znxjxt-ui\src\views\xj\document\maintenance-notice\index.vue
* @Description: 养护通知单 * @Description: 养护通知单
--> -->
@ -142,165 +142,141 @@
> >
</el-form-item> </el-form-item>
</el-form> </el-form>
<!-- 导航栏 --> <!-- 操作按钮 -->
<el-tabs v-model="activeName" @tab-click="resetQuery"> <el-row :gutter="10" class="mb8">
<el-tab-pane <el-col :span="1.5">
v-for="(item, index) in editableTabs" <el-button
:key="`tabs-${index}`" type="primary"
:label="item.title" plain
:name="item.value" icon="el-icon-plus"
size="mini"
@click="handleAdd"
>新增
</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete(null)"
>删除
</el-button>
</el-col>
</el-row>
<!-- 表格 -->
<el-table
class="notice-table"
ref="noticeTable"
:data="noticeList"
@selection-change="handleSelectionChange"
v-loading="loading"
style="width: 100%"
>
<el-table-column type="selection" width="55" align="center" />
<el-table-column type="index" label="序号"> </el-table-column>
<el-table-column label="路段名称" align="center" prop="segmentName" />
<el-table-column label="采集时间" align="center" prop="createdTimeLocal">
</el-table-column>
<el-table-column label="病害类型" align="center" prop="defectTypeName">
</el-table-column>
<el-table-column label="开始桩号" align="center" prop="stakeStart" />
<el-table-column label="结束桩号" align="center" prop="stakeEnd" />
<el-table-column label="病害图片" align="center" prop="media">
<template slot-scope="scope">
<img
@click="showScreenImg(scope.row)"
height="50"
:src="scope.row.mediaUrl"
/>
</template>
</el-table-column>
<el-table-column label="病害长度" align="center" prop="targetLen">
<template slot-scope="scope">
{{ scope.row.targetLen * 1 <= 0 ? "" : `${scope.row.targetLen}` }}
</template>
</el-table-column>
<el-table-column label="病害面积" align="center" prop="targetArea" />
<el-table-column label="状态" align="center" prop="noticeStatus" />
<el-table-column label="是否紧急" align="center" prop="urgentFlag">
<template slot-scope="scope">
<el-button
v-if="scope.row.urgentFlag === 1"
type="danger"
plain
disabled
>紧急</el-button
>
<el-button
v-if="scope.row.urgentFlag === 2"
type="warning"
plain
disabled
>不紧急</el-button
>
</template>
</el-table-column>
<el-table-column
label="操作"
align="center"
class-name="small-padding fixed-width"
> >
<!-- 标签页头 --> <template slot-scope="scope">
<span slot="label" <el-button
><i size="mini"
v-if="item.status === '1'" type="text"
style="color: #67c23a" icon="el-icon-view"
class="el-icon-success" @click="handleView(scope.row)"
></i> >查看
<i </el-button>
v-if="item.status === '4'" <!-- <el-button
style="color: #409eff" size="mini"
class="el-icon-remove" type="text"
></i> icon="el-icon-edit"
<i @click="handleUpdate(scope.row)"
v-if="item.status === '2'" >生成通知单
style="color: #e6a23c" </el-button> -->
class="el-icon-info" <el-button
></i> size="mini"
<i type="text"
v-if="item.status === '3'" icon="el-icon-delete"
style="color: #909399" @click="handleDelete(scope.row)"
class="el-icon-warning" >删除
></i </el-button>
>{{ item.title }}</span </template>
> </el-table-column>
<span v-if="item.status === '3'"> </el-table>
病害总长度{{ lengthSum }} 病害总面积{{ areaSum }}</span <!-- 分页组件 -->
> <div class="pagination-part">
<!-- 表格 --> <el-pagination
<el-table background
class="notice-table" :current-page.sync="pagination.page"
ref="noticeTable" @current-change="handleCurrentChange"
:data="noticeList" :page-sizes="[10, 20, 30, 40]"
v-loading="loading" :page-size.sync="pagination.size"
style="width: 100%" @size-change="handleSizeChange"
> layout="total, sizes, prev, pager, next, jumper"
<el-table-column type="index" label="序号"> </el-table-column> :total="tableTotal"
<el-table-column label="路段名称" align="center" prop="segmentName" /> >
<el-table-column </el-pagination>
label="采集时间" </div>
align="center" <!-- 新增弹窗 -->
prop="createdTimeLocal"
>
</el-table-column>
<el-table-column
label="病害类型"
align="center"
prop="defectTypeName"
>
</el-table-column>
<el-table-column label="开始桩号" align="center" prop="stakeStart" />
<el-table-column label="结束桩号" align="center" prop="stakeEnd" />
<el-table-column label="病害图片" align="center" prop="media">
<template slot-scope="scope">
<img
@click="showScreenImg(scope.row)"
height="50"
:src="scope.row.mediaUrl"
/>
</template>
</el-table-column>
<el-table-column label="病害长度" align="center" prop="targetLen">
<template slot-scope="scope">
{{
scope.row.targetLen * 1 <= 0 ? "" : `${scope.row.targetLen}`
}}
</template>
</el-table-column>
<el-table-column label="病害面积" align="center" prop="targetArea" />
<el-table-column label="状态" align="center" prop="noticeStatus" />
<el-table-column label="是否紧急" align="center" prop="urgentFlag">
<template slot-scope="scope">
<el-button
v-if="scope.row.urgentFlag === 1"
type="danger"
plain
disabled
>紧急</el-button
>
<el-button
v-if="scope.row.urgentFlag === 2"
type="warning"
plain
disabled
>不紧急</el-button
>
</template>
</el-table-column>
<el-table-column
label="操作"
align="center"
class-name="small-padding fixed-width"
>
<template slot-scope="scope">
<el-button
v-if="activeName !== '未生成'"
size="mini"
type="text"
icon="el-icon-view"
@click="handleView(scope.row)"
>查看
</el-button>
<el-button
v-if="activeName === '未生成'"
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
>生成通知单
</el-button>
<el-button
v-if="activeName === '已生成'"
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
>删除
</el-button>
</template>
</el-table-column>
</el-table>
<!-- 分页组件 -->
<div class="pagination-part">
<el-pagination
background
:current-page.sync="pagination.page"
@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>
</div>
</el-tab-pane>
</el-tabs>
<!-- 编辑弹窗 -->
<el-dialog <el-dialog
title="生成表单" title="生成表单"
:visible.sync="editVisible" :visible.sync="addVisible"
width="40rem" width="90%"
append-to-body append-to-body
:close-on-click-modal="false" :close-on-click-modal="false"
destroy-on-close destroy-on-close
@close="editCancel" @close="addCancel"
> >
<edit-dialog <edit-dialog
v-if="editVisible" v-if="addVisible"
:segmentList="segmentList" :segmentList="segmentList"
:dialogItem="dialogItem" :dialogItem="dialogItem"
@cancel="editCancel" @cancel="addCancel"
/> />
</el-dialog> </el-dialog>
@ -436,15 +412,6 @@ export default {
segmentList: [], segmentList: [],
// //
tableDefect: [], tableDefect: [],
//
activeName: "未生成",
//
editableTabs: [
{ title: "未生成", value: "未生成", status: "3" },
{ title: "已生成", value: "已生成", status: "2" },
{ title: "已开工", value: "已开工", status: "4" },
{ title: "已完成", value: "已完成", status: "1" },
],
// //
lengthSum: "", lengthSum: "",
// //
@ -461,11 +428,13 @@ export default {
page: 1, page: 1,
size: 10, size: 10,
}, },
//
multiple: true,
// //
dialogItem: {}, dialogItem: {},
// //
editVisible: false, addVisible: false,
// //
viewVisible: false, viewVisible: false,
@ -507,15 +476,6 @@ export default {
}); });
}, },
/**
* @description: 切换导航栏
* @param {*}
* @return {*}
*/
changeTab() {
this.resetQuery();
},
/** /**
* @description: 点击查询 * @description: 点击查询
* @param {*} * @param {*}
@ -583,7 +543,6 @@ export default {
const data = { const data = {
...this.searchForm, ...this.searchForm,
...this.pagination, ...this.pagination,
maintenanceStatus: this.activeName,
}; };
getMaintenanceNoticeList(data) getMaintenanceNoticeList(data)
.then(({ code, rows, total }) => { .then(({ code, rows, total }) => {
@ -597,6 +556,26 @@ export default {
}); });
}, },
/**
* @description: 列表选择改变事件
* @param {*} selection
* @return {*}
*/
handleSelectionChange(selection) {
this.checkIds = selection.map((item) => item.id);
this.single = selection.length !== 1;
this.multiple = !selection.length;
},
/**
* @description: 点击新增事件
* @param {*} row
* @return {*}
*/
handleAdd() {
this.addVisible = true;
},
/** /**
* @description: 表格查看事件 * @description: 表格查看事件
* @param {*} row * @param {*} row
@ -614,7 +593,7 @@ export default {
*/ */
handleUpdate(row) { handleUpdate(row) {
this.dialogItem = row; this.dialogItem = row;
this.editVisible = true; this.addVisible = true;
}, },
/** /**
@ -656,12 +635,12 @@ export default {
}, },
/** /**
* @description: 编辑弹窗关闭事件 * @description: 新增弹窗关闭事件
* @param {*} * @param {*}
* @return {*} * @return {*}
*/ */
editCancel() { addCancel() {
this.editVisible = false; this.addVisible = false;
this.dialogItem = {}; this.dialogItem = {};
this.getList(); this.getList();
}, },

View File

@ -2,7 +2,7 @@
* @Author: SunTao 328867980@qq.com * @Author: SunTao 328867980@qq.com
* @Date: 2024-01-08 11:56:02 * @Date: 2024-01-08 11:56:02
* @LastEditors: SunTao 328867980@qq.com * @LastEditors: SunTao 328867980@qq.com
* @LastEditTime: 2025-01-14 11:45:24 * @LastEditTime: 2025-01-15 14:54:44
* @FilePath: \znxjxt-ui\src\views\xj\inspection-warn\warning-setup\components\add-setup.vue * @FilePath: \znxjxt-ui\src\views\xj\inspection-warn\warning-setup\components\add-setup.vue
* @Description: 预警中心-预警设置-新增/编辑组件 * @Description: 预警中心-预警设置-新增/编辑组件
--> -->
@ -17,9 +17,9 @@
> >
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="24"> <el-col :span="24">
<el-form-item label="道路名称" prop="segmentName"> <el-form-item label="道路名称" prop="segmentId">
<el-select <el-select
v-model="warningSetupForm.segmentName" v-model="warningSetupForm.segmentId"
placeholder="请选择路段" placeholder="请选择路段"
style="width: 100%" style="width: 100%"
filterable filterable
@ -37,18 +37,20 @@
</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="paramsDefectType"> <el-form-item label="病害类型" prop="defectType">
<el-cascader <el-select
v-model="warningSetupForm.paramsDefectType" v-model="warningSetupForm.defectType"
:options="tableDefect" placeholder="请选择病害"
style="width: 100%" style="width: 100%"
:props="{
checkStrictly: true,
emitPath: true,
children: 'subTypes',
}"
clearable clearable
></el-cascader> >
<el-option
v-for="item in tableDefect"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@ -96,6 +98,17 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="24">
<el-col :span="24">
<el-form-item label="预警状态:" prop="status">
<el-switch
v-model="warningSetupForm.status"
active-value="启用"
inactive-value="停用"
/>
</el-form-item>
</el-col>
</el-row>
</el-form> </el-form>
<div class="dialog-footer"> <div class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button> <el-button type="primary" @click="submitForm"> </el-button>
@ -131,9 +144,9 @@ export default {
// //
warningSetupForm: { warningSetupForm: {
// //
paramsDefectType: [], defectType: "",
// //
segmentName: "", segmentId: "",
// //
meteringType: "", meteringType: "",
// //
@ -158,10 +171,10 @@ export default {
], ],
// //
rules: { rules: {
segmentName: [ segmentId: [
{ required: true, message: "请选择道路名称", trigger: "change" }, { required: true, message: "请选择道路名称", trigger: "change" },
], ],
paramsDefectType: [ defectType: [
{ required: true, message: "请选择病害类型", trigger: "change" }, { required: true, message: "请选择病害类型", trigger: "change" },
], ],
meteringType: [ meteringType: [
@ -208,8 +221,6 @@ export default {
submitForm() { submitForm() {
this.$refs.warningSetupForm.validate((valid) => { this.$refs.warningSetupForm.validate((valid) => {
if (valid) { if (valid) {
console.log(this.warningSetupForm,'sdfsdf');
const data = { const data = {
...this.warningSetupForm, ...this.warningSetupForm,
}; };

View File

@ -2,7 +2,7 @@
* @Author: SunTao 328867980@qq.com * @Author: SunTao 328867980@qq.com
* @Date: 2024-01-08 11:56:02 * @Date: 2024-01-08 11:56:02
* @LastEditors: SunTao 328867980@qq.com * @LastEditors: SunTao 328867980@qq.com
* @LastEditTime: 2025-01-14 11:20:04 * @LastEditTime: 2025-01-15 15:06:33
* @FilePath: \znxjxt-ui\src\views\xj\inspection-warn\warning-setup\index.vue * @FilePath: \znxjxt-ui\src\views\xj\inspection-warn\warning-setup\index.vue
* @Description: 预警中心-预警设置 * @Description: 预警中心-预警设置
--> -->
@ -15,9 +15,9 @@
:inline="true" :inline="true"
label-width="5rem" label-width="5rem"
> >
<el-form-item label="道路名称" prop="segmentName"> <el-form-item label="道路名称" prop="segmentId">
<el-select <el-select
v-model="setupForm.segmentName" v-model="setupForm.segmentId"
placeholder="请选择路段" placeholder="请选择路段"
filterable filterable
clearable clearable
@ -30,17 +30,19 @@
/> />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="病害类型" prop="paramsDefectType"> <el-form-item label="病害类型" prop="defectType">
<el-cascader <el-select
v-model="paramsDefectType" v-model="setupForm.defectType"
:options="tableDefect" placeholder="请选择病害"
:props="{
checkStrictly: true,
emitPath: true,
children: 'subTypes',
}"
clearable clearable
></el-cascader> >
<el-option
v-for="item in tableDefect"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item> </el-form-item>
<!-- <el-form-item label="病害长度" prop="lengthRange"> <!-- <el-form-item label="病害长度" prop="lengthRange">
<el-input-number <el-input-number
@ -98,7 +100,7 @@
>新增 >新增
</el-button> </el-button>
</el-col> </el-col>
<el-col :span="1.5"> <!-- <el-col :span="1.5">
<el-button <el-button
type="danger" type="danger"
plain plain
@ -109,7 +111,7 @@
v-hasPermi="['system:defect:remove']" v-hasPermi="['system:defect:remove']"
>删除 >删除
</el-button> </el-button>
</el-col> </el-col> -->
</el-row> </el-row>
<!-- 表格 --> <!-- 表格 -->
<el-table <el-table
@ -119,7 +121,7 @@
@selection-change="handleSelectionChange" @selection-change="handleSelectionChange"
style="width: 100%" style="width: 100%"
> >
<el-table-column type="selection" width="55" align="center" /> <!-- <el-table-column type="selection" width="55" align="center" /> -->
<el-table-column type="index" label="序号"> </el-table-column> <el-table-column type="index" label="序号"> </el-table-column>
<el-table-column label="道路名称" align="center" prop="segmentName" /> <el-table-column label="道路名称" align="center" prop="segmentName" />
<el-table-column <el-table-column
@ -166,7 +168,7 @@
</el-table-column> </el-table-column>
</el-table> </el-table>
<!-- 分页组件 --> <!-- 分页组件 -->
<div class="pagination-part"> <!-- <div class="pagination-part">
<el-pagination <el-pagination
background background
:current-page.sync="pagination.page" :current-page.sync="pagination.page"
@ -178,7 +180,7 @@
:total="tableTotal" :total="tableTotal"
> >
</el-pagination> </el-pagination>
</div> </div> -->
<!-- 新增/编辑弹窗 --> <!-- 新增/编辑弹窗 -->
<el-dialog <el-dialog
title="预警设置" title="预警设置"
@ -205,6 +207,7 @@ import {
getWarnSetupList, getWarnSetupList,
updateWarnSetup, updateWarnSetup,
getSegment, getSegment,
delWarnSetup,
} from "@/api/xj/warnSetup"; } from "@/api/xj/warnSetup";
import AddSetup from "./components/add-setup.vue"; import AddSetup from "./components/add-setup.vue";
export default { export default {
@ -218,8 +221,7 @@ export default {
searchForm: {}, searchForm: {},
// //
setupForm: { setupForm: {
segmentName: "", segmentId: "",
classType: "",
defectType: "", defectType: "",
}, },
// //
@ -288,14 +290,6 @@ export default {
*/ */
handleQuery() { handleQuery() {
this.pagination.page = 1; this.pagination.page = 1;
this.setupForm.classType = this.paramsDefectType
? this.paramsDefectType[0]
: "";
this.setupForm.defectType = this.paramsDefectType
? this.paramsDefectType.length > 1
? this.paramsDefectType[1]
: ""
: "";
this.searchForm = JSON.parse(JSON.stringify(this.setupForm)); this.searchForm = JSON.parse(JSON.stringify(this.setupForm));
this.getTableData(); this.getTableData();
}, },
@ -309,8 +303,7 @@ export default {
this.pagination.page = 1; this.pagination.page = 1;
this.searchForm = {}; this.searchForm = {};
this.setupForm = { this.setupForm = {
segmentName: "", segmentId: "",
classType: "",
defectType: "", defectType: "",
}; };
this.paramsDefectType = []; this.paramsDefectType = [];
@ -328,6 +321,7 @@ export default {
.then(({ code, data }) => { .then(({ code, data }) => {
if (code === 200) { if (code === 200) {
this.setupList = data; this.setupList = data;
// this.tableTotal = data.total;
} }
}) })
.finally(() => { .finally(() => {
@ -375,19 +369,19 @@ export default {
* @return {*} * @return {*}
*/ */
handleDelete(row) { handleDelete(row) {
const checkIds = row ? [row.id] : this.checkIds; const checkIds = row ? row.id : this.checkIds;
if (!checkIds.length) { // if (!checkIds.length) {
this.$modal.msgWarning("请选择要删除的记录"); // this.$modal.msgWarning("");
return; // return;
} // }
this.$modal this.$modal
.confirm(`是否确认删除选中的${checkIds.length}条记录?`) .confirm(`是否确认删除选中的1条记录?`)
.then(() => { .then(() => {
// return deleteRoad(checkIds); return delWarnSetup(checkIds);
}) })
.then(() => { .then(() => {
this.getRoadList(); this.getTableData();
this.$refs.defectTable.clearSelection(); // this.$refs.defectTable.clearSelection();
this.$modal.msgSuccess("删除成功"); this.$modal.msgSuccess("删除成功");
}) })
.catch(() => {}); .catch(() => {});

View File

@ -2,7 +2,7 @@
* @Author: SunTao 328867980@qq.com * @Author: SunTao 328867980@qq.com
* @Date: 2025-01-14 14:42:29 * @Date: 2025-01-14 14:42:29
* @LastEditors: SunTao 328867980@qq.com * @LastEditors: SunTao 328867980@qq.com
* @LastEditTime: 2025-01-14 16:35:48 * @LastEditTime: 2025-01-15 13:34:15
* @FilePath: \znxjxt-ui\src\views\xj\inspection\data-management\index.vue * @FilePath: \znxjxt-ui\src\views\xj\inspection\data-management\index.vue
* @Description: 巡检管理-数据管理 * @Description: 巡检管理-数据管理
--> -->
@ -56,81 +56,25 @@
style="width: 100%" style="width: 100%"
> >
<el-table-column type="index" label="序号"> </el-table-column> <el-table-column type="index" label="序号"> </el-table-column>
<el-table-column label="路段名称" align="center" prop="segmentName" />
<el-table-column <el-table-column
label="采集时间" label="病害类别"
align="center" align="center"
prop="createdTimeLocal" prop="classTypeName"
> />
<el-table-column label="病害名称" align="center" prop="childTypeName">
</el-table-column> </el-table-column>
<el-table-column <el-table-column label="修改人" align="center" prop="updateName" />
label="病害类型" <el-table-column label="修改时间" align="center" prop="updatedTime" />
align="center" <el-table-column label="是否检出" align="center" prop="status">
prop="defectTypeName"
>
</el-table-column>
<el-table-column label="开始桩号" align="center" prop="stakeStart" />
<el-table-column label="结束桩号" align="center" prop="stakeEnd" />
<el-table-column label="病害图片" align="center" prop="media">
<template slot-scope="scope"> <template slot-scope="scope">
<img <el-switch
@click="showScreenImg(scope.row)" v-model="scope.row.status"
height="50" :active-value="1"
:src="scope.row.mediaUrl" :inactive-value="0"
@change="handleCheckChange(scope.row)"
/> />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="病害长度" align="center" prop="targetLen">
<template slot-scope="scope">
{{
scope.row.targetLen * 1 <= 0 ? "" : `${scope.row.targetLen}`
}}
</template>
</el-table-column>
<el-table-column label="病害面积" align="center" prop="targetArea" />
<el-table-column label="状态" align="center" prop="noticeStatus" />
<el-table-column label="是否紧急" align="center" prop="urgentFlag">
<template slot-scope="scope">
<el-button
v-if="scope.row.urgentFlag === 1"
type="danger"
plain
disabled
>紧急</el-button
>
<el-button
v-if="scope.row.urgentFlag === 2"
type="warning"
plain
disabled
>不紧急</el-button
>
</template>
</el-table-column>
<el-table-column
label="操作"
align="center"
class-name="small-padding fixed-width"
>
<template slot-scope="scope">
<el-button
v-if="scope.row.status === 1"
size="mini"
type="text"
icon="el-icon-circle-check"
@click="handleConfirm(scope.row)"
>订阅
</el-button>
<el-button
v-if="scope.row.status === 2"
size="mini"
type="text"
icon="el-icon-circle-close"
@click="handleCancel(scope.row)"
>取消订阅
</el-button>
</template>
</el-table-column>
</el-table> </el-table>
<!-- 分页组件 --> <!-- 分页组件 -->
<div class="pagination-part"> <div class="pagination-part">
@ -152,7 +96,11 @@
</template> </template>
<script> <script>
import { getDefectList } from "@/api/xj/dataManagement"; import {
getDefectList,
getDataList,
updateStatus,
} from "@/api/xj/dataManagement";
export default { export default {
name: "DataManagement", name: "DataManagement",
components: {}, components: {},
@ -168,11 +116,11 @@ export default {
defectTypeList: [], defectTypeList: [],
// //
editableTabs: [ editableTabs: [
{ title: "病害", status: "2" }, { title: "病害", value: "1", status: "2" },
{ title: "路产", status: "1" }, { title: "路产", value: "2", status: "1" },
], ],
// tab // tab
activeName: "", activeName: "1",
// //
loading: false, loading: false,
// //
@ -187,7 +135,7 @@ export default {
}; };
}, },
mounted() { mounted() {
// this.getTableDefect(); this.getList();
}, },
methods: { methods: {
/** /**
@ -217,42 +165,46 @@ export default {
* @param {*} val * @param {*} val
* @return {*} * @return {*}
*/ */
getList() {}, getList() {
getDataList({ type: this.activeName }).then(({ code, data }) => {
/** if (code === 200) {
* @description: 订阅 this.dataList = data;
*/ }
handleConfirm(row) { });
this.$modal
.confirm(`是否确认订阅选中的【${row.messageTypeName}】消息?`)
.then(() => {
return subscribe({
messageType: row.messageType,
});
})
.then(() => {
this.getList();
this.$modal.msgSuccess("订阅成功");
})
.catch(() => {});
}, },
/** /**
* @description: 取消订阅 * @description: 切换是否检出状态
* @param {*} row
* @return {*}
*/ */
handleCancel(row) { handleCheckChange(row) {
this.$modal updateStatus(row).then(({ code, msg }) => {
.confirm(`是否取消订阅选中的【${row.messageTypeName}】消息?`) if (code === 200) {
.then(() => { this.$modal.msgSuccess(msg);
return unsubscribe({
messageType: row.messageType,
});
})
.then(() => {
this.getList(); this.getList();
this.$modal.msgSuccess("取消订阅成功"); }
}) });
.catch(() => {}); },
/**
* @description: 切换分页
* @param {*} arg
* @return {*}
*/
handleCurrentChange(arg) {
this.pagination.page = arg;
this.getList();
},
/**
* @description: 切换每条/
* @param {*} arg
* @return {*}
*/
handleSizeChange(arg) {
this.pagination.size = arg;
this.getList();
}, },
}, },
}; };

View File

@ -161,14 +161,14 @@
/> />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="是否已确认" prop="confirmStatus"> <el-form-item label="是否已确认" prop="dataStatus">
<el-select <el-select
v-model="queryParams.confirmStatus" v-model="queryParams.dataStatus"
placeholder="请选择" placeholder="请选择"
clearable clearable
> >
<el-option label="确认" value="1" /> <el-option label="确认" value="2" />
<el-option label="未确认" value="2" /> <el-option label="未确认" value="1" />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
@ -721,7 +721,7 @@ export default {
maxLen: undefined, maxLen: undefined,
minArea: undefined, minArea: undefined,
maxArea: undefined, maxArea: undefined,
confirmStatus: "", dataStatus: "",
id: "", id: "",
snapshotId: "", snapshotId: "",
taskId: "", taskId: "",
@ -1006,7 +1006,7 @@ export default {
maxLen: undefined, maxLen: undefined,
minArea: undefined, minArea: undefined,
maxArea: undefined, maxArea: undefined,
confirmStatus: "", dataStatus: "",
id: "", id: "",
snapshotId: "", snapshotId: "",
taskId: "", taskId: "",

View File

@ -2,7 +2,7 @@
* @Author: SunTao 328867980@qq.com * @Author: SunTao 328867980@qq.com
* @Date: 2024-10-11 15:14:16 * @Date: 2024-10-11 15:14:16
* @LastEditors: SunTao 328867980@qq.com * @LastEditors: SunTao 328867980@qq.com
* @LastEditTime: 2025-01-14 14:24:28 * @LastEditTime: 2025-01-15 15:08:22
* @FilePath: \znxjxt-ui\src\views\xj\inspection\road-management\index.vue * @FilePath: \znxjxt-ui\src\views\xj\inspection\road-management\index.vue
* @Description: 巡检信息-路产管理 * @Description: 巡检信息-路产管理
--> -->
@ -633,9 +633,9 @@ export default {
return deleteRoad(checkIds); return deleteRoad(checkIds);
}) })
.then(() => { .then(() => {
this.$modal.msgSuccess("删除成功");
this.getRoadList(); this.getRoadList();
this.$refs.defectTable.clearSelection(); this.$refs.defectTable.clearSelection();
this.$modal.msgSuccess("删除成功");
}) })
.catch(() => {}); .catch(() => {});
}, },