fix:病害管理新增导出,增加条件,预警设置修改,路产删除修改传id,增加数据管理页面

This commit is contained in:
SunTao 2025-01-14 16:42:10 +08:00
parent 88ff760930
commit ba5183d592
10 changed files with 597 additions and 117 deletions

View File

@ -0,0 +1,20 @@
/*
* @Author: SunTao 328867980@qq.com
* @Date: 2025-01-14 15:58:14
* @LastEditors: SunTao 328867980@qq.com
* @LastEditTime: 2025-01-14 15:58:29
* @FilePath: \znxjxt-ui\src\api\xj\dataManagement.js
* @Description: 巡检管理-数据管理
*/
import request from "@/utils/request";
// 查询列表病害类型
export function getDefectList(params) {
return request({
// 病害类型下拉
// url: "/metadata/defectType",
url: "/bigscreen/v2/getDefectTypesDrowDown",
method: "get",
params,
});
}

View File

@ -36,3 +36,11 @@ export function updateWarnSetup(params) {
data: params, data: params,
}); });
} }
// 路段下拉数据
export function getSegment() {
return request({
url: "/api/v2/segment/selectList",
method: "post",
});
}

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-10 15:03:20 * @LastEditTime: 2025-01-14 09:37:31
* @FilePath: \znxjxt-ui\src\views\xj\document\maintenance-notice\index.vue * @FilePath: \znxjxt-ui\src\views\xj\document\maintenance-notice\index.vue
* @Description: 养护通知单 * @Description: 养护通知单
--> -->
@ -174,6 +174,9 @@
></i ></i
>{{ item.title }}</span >{{ item.title }}</span
> >
<span v-if="item.status === '3'">
病害总长度{{ lengthSum }} 病害总面积{{ areaSum }}</span
>
<!-- 表格 --> <!-- 表格 -->
<el-table <el-table
class="notice-table" class="notice-table"
@ -442,7 +445,10 @@ export default {
{ title: "已开工", value: "已开工", status: "4" }, { title: "已开工", value: "已开工", status: "4" },
{ title: "已完成", value: "已完成", status: "1" }, { title: "已完成", value: "已完成", status: "1" },
], ],
//
lengthSum: "",
//
areaSum: "",
// //
loading: false, loading: false,

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: 2024-12-17 13:44:44 * @LastEditTime: 2025-01-14 11:45:24
* @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: 预警中心-预警设置-新增/编辑组件
--> -->
@ -15,6 +15,43 @@
:rules="rules" :rules="rules"
label-width="8rem" label-width="8rem"
> >
<el-row :gutter="24">
<el-col :span="24">
<el-form-item label="道路名称" prop="segmentName">
<el-select
v-model="warningSetupForm.segmentName"
placeholder="请选择路段"
style="width: 100%"
filterable
clearable
>
<el-option
v-for="item in segmentList"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="24">
<el-form-item label="病害类型" prop="paramsDefectType">
<el-cascader
v-model="warningSetupForm.paramsDefectType"
:options="tableDefect"
style="width: 100%"
:props="{
checkStrictly: true,
emitPath: true,
children: 'subTypes',
}"
clearable
></el-cascader>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="24"> <el-col :span="24">
<el-form-item label="预警类型:" prop="meteringType"> <el-form-item label="预警类型:" prop="meteringType">
@ -68,10 +105,15 @@
</template> </template>
<script> <script>
import { updateWarnSetup } from "@/api/xj/warnSetup"; import { updateWarnSetup, addWarnSetup } from "@/api/xj/warnSetup";
export default { export default {
name: "AddSetup", name: "AddSetup",
props: { props: {
//
segmentList: {
type: Array,
default: () => [],
},
// //
tableDefect: { tableDefect: {
type: Array, type: Array,
@ -88,6 +130,10 @@ export default {
return { return {
// //
warningSetupForm: { warningSetupForm: {
//
paramsDefectType: [],
//
segmentName: "",
// //
meteringType: "", meteringType: "",
// //
@ -112,9 +158,15 @@ export default {
], ],
// //
rules: { rules: {
meteringType: [ segmentName: [
{ required: true, message: "请选择道路名称", trigger: "change" },
],
paramsDefectType: [
{ required: true, message: "请选择病害类型", trigger: "change" }, { required: true, message: "请选择病害类型", trigger: "change" },
], ],
meteringType: [
{ required: true, message: "请选择预警类型", trigger: "change" },
],
length: [ length: [
{ required: true, message: "请输入预警病害长度", trigger: "blur" }, { required: true, message: "请输入预警病害长度", trigger: "blur" },
], ],
@ -156,16 +208,26 @@ 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,
id: this.dialogItem.id,
}; };
updateWarnSetup(data).then(({ code, data }) => { if (this.warningSetupForm.id) {
updateWarnSetup(data).then(({ code }) => {
if (code === 200) { if (code === 200) {
this.$modal.msgSuccess("更新成功"); this.$modal.msgSuccess("更新成功");
this.$emit("cancel"); this.$emit("cancel");
} }
}); });
} else {
addWarnSetup(data).then(({ code }) => {
if (code === 200) {
this.$modal.msgSuccess("新增成功");
this.$emit("cancel");
}
});
}
} }
}); });
}, },

View File

@ -2,19 +2,34 @@
* @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: 2024-12-17 13:31:41 * @LastEditTime: 2025-01-14 11:20:04
* @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: 预警中心-预警设置
--> -->
<template> <template>
<div class="content"> <div class="content">
<!-- <el-form <el-form
:model="setupForm" :model="setupForm"
ref="setupForm" ref="setupForm"
size="small" size="small"
:inline="true" :inline="true"
label-width="5rem" label-width="5rem"
> >
<el-form-item label="道路名称" prop="segmentName">
<el-select
v-model="setupForm.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="paramsDefectType"> <el-form-item label="病害类型" prop="paramsDefectType">
<el-cascader <el-cascader
v-model="paramsDefectType" v-model="paramsDefectType"
@ -27,8 +42,7 @@
clearable clearable
></el-cascader> ></el-cascader>
</el-form-item> </el-form-item>
<!-- <el-form-item label="病害长度" prop="lengthRange">
<el-form-item label="病害长度" prop="lengthRange">
<el-input-number <el-input-number
v-model="setupForm.minLen" v-model="setupForm.minLen"
controls-position="right" controls-position="right"
@ -58,7 +72,7 @@
placeholder="最大面积" placeholder="最大面积"
:min="0" :min="0"
></el-input-number> ></el-input-number>
</el-form-item> </el-form-item> -->
<el-form-item> <el-form-item>
<el-button <el-button
type="primary" type="primary"
@ -96,7 +110,7 @@
>删除 >删除
</el-button> </el-button>
</el-col> </el-col>
</el-row> --> </el-row>
<!-- 表格 --> <!-- 表格 -->
<el-table <el-table
ref="setupTable" ref="setupTable"
@ -107,6 +121,7 @@
> >
<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 <el-table-column
width="200" width="200"
label="预警名称" label="预警名称"
@ -140,9 +155,30 @@
@click="handleUpdate(scope.row)" @click="handleUpdate(scope.row)"
>编辑 >编辑
</el-button> </el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
>删除
</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </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-dialog <el-dialog
title="预警设置" title="预警设置"
@ -155,6 +191,7 @@
<add-setup <add-setup
v-if="addVisible" v-if="addVisible"
:tableDefect="tableDefect" :tableDefect="tableDefect"
:segmentList="segmentList"
:dialogItem="dialogItem" :dialogItem="dialogItem"
@cancel="addCancel" @cancel="addCancel"
></add-setup> ></add-setup>
@ -167,6 +204,7 @@ import {
getDefectList, getDefectList,
getWarnSetupList, getWarnSetupList,
updateWarnSetup, updateWarnSetup,
getSegment,
} 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 {
@ -176,8 +214,16 @@ export default {
}, },
data() { data() {
return { return {
//
searchForm: {},
// //
setupForm: {}, setupForm: {
segmentName: "",
classType: "",
defectType: "",
},
//
segmentList: [],
// //
paramsDefectType: [], paramsDefectType: [],
// //
@ -190,6 +236,13 @@ export default {
checkIds: [], checkIds: [],
// //
multiple: true, multiple: true,
// -
tableTotal: 0,
// -
pagination: {
page: 1,
size: 10,
},
// //
addVisible: false, addVisible: false,
// //
@ -198,8 +251,23 @@ export default {
}, },
created() { created() {
this.getTableData(); this.getTableData();
this.getTableDefect();
this.getSegmentList();
}, },
methods: { methods: {
/**
* @description: 获取路段下拉数据
* @param {*} val
* @return {*}
*/
getSegmentList() {
getSegment().then(({ code, data }) => {
if (code === 200) {
this.segmentList = data;
}
});
},
/** /**
* @description: 获取列表病害类型对应数据 * @description: 获取列表病害类型对应数据
* @param {*} val * @param {*} val
@ -213,6 +281,42 @@ export default {
}); });
}, },
/**
* @description: 点击查询事件
* @param {*}
* @return {*}
*/
handleQuery() {
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.getTableData();
},
/**
* @description: 点击重置事件
* @param {*}
* @return {*}
*/
resetQuery() {
this.pagination.page = 1;
this.searchForm = {};
this.setupForm = {
segmentName: "",
classType: "",
defectType: "",
};
this.paramsDefectType = [];
this.getTableData();
},
/** /**
* @description: 获取预警设置列表数据 * @description: 获取预警设置列表数据
* @param {*} * @param {*}
@ -220,7 +324,7 @@ export default {
*/ */
getTableData() { getTableData() {
this.loading = true; this.loading = true;
getWarnSetupList() getWarnSetupList({ ...this.pagination, ...this.searchForm })
.then(({ code, data }) => { .then(({ code, data }) => {
if (code === 200) { if (code === 200) {
this.setupList = data; this.setupList = data;

View File

@ -0,0 +1,276 @@
<!--
* @Author: SunTao 328867980@qq.com
* @Date: 2025-01-14 14:42:29
* @LastEditors: SunTao 328867980@qq.com
* @LastEditTime: 2025-01-14 16:35:48
* @FilePath: \znxjxt-ui\src\views\xj\inspection\data-management\index.vue
* @Description: 巡检管理-数据管理
-->
<template>
<div class="content">
<el-form
:model="dataForm"
ref="noticeForm"
size="small"
:inline="true"
label-width="5rem"
>
<!-- <el-form-item label="病害类型" prop="paramsDefectType">
<el-cascader
v-model="paramsDefectType"
:options="defectTypeList"
:props="{
checkStrictly: true,
emitPath: true,
children: 'subTypes',
}"
clearable
></el-cascader>
</el-form-item> -->
<!-- <el-form-item label="是否检出" prop="detected">
<el-select
v-model="dataForm.detected"
placeholder="请选择是否检出"
clearable
>
<el-option label="是" value="1" />
<el-option label="否" value="2" />
</el-select>
</el-form-item> -->
</el-form>
<!-- 导航栏 -->
<el-tabs v-model="activeName" @tab-click="resetQuery">
<el-tab-pane
v-for="(item, index) in editableTabs"
:key="`tabs-${index}`"
:label="item.title"
:name="item.value"
>
<!-- 表格 -->
<el-table
class="notice-table"
ref="noticeTable"
:data="dataList"
v-loading="loading"
style="width: 100%"
>
<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">
<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>
<!-- 分页组件 -->
<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>
</div>
</template>
<script>
import { getDefectList } from "@/api/xj/dataManagement";
export default {
name: "DataManagement",
components: {},
data() {
return {
//
dataForm: {
detected: "",
},
//
paramsDefectType: [],
//
defectTypeList: [],
//
editableTabs: [
{ title: "病害", status: "2" },
{ title: "路产", status: "1" },
],
// tab
activeName: "",
//
loading: false,
//
dataList: [],
//
pagination: {
page: 1,
size: 10,
},
//
tableTotal: 0,
};
},
mounted() {
// this.getTableDefect();
},
methods: {
/**
* @description: 获取列表病害类型对应数据
* @param {*} val
* @return {*}
*/
getTableDefect() {
getDefectList().then(({ code, data }) => {
if (code === 200) {
this.defectTypeList = data;
}
});
},
/**
* @description: 切换导航栏
* @param {*} val
* @return {*}
*/
resetQuery() {
this.getList();
},
/**
* @description: 获取列表数据
* @param {*} val
* @return {*}
*/
getList() {},
/**
* @description: 订阅
*/
handleConfirm(row) {
this.$modal
.confirm(`是否确认订阅选中的【${row.messageTypeName}】消息?`)
.then(() => {
return subscribe({
messageType: row.messageType,
});
})
.then(() => {
this.getList();
this.$modal.msgSuccess("订阅成功");
})
.catch(() => {});
},
/**
* @description: 取消订阅
*/
handleCancel(row) {
this.$modal
.confirm(`是否取消订阅选中的【${row.messageTypeName}】消息?`)
.then(() => {
return unsubscribe({
messageType: row.messageType,
});
})
.then(() => {
this.getList();
this.$modal.msgSuccess("取消订阅成功");
})
.catch(() => {});
},
},
};
</script>
<style lang="scss" scoped>
.content {
width: 100%;
height: calc(100vh - 5.4rem);
padding: 1rem;
overflow-y: auto;
}
/* 分页样式 */
.pagination-part {
width: 100%;
display: flex;
padding-top: 1rem;
justify-content: flex-end;
}
</style>

View File

@ -2,7 +2,7 @@
* @Author: SunTao 328867980@qq.com * @Author: SunTao 328867980@qq.com
* @Date: 2024-11-04 10:54:59 * @Date: 2024-11-04 10:54:59
* @LastEditors: SunTao 328867980@qq.com * @LastEditors: SunTao 328867980@qq.com
* @LastEditTime: 2025-01-06 13:18:09 * @LastEditTime: 2025-01-14 11:49:25
* @FilePath: \znxjxt-ui\src\views\xj\inspection\disease-management\components\merge-dialog.vue * @FilePath: \znxjxt-ui\src\views\xj\inspection\disease-management\components\merge-dialog.vue
* @Description: 病害管理-合并病害弹窗 * @Description: 病害管理-合并病害弹窗
--> -->
@ -145,11 +145,11 @@
</el-table-column> </el-table-column>
<el-table-column label="病害类型" align="center" prop="defectTypeName"> <el-table-column label="病害类型" align="center" prop="defectTypeName">
</el-table-column> </el-table-column>
<el-table-column label="病害状态" align="center" prop="state"> <!-- <el-table-column label="病害状态" align="center" prop="state">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ filterState(scope.row.state) }}</span> <span>{{ filterState(scope.row.state) }}</span>
</template> </template>
</el-table-column> </el-table-column> -->
<el-table-column label="校验状态" align="center" prop="dataStatus"> <el-table-column label="校验状态" align="center" prop="dataStatus">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ <span>{{
@ -226,9 +226,7 @@
></div> ></div>
<div class="rect-image"> <div class="rect-image">
采集时间: 采集时间:
{{ {{ new Date(currentImageItem.createdTime).toLocaleString() }}
new Date(currentImageItem.createdTime).toLocaleString()
}}
起始桩号 {{ currentImageItem.stakeStart || "暂无数据" }} 终止桩号 起始桩号 {{ currentImageItem.stakeStart || "暂无数据" }} 终止桩号
{{ currentImageItem.stakeEnd || "暂无数据" }} {{ currentImageItem.stakeEnd || "暂无数据" }}
病害类型 病害类型
@ -327,16 +325,16 @@ export default {
} }
}, },
/* 过滤列表病害状态 */ // /* */
filterState(value) { // filterState(value) {
let a = null; // let a = null;
[a] = this.defectStatus.filter((item) => { // [a] = this.defectStatus.filter((item) => {
return item.value === value; // return item.value === value;
}); // });
if (a) { // if (a) {
return a.label; // return a.label;
} // }
}, // },
/* 搜索事件 */ /* 搜索事件 */
handleQuery() { handleQuery() {

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 10:58:25 * @Date: 2024-10-08 10:58:25
* @LastEditors: SunTao 328867980@qq.com * @LastEditors: SunTao 328867980@qq.com
* @LastEditTime: 2024-12-24 15:57:52 * @LastEditTime: 2025-01-14 11:50:15
* @FilePath: \znxjxt-ui\src\views\xj\inspection\disease-management\index.vue * @FilePath: \znxjxt-ui\src\views\xj\inspection\disease-management\index.vue
* @Description: 巡检信息管理-病害管理 * @Description: 巡检信息管理-病害管理
--> -->
@ -55,7 +55,7 @@
clearable clearable
></el-cascader> ></el-cascader>
</el-form-item> </el-form-item>
<el-form-item label="病害状态" prop="state"> <!-- <el-form-item label="病害状态" prop="state">
<el-select <el-select
v-model="queryParams.state" v-model="queryParams.state"
placeholder="请选择病害状态" placeholder="请选择病害状态"
@ -68,7 +68,7 @@
:value="item.value" :value="item.value"
/> />
</el-select> </el-select>
</el-form-item> </el-form-item> -->
<el-form-item label="上下行" prop="inspectDirection"> <el-form-item label="上下行" prop="inspectDirection">
<el-select <el-select
v-model="queryParams.inspectDirection" v-model="queryParams.inspectDirection"
@ -79,17 +79,6 @@
<el-option label="下行" value="1" /> <el-option label="下行" value="1" />
</el-select> </el-select>
</el-form-item> </el-form-item>
<!-- <el-form-item label="预警标识" prop="warningFlag">
<el-select
v-model="queryParams.warningFlag"
placeholder="请选择"
clearable
>
<el-option label="是" :value="1" />
<el-option label="否" :value="0" />
</el-select>
</el-form-item> -->
<el-form-item label="公里桩" prop="stakeRange"> <el-form-item label="公里桩" prop="stakeRange">
<el-input <el-input
v-model="queryParams.stakeStart" v-model="queryParams.stakeStart"
@ -172,6 +161,16 @@
/> />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="是否已确认" prop="confirmStatus">
<el-select
v-model="queryParams.confirmStatus"
placeholder="请选择"
clearable
>
<el-option label="确认" value="1" />
<el-option label="未确认" value="2" />
</el-select>
</el-form-item>
<el-form-item> <el-form-item>
<el-button <el-button
type="primary" type="primary"
@ -209,17 +208,16 @@
>删除 >删除
</el-button> </el-button>
</el-col> </el-col>
<!-- <el-col :span="1.5"> <el-col :span="1.5">
<el-button <el-button
type="success" type="success"
plain plain
icon="el-icon-edit-outline" icon="el-icon-top-right"
size="mini" size="mini"
:disabled="multiple" @click="handleExport"
@click="handleUpdateBatch" >导出
>批量确认
</el-button> </el-button>
</el-col> --> </el-col>
</el-row> </el-row>
<!-- 数据表格 --> <!-- 数据表格 -->
@ -239,11 +237,11 @@
</el-table-column> </el-table-column>
<el-table-column label="病害类型" align="center" prop="defectTypeName"> <el-table-column label="病害类型" align="center" prop="defectTypeName">
</el-table-column> </el-table-column>
<el-table-column label="病害状态" align="center" prop="state"> <!-- <el-table-column label="病害状态" align="center" prop="state">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ filterState(scope.row.state) }}</span> <span>{{ filterState(scope.row.state) }}</span>
</template> </template>
</el-table-column> </el-table-column> -->
<el-table-column label="校验状态" align="center" prop="dataStatus"> <el-table-column label="校验状态" align="center" prop="dataStatus">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ <span>{{
@ -386,7 +384,7 @@
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="12" v-if="dialogTitle != '添加缺陷'"> <el-col :span="24" v-if="dialogTitle != '添加缺陷'">
<el-form-item label="校验状态" prop="dataStatus"> <el-form-item label="校验状态" prop="dataStatus">
<el-select <el-select
v-model="form.dataStatus" v-model="form.dataStatus"
@ -402,7 +400,7 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="dialogTitle === '添加缺陷' ? 24 : 12"> <!-- <el-col :span="dialogTitle === '添加缺陷' ? 24 : 12">
<el-form-item label="病害状态" prop="state"> <el-form-item label="病害状态" prop="state">
<el-select <el-select
v-model="form.state" v-model="form.state"
@ -417,7 +415,7 @@
/> />
</el-select> </el-select>
</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">
@ -439,7 +437,7 @@
</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="targetLen"> <el-form-item label="病害长度">
<el-input-number <el-input-number
v-model="form.targetLen" v-model="form.targetLen"
:min="0" :min="0"
@ -449,7 +447,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="病害面积" prop="targetArea"> <el-form-item label="病害面积">
<el-input-number <el-input-number
v-model="form.targetArea" v-model="form.targetArea"
:min="0" :min="0"
@ -635,8 +633,8 @@
></div> ></div>
<div class="rect-image"> <div class="rect-image">
采集时间: 采集时间:
{{ new Date(currentImageItem.createdTime).toLocaleString()}} 起始桩号 {{ new Date(currentImageItem.createdTime).toLocaleString() }}
{{ currentImageItem.stakeStart || "暂无数据" }} 终止桩号 起始桩号 {{ currentImageItem.stakeStart || "暂无数据" }} 终止桩号
{{ currentImageItem.stakeEnd || "暂无数据" }} {{ currentImageItem.stakeEnd || "暂无数据" }}
病害类型 病害类型
{{ currentImageItem.defectTypeName || "暂无数据" }} {{ currentImageItem.defectTypeName || "暂无数据" }}
@ -723,6 +721,7 @@ export default {
maxLen: undefined, maxLen: undefined,
minArea: undefined, minArea: undefined,
maxArea: undefined, maxArea: undefined,
confirmStatus: "",
id: "", id: "",
snapshotId: "", snapshotId: "",
taskId: "", taskId: "",
@ -842,7 +841,7 @@ export default {
this.getSegmentList(); this.getSegmentList();
this.getTableDefect(); this.getTableDefect();
this.getStates(); this.getStates();
this.getDefectStatusList(); // this.getDefectStatusList();
this.getTaskSelectList(); this.getTaskSelectList();
}, },
methods: { methods: {
@ -877,15 +876,15 @@ export default {
* @param {*} value * @param {*} value
* @return {*} * @return {*}
*/ */
filterState(value) { // filterState(value) {
let a = null; // let a = null;
[a] = this.defectStatus.filter((item) => { // [a] = this.defectStatus.filter((item) => {
return item.value === value; // return item.value === value;
}); // });
if (a) { // if (a) {
return a.label; // return a.label;
} // }
}, // },
/** /**
* @description: 查询校验状态下拉数据 * @description: 查询校验状态下拉数据
@ -905,13 +904,13 @@ export default {
* @param {*} val * @param {*} val
* @return {*} * @return {*}
*/ */
getDefectStatusList() { // getDefectStatusList() {
getDefectStatus().then(({ data, code }) => { // getDefectStatus().then(({ data, code }) => {
if (code === 200) { // if (code === 200) {
this.defectStatus = data; // this.defectStatus = data;
} // }
}); // });
}, // },
/** /**
* @description: 查询巡检任务下拉数据 * @description: 查询巡检任务下拉数据
@ -1007,6 +1006,7 @@ export default {
maxLen: undefined, maxLen: undefined,
minArea: undefined, minArea: undefined,
maxArea: undefined, maxArea: undefined,
confirmStatus: "",
id: "", id: "",
snapshotId: "", snapshotId: "",
taskId: "", taskId: "",
@ -1102,7 +1102,7 @@ export default {
this.markers = row.geometry.coordinates; this.markers = row.geometry.coordinates;
this.drawMapPoint(); this.drawMapPoint();
}); });
this.form = { ...row, dataStatus: row.dataStatus.toString() }; this.form = { ...row, dataStatus: row?.dataStatus?.toString() };
this.upload.fileList = row.media.map((item) => { this.upload.fileList = row.media.map((item) => {
return { return {
...item, ...item,
@ -1309,6 +1309,38 @@ export default {
.catch(() => {}); .catch(() => {});
}, },
/**
* @description: 导出按钮事件
* @param {*}
* @return {*}
*/
handleExport() {
const params = {
...this.queryParams,
startTime: this.dateTime ? this.dateTime[0] : "",
endTime: this.dateTime ? this.dateTime[1] : "",
};
exportDefectData(params)
.then((res) => {
const link = document.createElement("a");
const blob = new Blob([res], {
// type: "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
// type: "application/zip",
type: "application/vnd.ms-excel",
});
link.style.display = "none";
link.href = URL.createObjectURL(blob);
// TODO
link.download = item.extId;
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
})
.finally(() => {
this.getList();
});
},
/** /**
* @description: 合并按钮事件 * @description: 合并按钮事件
* @param {*} row * @param {*} row
@ -1338,21 +1370,6 @@ export default {
.catch(() => {}); .catch(() => {});
}, },
/**
* @description: 导出按钮操作
* @param {*} val
* @return {*}
*/
handleExport() {
this.download(
"xj/defect/export",
{
...this.queryParams,
},
`defect_${new Date().getTime()}.xlsx`
);
},
/** /**
* @description: 重置表单数据 * @description: 重置表单数据
* @param {*} val * @param {*} val

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: 2024-12-24 15:37:29 * @LastEditTime: 2025-01-14 14:24:28
* @FilePath: \znxjxt-ui\src\views\xj\inspection\road-management\index.vue * @FilePath: \znxjxt-ui\src\views\xj\inspection\road-management\index.vue
* @Description: 巡检信息-路产管理 * @Description: 巡检信息-路产管理
--> -->
@ -238,7 +238,6 @@
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="路产id" align="center" prop="id" /> <el-table-column label="路产id" align="center" prop="id" />
<el-table-column <el-table-column
label="操作" label="操作"
align="center" align="center"
@ -344,11 +343,11 @@
></div> ></div>
<div class="rect-image"> <div class="rect-image">
采集时间: 采集时间:
{{ new Date(currentImageItem.createdTime).toLocaleString() }} 起始桩号 {{ new Date(currentImageItem.createdTime).toLocaleString() }}
{{ currentImageItem.stakeStart || "暂无数据" }} 终止桩号 起始桩号 {{ currentImageItem.stakeStart || "暂无数据" }} 终止桩号
{{ currentImageItem.stakeEnd || "暂无数据" }} {{ currentImageItem.stakeEnd || "暂无数据" }}
路产类型 路产类型
{{ filterDefect(currentImageItem.equipmentType)|| "暂无数据" }} {{ filterDefect(currentImageItem.equipmentType) || "暂无数据" }}
</div> </div>
</div> </div>
</el-dialog> </el-dialog>
@ -623,7 +622,7 @@ export default {
* @return {*} * @return {*}
*/ */
handleDelete(row) { handleDelete(row) {
const checkIds = row ? [row.id] : this.checkIds; const checkIds = row ? [row.snapshotId] : this.checkIds;
if (!checkIds.length) { if (!checkIds.length) {
this.$modal.msgWarning("请选择要删除的记录"); this.$modal.msgWarning("请选择要删除的记录");
return; return;
@ -673,7 +672,7 @@ export default {
* @return {*} * @return {*}
*/ */
handleSelectionChange(selection) { handleSelectionChange(selection) {
this.checkIds = selection.map((item) => item.id); this.checkIds = selection.map((item) => item.snapshotId);
this.single = selection.length !== 1; this.single = selection.length !== 1;
this.multiple = !selection.length; this.multiple = !selection.length;
}, },

View File

@ -2,7 +2,7 @@
* @Author: SunTao 328867980@qq.com * @Author: SunTao 328867980@qq.com
* @Date: 2024-10-14 09:48:43 * @Date: 2024-10-14 09:48:43
* @LastEditors: SunTao 328867980@qq.com * @LastEditors: SunTao 328867980@qq.com
* @LastEditTime: 2025-01-02 15:21:44 * @LastEditTime: 2025-01-13 17:27:11
* @FilePath: \znxjxt-ui\src\views\xj\inspection\task-management\index.vue * @FilePath: \znxjxt-ui\src\views\xj\inspection\task-management\index.vue
* @Description: 巡检管理-巡检任务 * @Description: 巡检管理-巡检任务
--> -->
@ -440,15 +440,6 @@ export default {
this.dialogItem = item; this.dialogItem = item;
}, },
/**
* @description: 导出文件
* @return {*}
*/
submitForm(item, type) {
console.log(item, "fdfdfd");
this.wordExport(this.dialogItem, type);
},
/** /**
* @description: 导出文件的方法 * @description: 导出文件的方法
* @param {*} item * @param {*} item
@ -473,7 +464,6 @@ export default {
document.body.removeChild(link); document.body.removeChild(link);
}) })
.finally(() => { .finally(() => {
this.exportCancel();
loadingInstance.close(); loadingInstance.close();
}); });
}, },