Browse Source

Merge branch 'release-sy-v1.0.0' of ssh://gitlab.datameta.com:2224/project/water/shuili-vue into release-sy-v1.0.0

sy-water-data-board-ui
panyuyi 1 month ago
parent
commit
7f33b56a4a
  1. 49
      src/api/dike/patrolMaintenance.js
  2. 140
      src/views/dike/runManage/patrolMaintenance/InspectionRecords/index.vue
  3. 137
      src/views/dike/runManage/patrolMaintenance/acceptanceRecords/index.vue
  4. 63
      src/views/dike/runManage/patrolMaintenance/componentsDetails/inspectionRecordDetails.vue
  5. 162
      src/views/dike/runManage/patrolMaintenance/defectList/index.vue
  6. 139
      src/views/dike/runManage/patrolMaintenance/maintenanceRecords/index.vue

49
src/api/dike/patrolMaintenance.js

@ -0,0 +1,49 @@
// 堤防相关接口
import request from '@/utils/request'
export * from './analysis';
/*************************************巡查记录管理**************************************/
// 堤防巡视检查记录列表v2
export function postV2RecordList (data) {
return request({
url: '/run/df/v2/record/list',
method: 'post',
data
})
}
// 堤防巡视检查记录详情v2
export function gettV2Record (id) {
return request({
url: `/run/df/v2/record/${id}`,
method: 'get'
})
}
/*************************************缺陷清单管理**************************************/
// 堤防巡查缺陷列表v2
export function postV2ProblemList (data) {
return request({
url: '/run/df/v2/problem/list',
method: 'post',
data
})
}
/*************************************养护记录管理**************************************/
// 堤防养护列表v2
export function postV2YhList (data) {
return request({
url: '/run/df/v2/yh/list',
method: 'post',
data
})
}
/*************************************验收记录管理**************************************/
// 审批列表
export function postV2ApprovalList (data) {
return request({
url: '/run/df/v2/approval/list',
method: 'post',
data
})
}

140
src/views/dike/runManage/patrolMaintenance/InspectionRecords/index.vue

@ -12,7 +12,7 @@
size="small" size="small"
class="w-202 ml-10" class="w-202 ml-10"
:maxlength="50" :maxlength="50"
v-model="paramsData.patrolName" v-model="paramsData.name"
placeholder="请输入名称" placeholder="请输入名称"
/> />
</div> </div>
@ -23,14 +23,14 @@
clearable clearable
size="small" size="small"
class="w-202 ml-10" class="w-202 ml-10"
v-model="paramsData.patrolType" v-model="paramsData.type"
:popper-append-to-body="false" :popper-append-to-body="false"
filterable filterable
placeholder="请选择" placeholder="请选择"
> >
<el-option label="全部" value=""> </el-option> <el-option label="全部" value=""> </el-option>
<el-option <el-option
v-for="item in xcTypeOptions" v-for="item in maintenanceType"
:key="item.dictValue" :key="item.dictValue"
:label="item.dictLabel" :label="item.dictLabel"
:value="item.dictValue" :value="item.dictValue"
@ -44,7 +44,7 @@
<el-date-picker <el-date-picker
size="small" size="small"
class="ml-10" class="ml-10"
v-model="paramsData.patrolTime" v-model="paramsData.time"
type="daterange" type="daterange"
value-format="yyyy-MM-dd" value-format="yyyy-MM-dd"
range-separator="至" range-separator="至"
@ -72,14 +72,19 @@
clearable clearable
size="small" size="small"
class="w-202 ml-10" class="w-202 ml-10"
v-model="paramsData.patrolCategory" v-model="paramsData.category"
:popper-append-to-body="false" :popper-append-to-body="false"
filterable filterable
placeholder="请选择" placeholder="请选择"
> >
<el-option label="全部" value=""> </el-option> <el-option label="全部" value=""> </el-option>
<el-option label="机电巡查" value="0"> </el-option> <el-option
<el-option label="工程巡查" value="1"> </el-option> v-for="item in maintenanceCategory"
:key="item.dictValue"
:label="item.dictLabel"
:value="item.dictValue"
>
</el-option>
</el-select> </el-select>
</div> </div>
@ -89,15 +94,19 @@
clearable clearable
size="small" size="small"
class="w-202 ml-10" class="w-202 ml-10"
v-model="paramsData.patrolStatus" v-model="paramsData.status"
:popper-append-to-body="false" :popper-append-to-body="false"
filterable filterable
placeholder="请选择" placeholder="请选择"
> >
<el-option label="全部" value=""> </el-option> <el-option label="全部" value=""> </el-option>
<el-option label="日常巡查" value="0"> </el-option> <el-option
<el-option label="不定期巡查" value="1"> </el-option> v-for="item in maintenanceStatus"
<el-option label="汛前巡查" value="2"> </el-option> :key="item.dictValue"
:label="item.dictLabel"
:value="item.dictValue"
>
</el-option>
</el-select> </el-select>
</div> </div>
<div class="flex-1 flex justify-end search-item"> <div class="flex-1 flex justify-end search-item">
@ -123,30 +132,30 @@
:data="tableData" :data="tableData"
border border
> >
<el-table-column prop="orderNumber" align="center" label="单号" /> <el-table-column prop="id" align="center" label="单号" />
<el-table-column prop="patrolName" align="center" label="巡查名称" /> <el-table-column prop="checkingName" align="center" label="巡查名称" />
<el-table-column prop="patrolType" align="center" label="巡查类型"> <el-table-column prop="type" align="center" label="巡查类型">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ <span>{{
getDictLabelName(scope.row.patrolType, "xcTypeOptions") getDictLabelName(scope.row.type, "maintenanceType")
}}</span> }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="patrolCategory" align="center" label="巡查类别"> <el-table-column prop="category" align="center" label="巡查类别">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ <span>{{
getDictLabelName(scope.row.patrolCategory, "xcTypeOptions") getDictLabelName(scope.row.category, "maintenanceCategory")
}}</span> }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="patrolStatus" align="center" label="巡查状态"> <el-table-column prop="status" align="center" label="巡查状态">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ <span>{{
getDictLabelName(scope.row.patrolStatus, "xcTypeOptions") getDictLabelName(scope.row.status, "maintenanceStatus")
}}</span> }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="dutyHolder" align="center" label="责任人" /> <el-table-column prop="dutyHolderName" align="center" label="责任人" />
<el-table-column <el-table-column
prop="startDate" prop="startDate"
align="center" align="center"
@ -178,7 +187,7 @@
<el-button <el-button
type="text" type="text"
size="small" size="small"
@click="handleCheckDetails(scope.row, true)" @click="handleEditDetails(scope.row, true)"
>编辑</el-button >编辑</el-button
> >
</template> </template>
@ -201,34 +210,28 @@
</template> </template>
<script> <script>
import TopBackTitle from "@/components/TopBackTitle/index.vue"; import TopBackTitle from "@/components/TopBackTitle/index.vue";
import { postDFInspectionRecordsList } from "@/api/management";
import { calcTableHeight } from "@/mixins/calcTableHeight"; import { calcTableHeight } from "@/mixins/calcTableHeight";
import {
postV2RecordList
} from "@/api/dike/patrolMaintenance";
export default { export default {
components: {TopBackTitle}, components: {TopBackTitle},
mixins: [calcTableHeight], mixins: [calcTableHeight],
data() { data() {
return { return {
tableData: [ tableData: [],
{ maintenanceStatus: [],
orderNumber: 1, maintenanceCategory: [],
patrolName: '测试', maintenanceType: [],
patrolType: '1',
patrolCategory: '1',
patrolStatus: '1',
dutyHolder: '测试',
}
],
xcTypeOptions: [],
handleStatusOptions: [],
currentRow: {},
paramsData: { paramsData: {
patrolName: "", name: "",
patrolType: "", type: "",
patrolTime: [], time: [],
dutyHolder: '', dutyHolder: '',
patrolCategory: '', category: '',
patrolStatus: '' status: ''
}, },
pageData: { pageData: {
pageNum: 1, // pageNum: 1, //
@ -239,9 +242,18 @@ export default {
}; };
}, },
created() { created() {
this.getDicts("xs_classfy").then((response) => { this.getDicts("patrol_maintenance_status").then((response) => {
this.xcTypeOptions = response.data; this.maintenanceStatus = response.data;
});
this.getDicts("patrol_maintenance_category").then((response) => {
this.maintenanceCategory = response.data;
}); });
this.getDicts("patrol_maintenance_type").then((response) => {
this.maintenanceType = response.data;
});
},
mounted() {
this.getTableData()
}, },
methods: { methods: {
handleCurrentPageChange(page) { handleCurrentPageChange(page) {
@ -252,10 +264,16 @@ export default {
this.pageData.pageSize = pageSize; this.pageData.pageSize = pageSize;
this.getTableData(); this.getTableData();
}, },
handleCheckDetails(row) {
handleCheckDetails() {
this.$router.push({ this.$router.push({
path: "inspectionRecordDetails", path: "inspectionRecordDetails",
query: { id: row.id, checkingId: row.checkingId },
});
},
handleEditDetails(row) {
this.$router.push({
path: "inspectionRecordDetails",
query: { id: row.id, checkingId: row.checkingId, mode: "edit" },
}); });
}, },
getDictLabelName(type, dictListName) { getDictLabelName(type, dictListName) {
@ -273,30 +291,32 @@ export default {
}, },
// //
handleResetQuery() { handleResetQuery() {
this.paramsData.patrolName = ""; this.paramsData.name = "";
this.paramsData.patrolType = ""; this.paramsData.type = "";
this.paramsData.patrolTime = []; this.paramsData.time = [];
this.paramsData.dutyHolder = ""; this.paramsData.dutyHolder = "";
this.paramsData.patrolCategory = ""; this.paramsData.category = "";
this.paramsData.patrolStatus = ""; this.paramsData.status = "";
this.reqCountCalc(); this.reqCountCalc();
this.pageData.pageNum = 1; this.pageData.pageNum = 1;
this.getTableData(); this.getTableData();
}, },
getTableData() { getTableData() {
postDFInspectionRecordsList({ const data = {
name: this.paramsData.name,
type: this.paramsData.type,
dutyHolder: this.paramsData.dutyHolder,
category: this.paramsData.category,
status: this.paramsData.status,
startTime: this.paramsData.time && this.paramsData.time.length > 1 ? this.paramsData.time[0] : '',
endTime: this.paramsData.time && this.paramsData.time.length > 1 ? this.paramsData.time[1] : '',
}
postV2RecordList({
data: { data: {
timeView: { timeView: {
timeField: "create_time", timeField: "create_time",
}, },
adcd: this.paramsData.adcd, ...data,
dikeName: this.paramsData.dikeName,
dikeType: this.paramsData.dikeType,
lineName: this.paramsData.lineName,
lineType: this.paramsData.lineType,
dutyHolderType: this.paramsData.dutyHolderType,
// status: this.paramsData.status,
handleStatus: this.paramsData.handleStatus,
}, },
params: { params: {
sort: "desc", sort: "desc",
@ -306,7 +326,9 @@ export default {
pageNum: this.pageData.pageNum, pageNum: this.pageData.pageNum,
}).then((res) => { }).then((res) => {
if (res) { if (res) {
this.tableData = res.records; this.tableData = [{
id: 1
}];
this.pageData.total = res.total; this.pageData.total = res.total;
} }
}); });

137
src/views/dike/runManage/patrolMaintenance/acceptanceRecords/index.vue

@ -12,7 +12,7 @@
size="small" size="small"
class="w-202 ml-10" class="w-202 ml-10"
:maxlength="50" :maxlength="50"
v-model="paramsData.patrolName" v-model="paramsData.name"
placeholder="请输入名称" placeholder="请输入名称"
/> />
</div> </div>
@ -23,14 +23,14 @@
clearable clearable
size="small" size="small"
class="w-202 ml-10" class="w-202 ml-10"
v-model="paramsData.patrolType" v-model="paramsData.type"
:popper-append-to-body="false" :popper-append-to-body="false"
filterable filterable
placeholder="请选择" placeholder="请选择"
> >
<el-option label="全部" value=""> </el-option> <el-option label="全部" value=""> </el-option>
<el-option <el-option
v-for="item in xcTypeOptions" v-for="item in maintenanceType"
:key="item.dictValue" :key="item.dictValue"
:label="item.dictLabel" :label="item.dictLabel"
:value="item.dictValue" :value="item.dictValue"
@ -44,7 +44,7 @@
<el-date-picker <el-date-picker
size="small" size="small"
class="ml-10" class="ml-10"
v-model="paramsData.patrolTime" v-model="paramsData.time"
type="daterange" type="daterange"
value-format="yyyy-MM-dd" value-format="yyyy-MM-dd"
range-separator="至" range-separator="至"
@ -72,14 +72,19 @@
clearable clearable
size="small" size="small"
class="w-202 ml-10" class="w-202 ml-10"
v-model="paramsData.patrolCategory" v-model="paramsData.category"
:popper-append-to-body="false" :popper-append-to-body="false"
filterable filterable
placeholder="请选择" placeholder="请选择"
> >
<el-option label="全部" value=""> </el-option> <el-option label="全部" value=""> </el-option>
<el-option label="机电巡查" value="0"> </el-option> <el-option
<el-option label="工程巡查" value="1"> </el-option> v-for="item in maintenanceCategory"
:key="item.dictValue"
:label="item.dictLabel"
:value="item.dictValue"
>
</el-option>
</el-select> </el-select>
</div> </div>
@ -89,15 +94,19 @@
clearable clearable
size="small" size="small"
class="w-202 ml-10" class="w-202 ml-10"
v-model="paramsData.patrolStatus" v-model="paramsData.status"
:popper-append-to-body="false" :popper-append-to-body="false"
filterable filterable
placeholder="请选择" placeholder="请选择"
> >
<el-option label="全部" value=""> </el-option> <el-option label="全部" value=""> </el-option>
<el-option label="日常巡查" value="0"> </el-option> <el-option
<el-option label="不定期巡查" value="1"> </el-option> v-for="item in maintenanceStatus"
<el-option label="汛前巡查" value="2"> </el-option> :key="item.dictValue"
:label="item.dictLabel"
:value="item.dictValue"
>
</el-option>
</el-select> </el-select>
</div> </div>
<div class="flex-1 flex justify-end search-item"> <div class="flex-1 flex justify-end search-item">
@ -123,30 +132,30 @@
:data="tableData" :data="tableData"
border border
> >
<el-table-column prop="orderNumber" align="center" label="单号" /> <el-table-column prop="id" align="center" label="单号" />
<el-table-column prop="patrolName" align="center" label="巡查名称" /> <el-table-column prop="checkingName" align="center" label="巡查名称" />
<el-table-column prop="patrolType" align="center" label="巡查类型"> <el-table-column prop="type" align="center" label="巡查类型">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ <span>{{
getDictLabelName(scope.row.patrolType, "xcTypeOptions") getDictLabelName(scope.row.type, "maintenanceType")
}}</span> }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="patrolCategory" align="center" label="巡查类别"> <el-table-column prop="category" align="center" label="巡查类别">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ <span>{{
getDictLabelName(scope.row.patrolCategory, "xcTypeOptions") getDictLabelName(scope.row.category, "maintenanceCategory")
}}</span> }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="patrolStatus" align="center" label="巡查状态"> <el-table-column prop="status" align="center" label="巡查状态">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ <span>{{
getDictLabelName(scope.row.patrolStatus, "xcTypeOptions") getDictLabelName(scope.row.status, "maintenanceStatus")
}}</span> }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="dutyHolder" align="center" label="责任人" /> <el-table-column prop="dutyHolderName" align="center" label="责任人" />
<el-table-column <el-table-column
prop="startDate" prop="startDate"
align="center" align="center"
@ -195,36 +204,27 @@
</template> </template>
<script> <script>
import TopBackTitle from "@/components/TopBackTitle/index.vue"; import TopBackTitle from "@/components/TopBackTitle/index.vue";
import dayjs from "dayjs";
import { postDFInspectionRecordsList } from "@/api/management";
import { calcTableHeight } from "@/mixins/calcTableHeight"; import { calcTableHeight } from "@/mixins/calcTableHeight";
import {
postV2ApprovalList
} from "@/api/dike/patrolMaintenance";
export default { export default {
components: {TopBackTitle}, components: {TopBackTitle},
mixins: [calcTableHeight], mixins: [calcTableHeight],
data() { data() {
return { return {
dayjs, tableData: [],
tableData: [ maintenanceStatus: [],
{ maintenanceCategory: [],
orderNumber: 1, maintenanceType: [],
patrolName: '测试',
patrolType: '1',
patrolCategory: '1',
patrolStatus: '1',
dutyHolder: '测试',
}
],
xcTypeOptions: [],
handleStatusOptions: [],
currentRow: {},
paramsData: { paramsData: {
patrolName: "", name: "",
patrolType: "", type: "",
patrolTime: [], time: [],
dutyHolder: '', dutyHolder: '',
patrolCategory: '', category: '',
patrolStatus: '' status: ''
}, },
pageData: { pageData: {
pageNum: 1, // pageNum: 1, //
@ -235,10 +235,19 @@ export default {
}; };
}, },
created() { created() {
this.getDicts("xs_classfy").then((response) => { this.getDicts("patrol_maintenance_status").then((response) => {
this.xcTypeOptions = response.data; this.maintenanceStatus = response.data;
});
this.getDicts("patrol_maintenance_category").then((response) => {
this.maintenanceCategory = response.data;
});
this.getDicts("patrol_maintenance_type").then((response) => {
this.maintenanceType = response.data;
}); });
}, },
mounted() {
this.getTableData()
},
methods: { methods: {
handleCurrentPageChange(page) { handleCurrentPageChange(page) {
this.pageData.pageNum = page; this.pageData.pageNum = page;
@ -249,14 +258,10 @@ export default {
this.getTableData(); this.getTableData();
}, },
handleCheckDetails(row, canEdit) { handleCheckDetails() {
this.currentRow = row; this.$router.push({
this.currentRow.canEdit = !!canEdit; path: "defectDetails",
this.dialogVisible = true; });
},
calcHours(start, end) {
if (!start || !end) return "-";
return dayjs(end).diff(dayjs(start), "hour");
}, },
getDictLabelName(type, dictListName) { getDictLabelName(type, dictListName) {
if (!this[dictListName]) return ""; if (!this[dictListName]) return "";
@ -273,30 +278,32 @@ export default {
}, },
// //
handleResetQuery() { handleResetQuery() {
this.paramsData.patrolName = ""; this.paramsData.name = "";
this.paramsData.patrolType = ""; this.paramsData.type = "";
this.paramsData.patrolTime = []; this.paramsData.time = [];
this.paramsData.dutyHolder = ""; this.paramsData.dutyHolder = "";
this.paramsData.patrolCategory = ""; this.paramsData.category = "";
this.paramsData.patrolStatus = ""; this.paramsData.status = "";
this.reqCountCalc(); this.reqCountCalc();
this.pageData.pageNum = 1; this.pageData.pageNum = 1;
this.getTableData(); this.getTableData();
}, },
getTableData() { getTableData() {
postDFInspectionRecordsList({ const data = {
name: this.paramsData.name,
type: this.paramsData.type,
dutyHolder: this.paramsData.dutyHolder,
category: this.paramsData.category,
status: this.paramsData.status,
startTime: this.paramsData.time && this.paramsData.time.length > 1 ? this.paramsData.time[0] : '',
endTime: this.paramsData.time && this.paramsData.time.length > 1 ? this.paramsData.time[1] : '',
}
postV2ApprovalList({
data: { data: {
timeView: { timeView: {
timeField: "create_time", timeField: "create_time",
}, },
adcd: this.paramsData.adcd, ...data,
dikeName: this.paramsData.dikeName,
dikeType: this.paramsData.dikeType,
lineName: this.paramsData.lineName,
lineType: this.paramsData.lineType,
dutyHolderType: this.paramsData.dutyHolderType,
// status: this.paramsData.status,
handleStatus: this.paramsData.handleStatus,
}, },
params: { params: {
sort: "desc", sort: "desc",

63
src/views/dike/runManage/patrolMaintenance/componentsDetails/inspectionRecordDetails.vue

@ -38,17 +38,18 @@
placeholder="请输入内容" placeholder="请输入内容"
maxlength="200" maxlength="200"
show-word-limit show-word-limit
resize="none"
v-model="form.describe"> v-model="form.describe">
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-form> </el-form>
<div class="map-box"> <div class="map-box">
<SyMixMap <!-- <SyMixMap-->
:showPosition="false" <!-- :showPosition="false"-->
:entries="entries" <!-- :entries="entries"-->
:canEdit="false" <!-- :canEdit="false"-->
:traceList="traceList" <!-- :traceList="traceList"-->
></SyMixMap> <!-- ></SyMixMap>-->
</div> </div>
</div> </div>
<div class="form-row-title">巡查项</div> <div class="form-row-title">巡查项</div>
@ -76,7 +77,41 @@
<el-table-column prop="inspectionContent" align="center" label="具体描述" /> <el-table-column prop="inspectionContent" align="center" label="具体描述" />
<el-table-column prop="inspectionContent" align="center" label="缺陷照片" /> <el-table-column prop="inspectionContent" align="center" label="缺陷照片" />
<el-table-column prop="inspectionContent" align="center" label="维养状态" /> <el-table-column prop="inspectionContent" align="center" label="维养状态" />
<el-table-column prop="inspectionContent" align="center" label="操作" /> <el-table-column
prop="opera"
align="center"
label="操作"
fixed="right"
width="168"
>
<template slot-scope="scope">
<el-button
style="margin-right: 16px"
type="text"
size="small"
@click="handleCheckDetails(scope.row, false)"
>上传图片</el-button
>
<el-popconfirm
confirm-button-text="确定"
cancel-button-text="取消"
icon="el-icon-info"
icon-color="red"
title="确定删除吗?"
@confirm="deleteTableItem(scope.row)"
>
<el-button
style="color: red"
type="text"
size="small"
slot="reference"
v-hasPermi="['df:run:checking:item:delete']"
>删除</el-button
>
</el-popconfirm>
</template>
</el-table-column>
</el-table> </el-table>
</div> </div>
</div> </div>
@ -86,6 +121,7 @@ import TopBackTitle from "@/components/TopBackTitle/index.vue";
import {calcTableHeight} from "@/mixins/calcTableHeight"; import {calcTableHeight} from "@/mixins/calcTableHeight";
import SyMixMap from "@/views/components/SyMixMap.vue"; import SyMixMap from "@/views/components/SyMixMap.vue";
import {getRecordDetails, getRecordTraceList} from "@/api/dike"; import {getRecordDetails, getRecordTraceList} from "@/api/dike";
import {gettV2Record} from "@/api/dike/patrolMaintenance";
export default { export default {
components: { components: {
@ -126,6 +162,16 @@ export default {
}, },
methods: { methods: {
async initData() { async initData() {
this.getDetail()
this.getMapData()
},
async getDetail() {
console.log(this.$route.query.id)
const details = await gettV2Record(this.$route.query.id);
},
async getMapData() {
//
const res = await getRecordDetails(17); const res = await getRecordDetails(17);
this.entries = res.data?.entries ? JSON.parse(res.data.entries) : {}; this.entries = res.data?.entries ? JSON.parse(res.data.entries) : {};
getRecordTraceList({ getRecordTraceList({
@ -146,9 +192,6 @@ export default {
}) })
?.reverse() || []; ?.reverse() || [];
}); });
console.log('this.traceList', this.traceList)
console.log('this.entries', this.entries)
} }
}, },
}; };

162
src/views/dike/runManage/patrolMaintenance/defectList/index.vue

@ -12,7 +12,7 @@
size="small" size="small"
class="w-202 ml-10" class="w-202 ml-10"
:maxlength="50" :maxlength="50"
v-model="paramsData.patrolName" v-model="paramsData.name"
placeholder="请输入名称" placeholder="请输入名称"
/> />
</div> </div>
@ -23,14 +23,14 @@
clearable clearable
size="small" size="small"
class="w-202 ml-10" class="w-202 ml-10"
v-model="paramsData.patrolType" v-model="paramsData.type"
:popper-append-to-body="false" :popper-append-to-body="false"
filterable filterable
placeholder="请选择" placeholder="请选择"
> >
<el-option label="全部" value=""> </el-option> <el-option label="全部" value=""> </el-option>
<el-option <el-option
v-for="item in xcTypeOptions" v-for="item in maintenanceType"
:key="item.dictValue" :key="item.dictValue"
:label="item.dictLabel" :label="item.dictLabel"
:value="item.dictValue" :value="item.dictValue"
@ -44,7 +44,7 @@
<el-date-picker <el-date-picker
size="small" size="small"
class="ml-10" class="ml-10"
v-model="paramsData.patrolTime" v-model="paramsData.time"
type="daterange" type="daterange"
value-format="yyyy-MM-dd" value-format="yyyy-MM-dd"
range-separator="至" range-separator="至"
@ -72,14 +72,19 @@
clearable clearable
size="small" size="small"
class="w-202 ml-10" class="w-202 ml-10"
v-model="paramsData.patrolCategory" v-model="paramsData.category"
:popper-append-to-body="false" :popper-append-to-body="false"
filterable filterable
placeholder="请选择" placeholder="请选择"
> >
<el-option label="全部" value=""> </el-option> <el-option label="全部" value=""> </el-option>
<el-option label="机电巡查" value="0"> </el-option> <el-option
<el-option label="工程巡查" value="1"> </el-option> v-for="item in maintenanceCategory"
:key="item.dictValue"
:label="item.dictLabel"
:value="item.dictValue"
>
</el-option>
</el-select> </el-select>
</div> </div>
@ -89,15 +94,40 @@
clearable clearable
size="small" size="small"
class="w-202 ml-10" class="w-202 ml-10"
v-model="paramsData.patrolStatus" v-model="paramsData.status"
:popper-append-to-body="false" :popper-append-to-body="false"
filterable filterable
placeholder="请选择" placeholder="请选择"
> >
<el-option label="全部" value=""> </el-option> <el-option label="全部" value=""> </el-option>
<el-option label="日常巡查" value="0"> </el-option> <el-option
<el-option label="不定期巡查" value="1"> </el-option> v-for="item in maintenanceStatus"
<el-option label="汛前巡查" value="2"> </el-option> :key="item.dictValue"
:label="item.dictLabel"
:value="item.dictValue"
>
</el-option>
</el-select>
</div>
<div class="search-item flex items-center">
<span class="search-label">问题等级</span>
<el-select
clearable
size="small"
class="w-202 ml-10"
v-model="paramsData.level"
:popper-append-to-body="false"
filterable
placeholder="请选择"
>
<el-option label="全部" value=""> </el-option>
<el-option
v-for="item in maintenanceLevel"
:key="item.dictValue"
:label="item.dictLabel"
:value="item.dictValue"
>
</el-option>
</el-select> </el-select>
</div> </div>
<div class="flex-1 flex justify-end search-item"> <div class="flex-1 flex justify-end search-item">
@ -123,30 +153,37 @@
:data="tableData" :data="tableData"
border border
> >
<el-table-column prop="orderNumber" align="center" label="单号" /> <el-table-column prop="id" align="center" label="单号" />
<el-table-column prop="patrolName" align="center" label="巡查名称" /> <el-table-column prop="checkingName" align="center" label="巡查名称" />
<el-table-column prop="patrolType" align="center" label="巡查类型"> <el-table-column prop="type" align="center" label="巡查类型">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ <span>{{
getDictLabelName(scope.row.patrolType, "xcTypeOptions") getDictLabelName(scope.row.type, "maintenanceType")
}}</span> }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="patrolCategory" align="center" label="巡查类别"> <el-table-column prop="category" align="center" label="巡查类别">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ <span>{{
getDictLabelName(scope.row.patrolCategory, "xcTypeOptions") getDictLabelName(scope.row.category, "maintenanceCategory")
}}</span> }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="patrolStatus" align="center" label="巡查状态"> <el-table-column prop="level" align="center" label="问题等级">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ <span>{{
getDictLabelName(scope.row.patrolStatus, "xcTypeOptions") getDictLabelName(scope.row.level, "maintenanceLevel")
}}</span> }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="dutyHolder" align="center" label="责任人" /> <el-table-column prop="status" align="center" label="巡查状态">
<template slot-scope="scope">
<span>{{
getDictLabelName(scope.row.status, "maintenanceStatus")
}}</span>
</template>
</el-table-column>
<el-table-column prop="dutyHolderName" align="center" label="责任人" />
<el-table-column <el-table-column
prop="startDate" prop="startDate"
align="center" align="center"
@ -201,36 +238,28 @@
</template> </template>
<script> <script>
import TopBackTitle from "@/components/TopBackTitle/index.vue"; import TopBackTitle from "@/components/TopBackTitle/index.vue";
import dayjs from "dayjs";
import { postDFInspectionRecordsList } from "@/api/management";
import { calcTableHeight } from "@/mixins/calcTableHeight"; import { calcTableHeight } from "@/mixins/calcTableHeight";
import {
postV2ProblemList
} from "@/api/dike/patrolMaintenance";
export default { export default {
components: {TopBackTitle}, components: {TopBackTitle},
mixins: [calcTableHeight], mixins: [calcTableHeight],
data() { data() {
return { return {
dayjs, tableData: [],
tableData: [ maintenanceStatus: [],
{ maintenanceCategory: [],
orderNumber: 1, maintenanceType: [],
patrolName: '测试', maintenanceLevel: [],
patrolType: '1',
patrolCategory: '1',
patrolStatus: '1',
dutyHolder: '测试',
}
],
xcTypeOptions: [],
handleStatusOptions: [],
currentRow: {},
paramsData: { paramsData: {
patrolName: "", name: "",
patrolType: "", type: "",
patrolTime: [], time: [],
dutyHolder: '', dutyHolder: '',
patrolCategory: '', category: '',
patrolStatus: '' status: ''
}, },
pageData: { pageData: {
pageNum: 1, // pageNum: 1, //
@ -241,9 +270,21 @@ export default {
}; };
}, },
created() { created() {
this.getDicts("xs_classfy").then((response) => { this.getDicts("patrol_maintenance_status").then((response) => {
this.xcTypeOptions = response.data; this.maintenanceStatus = response.data;
});
this.getDicts("patrol_maintenance_category").then((response) => {
this.maintenanceCategory = response.data;
});
this.getDicts("patrol_maintenance_type").then((response) => {
this.maintenanceType = response.data;
}); });
this.getDicts("patrol_maintenance_level").then((response) => {
this.maintenanceLevel = response.data;
});
},
mounted() {
this.getTableData()
}, },
methods: { methods: {
handleCurrentPageChange(page) { handleCurrentPageChange(page) {
@ -254,16 +295,11 @@ export default {
this.pageData.pageSize = pageSize; this.pageData.pageSize = pageSize;
this.getTableData(); this.getTableData();
}, },
handleCheckDetails() { handleCheckDetails() {
this.$router.push({ this.$router.push({
path: "defectDetails", path: "defectDetails",
}); });
}, },
calcHours(start, end) {
if (!start || !end) return "-";
return dayjs(end).diff(dayjs(start), "hour");
},
getDictLabelName(type, dictListName) { getDictLabelName(type, dictListName) {
if (!this[dictListName]) return ""; if (!this[dictListName]) return "";
return ( return (
@ -279,30 +315,32 @@ export default {
}, },
// //
handleResetQuery() { handleResetQuery() {
this.paramsData.patrolName = ""; this.paramsData.name = "";
this.paramsData.patrolType = ""; this.paramsData.type = "";
this.paramsData.patrolTime = []; this.paramsData.time = [];
this.paramsData.dutyHolder = ""; this.paramsData.dutyHolder = "";
this.paramsData.patrolCategory = ""; this.paramsData.category = "";
this.paramsData.patrolStatus = ""; this.paramsData.status = "";
this.reqCountCalc(); this.reqCountCalc();
this.pageData.pageNum = 1; this.pageData.pageNum = 1;
this.getTableData(); this.getTableData();
}, },
getTableData() { getTableData() {
postDFInspectionRecordsList({ const data = {
name: this.paramsData.name,
type: this.paramsData.type,
dutyHolder: this.paramsData.dutyHolder,
category: this.paramsData.category,
status: this.paramsData.status,
startTime: this.paramsData.time && this.paramsData.time.length > 1 ? this.paramsData.time[0] : '',
endTime: this.paramsData.time && this.paramsData.time.length > 1 ? this.paramsData.time[1] : '',
}
postV2ProblemList({
data: { data: {
timeView: { timeView: {
timeField: "create_time", timeField: "create_time",
}, },
adcd: this.paramsData.adcd, ...data,
dikeName: this.paramsData.dikeName,
dikeType: this.paramsData.dikeType,
lineName: this.paramsData.lineName,
lineType: this.paramsData.lineType,
dutyHolderType: this.paramsData.dutyHolderType,
// status: this.paramsData.status,
handleStatus: this.paramsData.handleStatus,
}, },
params: { params: {
sort: "desc", sort: "desc",

139
src/views/dike/runManage/patrolMaintenance/maintenanceRecords/index.vue

@ -12,7 +12,7 @@
size="small" size="small"
class="w-202 ml-10" class="w-202 ml-10"
:maxlength="50" :maxlength="50"
v-model="paramsData.patrolName" v-model="paramsData.name"
placeholder="请输入名称" placeholder="请输入名称"
/> />
</div> </div>
@ -23,14 +23,14 @@
clearable clearable
size="small" size="small"
class="w-202 ml-10" class="w-202 ml-10"
v-model="paramsData.patrolType" v-model="paramsData.type"
:popper-append-to-body="false" :popper-append-to-body="false"
filterable filterable
placeholder="请选择" placeholder="请选择"
> >
<el-option label="全部" value=""> </el-option> <el-option label="全部" value=""> </el-option>
<el-option <el-option
v-for="item in xcTypeOptions" v-for="item in maintenanceType"
:key="item.dictValue" :key="item.dictValue"
:label="item.dictLabel" :label="item.dictLabel"
:value="item.dictValue" :value="item.dictValue"
@ -44,7 +44,7 @@
<el-date-picker <el-date-picker
size="small" size="small"
class="ml-10" class="ml-10"
v-model="paramsData.patrolTime" v-model="paramsData.time"
type="daterange" type="daterange"
value-format="yyyy-MM-dd" value-format="yyyy-MM-dd"
range-separator="至" range-separator="至"
@ -72,14 +72,19 @@
clearable clearable
size="small" size="small"
class="w-202 ml-10" class="w-202 ml-10"
v-model="paramsData.patrolCategory" v-model="paramsData.category"
:popper-append-to-body="false" :popper-append-to-body="false"
filterable filterable
placeholder="请选择" placeholder="请选择"
> >
<el-option label="全部" value=""> </el-option> <el-option label="全部" value=""> </el-option>
<el-option label="机电巡查" value="0"> </el-option> <el-option
<el-option label="工程巡查" value="1"> </el-option> v-for="item in maintenanceCategory"
:key="item.dictValue"
:label="item.dictLabel"
:value="item.dictValue"
>
</el-option>
</el-select> </el-select>
</div> </div>
@ -89,15 +94,19 @@
clearable clearable
size="small" size="small"
class="w-202 ml-10" class="w-202 ml-10"
v-model="paramsData.patrolStatus" v-model="paramsData.status"
:popper-append-to-body="false" :popper-append-to-body="false"
filterable filterable
placeholder="请选择" placeholder="请选择"
> >
<el-option label="全部" value=""> </el-option> <el-option label="全部" value=""> </el-option>
<el-option label="日常巡查" value="0"> </el-option> <el-option
<el-option label="不定期巡查" value="1"> </el-option> v-for="item in maintenanceStatus"
<el-option label="汛前巡查" value="2"> </el-option> :key="item.dictValue"
:label="item.dictLabel"
:value="item.dictValue"
>
</el-option>
</el-select> </el-select>
</div> </div>
<div class="flex-1 flex justify-end search-item"> <div class="flex-1 flex justify-end search-item">
@ -123,30 +132,30 @@
:data="tableData" :data="tableData"
border border
> >
<el-table-column prop="orderNumber" align="center" label="单号" /> <el-table-column prop="id" align="center" label="单号" />
<el-table-column prop="patrolName" align="center" label="巡查名称" /> <el-table-column prop="checkingName" align="center" label="巡查名称" />
<el-table-column prop="patrolType" align="center" label="巡查类型"> <el-table-column prop="type" align="center" label="巡查类型">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ <span>{{
getDictLabelName(scope.row.patrolType, "xcTypeOptions") getDictLabelName(scope.row.type, "maintenanceType")
}}</span> }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="patrolCategory" align="center" label="巡查类别"> <el-table-column prop="category" align="center" label="巡查类别">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ <span>{{
getDictLabelName(scope.row.patrolCategory, "xcTypeOptions") getDictLabelName(scope.row.category, "maintenanceCategory")
}}</span> }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="patrolStatus" align="center" label="巡查状态"> <el-table-column prop="status" align="center" label="巡查状态">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ <span>{{
getDictLabelName(scope.row.patrolStatus, "xcTypeOptions") getDictLabelName(scope.row.status, "maintenanceStatus")
}}</span> }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="dutyHolder" align="center" label="责任人" /> <el-table-column prop="dutyHolderName" align="center" label="责任人" />
<el-table-column <el-table-column
prop="startDate" prop="startDate"
align="center" align="center"
@ -201,36 +210,26 @@
</template> </template>
<script> <script>
import TopBackTitle from "@/components/TopBackTitle/index.vue"; import TopBackTitle from "@/components/TopBackTitle/index.vue";
import dayjs from "dayjs";
import { postDFInspectionRecordsList } from "@/api/management";
import { calcTableHeight } from "@/mixins/calcTableHeight"; import { calcTableHeight } from "@/mixins/calcTableHeight";
import {
postV2YhList
} from "@/api/dike/patrolMaintenance";
export default { export default {
components: {TopBackTitle}, components: {TopBackTitle},
mixins: [calcTableHeight], mixins: [calcTableHeight],
data() { data() {
return { return {
dayjs, tableData: [],
tableData: [ maintenanceStatus: [],
{ maintenanceCategory: [],
orderNumber: 1, maintenanceType: [],
patrolName: '测试',
patrolType: '1',
patrolCategory: '1',
patrolStatus: '1',
dutyHolder: '测试',
}
],
xcTypeOptions: [],
handleStatusOptions: [],
currentRow: {},
paramsData: { paramsData: {
patrolName: "", name: "",
patrolType: "", type: "",
patrolTime: [], time: [],
dutyHolder: '', dutyHolder: '',
patrolCategory: '', category: '',
patrolStatus: '' status: ''
}, },
pageData: { pageData: {
pageNum: 1, // pageNum: 1, //
@ -241,10 +240,19 @@ export default {
}; };
}, },
created() { created() {
this.getDicts("xs_classfy").then((response) => { this.getDicts("patrol_maintenance_status").then((response) => {
this.xcTypeOptions = response.data; this.maintenanceStatus = response.data;
});
this.getDicts("patrol_maintenance_category").then((response) => {
this.maintenanceCategory = response.data;
});
this.getDicts("patrol_maintenance_type").then((response) => {
this.maintenanceType = response.data;
}); });
}, },
mounted() {
this.getTableData()
},
methods: { methods: {
handleCurrentPageChange(page) { handleCurrentPageChange(page) {
this.pageData.pageNum = page; this.pageData.pageNum = page;
@ -254,15 +262,10 @@ export default {
this.pageData.pageSize = pageSize; this.pageData.pageSize = pageSize;
this.getTableData(); this.getTableData();
}, },
handleCheckDetails() {
handleCheckDetails(row, canEdit) { this.$router.push({
this.currentRow = row; path: "defectDetails",
this.currentRow.canEdit = !!canEdit; });
this.dialogVisible = true;
},
calcHours(start, end) {
if (!start || !end) return "-";
return dayjs(end).diff(dayjs(start), "hour");
}, },
getDictLabelName(type, dictListName) { getDictLabelName(type, dictListName) {
if (!this[dictListName]) return ""; if (!this[dictListName]) return "";
@ -279,30 +282,32 @@ export default {
}, },
// //
handleResetQuery() { handleResetQuery() {
this.paramsData.patrolName = ""; this.paramsData.name = "";
this.paramsData.patrolType = ""; this.paramsData.type = "";
this.paramsData.patrolTime = []; this.paramsData.time = [];
this.paramsData.dutyHolder = ""; this.paramsData.dutyHolder = "";
this.paramsData.patrolCategory = ""; this.paramsData.category = "";
this.paramsData.patrolStatus = ""; this.paramsData.status = "";
this.reqCountCalc(); this.reqCountCalc();
this.pageData.pageNum = 1; this.pageData.pageNum = 1;
this.getTableData(); this.getTableData();
}, },
getTableData() { getTableData() {
postDFInspectionRecordsList({ const data = {
name: this.paramsData.name,
type: this.paramsData.type,
dutyHolder: this.paramsData.dutyHolder,
category: this.paramsData.category,
status: this.paramsData.status,
startTime: this.paramsData.time && this.paramsData.time.length > 1 ? this.paramsData.time[0] : '',
endTime: this.paramsData.time && this.paramsData.time.length > 1 ? this.paramsData.time[1] : '',
}
postV2YhList({
data: { data: {
timeView: { timeView: {
timeField: "create_time", timeField: "create_time",
}, },
adcd: this.paramsData.adcd, ...data,
dikeName: this.paramsData.dikeName,
dikeType: this.paramsData.dikeType,
lineName: this.paramsData.lineName,
lineType: this.paramsData.lineType,
dutyHolderType: this.paramsData.dutyHolderType,
// status: this.paramsData.status,
handleStatus: this.paramsData.handleStatus,
}, },
params: { params: {
sort: "desc", sort: "desc",

Loading…
Cancel
Save