Browse Source

fix: 联调维修养护和动物防治

sy-water-data-board-ui
panyuyi 1 year ago
parent
commit
58456e4ca0
  1. 27
      src/api/dike/index.js
  2. 94
      src/api/sluice/index.js
  3. 1
      src/assets/icons/svg/icon-folder.svg
  4. 8
      src/assets/styles/index.scss
  5. 201
      src/views/dike/runManage/maintenance/maintenanceManage/index.vue
  6. 57
      src/views/dike/runManage/maintenance/maintenancePlan/index.vue
  7. 678
      src/views/dike/runManage/maintenance/maintenanceRecords/index.vue
  8. 34
      src/views/dike/runManage/pestAnimalControl/controlManage/index.vue
  9. 35
      src/views/dike/runManage/pestAnimalControl/planManagement/index.vue
  10. 142
      src/views/dike/runManage/superVisionInspetion/methodsManage/itemsDetails.vue
  11. 34
      src/views/dike/runManage/superVisionInspetion/methodsManage/itemsList.vue
  12. 229
      src/views/sluice/runManage/maintenance/maintenanceManage/index.vue
  13. 562
      src/views/sluice/runManage/maintenance/maintenancePlan/index.vue
  14. 687
      src/views/sluice/runManage/maintenance/maintenanceRecords/index.vue

27
src/api/dike/index.js

@ -10,6 +10,33 @@ export function getDikeProjectList(data) {
})
}
// 获取维修养护工程列表
export function getDikeYhProjectList(data) {
return request({
url: `/run/df/project/yh/list`,
method: 'post',
data
})
}
// 获取维养计划列表
export function getDikeYhPlanList(data) {
return request({
url: `/run/df/yh/plan/list`,
method: 'post',
data
})
}
// 获取维修养护记录列表
export function getDikeYhRecordList(data) {
return request({
url: `/run/df/yh/record/list`,
method: 'post',
data
})
}
// 巡查记录-巡查记录详情
export function getDikePatrolDetails(id) {
return request({

94
src/api/sluice/index.js

@ -10,6 +10,100 @@ export function getSluiceProjectList(data) {
})
}
// 获取维修养护工程列表
export function getSluiceYhProjectList(data) {
return request({
url: `/run/sz/project/yh/list`,
method: 'post',
data
})
}
// 获取维养计划列表
export function getSluiceYhPlanList(data) {
return request({
url: `/run/sz/yh/plan/list`,
method: 'post',
data
})
}
// 新增维修养护计划
export function postSluiceYhPlan(data) {
return request({
url: `/run/sz/yh/plan`,
method: 'post',
data
})
}
// 修改维修养护计划
export function putSluiceYhPlan(data) {
return request({
url: `/run/sz/yh/plan`,
method: 'put',
data
})
}
// 获取维修养护计划详情
export function getSluiceYhPlanDetails(id) {
return request({
url: `/run/sz/yh/plan/${id}`,
method: 'get'
})
}
// 删除维修养护计划
export function deleteSluiceYhPlan(id) {
return request({
url: `/run/df/yh/plan/${id}`,
method: 'delete',
})
}
// 获取维修养护记录列表
export function getSluiceYhRecordList(data) {
return request({
url: `/run/sz/yh/record/list`,
method: 'post',
data
})
}
// 新增维修养护记录
export function postSluiceYhRecord(data) {
return request({
url: `/run/sz/yh/record`,
method: 'post',
data
})
}
// 修改维修养护记录
export function putSluiceYhRecord(data) {
return request({
url: `/run/sz/yh/record`,
method: 'put',
data
})
}
// 删除维修养护记录
export function deleteSluiceYhRecord(id) {
return request({
url: `/run/sz/yh/record/${id}`,
method: 'delete',
})
}
// 获取维修养护记录详情
export function getSluiceYhRecordDetails(id) {
return request({
url: `/run/sz/yh/record/${id}`,
method: 'get',
})
}
// 巡查记录-巡查记录详情
export function getSluicePatrolDetails(id) {
return request({

1
src/assets/icons/svg/icon-folder.svg

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="none" version="1.1" width="40" height="40" viewBox="0 0 40 40"><defs><linearGradient x1="0.5" y1="0" x2="0.5" y2="1" id="master_svg0_274_75743"><stop offset="0%" stop-color="#FFEE9B" stop-opacity="1"/><stop offset="100%" stop-color="#FFCF5F" stop-opacity="1"/></linearGradient></defs><g><g><rect x="0" y="0" width="40" height="40" rx="0" fill="#FFFFFF" fill-opacity="0"/></g><g><g><rect x="3" y="7.473684310913086" width="34" height="29.526315689086914" rx="4" fill="#E4B54A" fill-opacity="1"/></g><g><path d="M3,33C3,35.2091,4.79086,37,7,37L33,37C35.2091,37,37,35.2091,37,33L37,13.28421L21.9428,13.28422L15.1428,4L7,4C4.79086,4,3,5.79086,3,8L3,33Z" fill="url(#master_svg0_274_75743)" fill-opacity="1"/></g></g></g></svg>

After

Width:  |  Height:  |  Size: 810 B

8
src/assets/styles/index.scss

@ -311,3 +311,11 @@ aside {
.cursor-pointer{
cursor: pointer;
}
.w-full{
width: 100%;
}
.h-full{
height: 100%;
}

201
src/views/dike/runManage/maintenance/maintenanceManage/index.vue

@ -4,16 +4,7 @@
<div class="top-title">维修养护管理</div>
<div class="table-box">
<div class="top-search">
<span>维养时间</span>
<el-date-picker
v-model="queryDateArr"
type="daterange"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
>
</el-date-picker>
<span class="ml-10">堤防名称</span>
<span class="">堤防名称</span>
<el-input
class="search-input"
v-model="searchDikeName"
@ -36,10 +27,7 @@
>
</el-option>
</el-select>
<el-button
class="!ml-10"
type="success"
@click="getTableData(searchInput)"
<el-button class="!ml-10" type="success" @click="getTableData()"
>搜索</el-button
>
<el-button @click="resetSearch()">重置</el-button>
@ -62,11 +50,7 @@
getDictLabel(scope.row.waterAdministrativeDepartment)
}}</template>
</el-table-column>
<el-table-column
prop="updateTime"
align="center"
label="最近维养时间"
/>
<el-table-column prop="lastTime" align="center" label="最近维养时间" />
<el-table-column prop="operate" align="center" label="操作">
<template slot-scope="scope">
<el-button
@ -97,96 +81,10 @@
>
</el-pagination>
</div>
<!-- 弹窗 -->
<el-dialog
title="巡查项目配置"
@close="dialogVisible = false"
:visible.sync="dialogVisible"
width="520px"
>
<el-form
:model="ruleForm"
:rules="rules"
ref="ruleForm"
label-width="100px"
>
<el-form-item
label-width="120px"
label="日常巡查项目"
prop="checkings[0].xcId"
>
<el-select
filterable
remote
:remote-method="(query) => handleGetRemoteProjectListData(0, query)"
@focus="handleGetRemoteProjectListData(0, '')"
v-model="ruleForm.checkings[0].xcId"
placeholder="请选择"
>
<el-option
v-for="item in projectList0"
:label="item.name"
:value="item.id"
:key="item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label-width="120px"
label="定期巡查项目"
prop="checkings[1].xcId"
>
<el-select
filterable
remote
:remote-method="(query) => handleGetRemoteProjectListData(1, query)"
@focus="handleGetRemoteProjectListData(1, '')"
v-model="ruleForm.checkings[1].xcId"
placeholder="请选择"
>
<el-option
v-for="item in projectList1"
:label="item.name"
:value="item.id"
:key="item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label-width="120px"
label="特别巡查项目"
prop="checkings[2].xcId"
>
<el-select
filterable
remote
:remote-method="(query) => handleGetRemoteProjectListData(2, query)"
@focus="handleGetRemoteProjectListData(2, '')"
v-model="ruleForm.checkings[2].xcId"
placeholder="请选择"
>
<el-option
v-for="item in projectList2"
:label="item.name"
:value="item.id"
:key="item.id"
></el-option>
</el-select>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button size="mini" @click="resetForm"> </el-button>
<el-button size="mini" type="primary" @click="submitForm"
>保存</el-button
>
</div>
</el-dialog>
</div>
</template>
<script>
import { getDikeProjectList, postProjectChecking } from "@/api/dike";
import { postDFInspectionProjectList } from "@/api/management";
import { getDikeYhProjectList } from "@/api/dike";
export default {
data() {
@ -214,7 +112,6 @@ export default {
value: "",
},
], //
dikeType: "",
tableData: [
{
id: 1,
@ -225,40 +122,6 @@ export default {
updateTime: "2023-9-5 10:00:00",
},
],
ruleForm: {
dikeCode: "",
checkings: [
{
type: 0,
label: "日常检查",
xcId: "",
},
{
type: 1,
label: "定期检查",
xcId: "",
},
{
type: 2,
label: "特别检查",
xcId: "",
},
],
},
projectList0: [], // type===0
projectList1: [], // type===1
projectList2: [], // type===2
rules: {
["checkings[0].xcId"]: [
{ required: true, message: "请选择", trigger: "change" },
],
["checkings[1].xcId"]: [
{ required: true, message: "请选择", trigger: "change" },
],
["checkings[2].xcId"]: [
{ required: true, message: "请选择", trigger: "change" },
],
},
};
},
created() {
@ -275,10 +138,15 @@ export default {
methods: {
//
getTableData() {
getDikeProjectList({
getDikeYhProjectList({
pageNum: this.pageData.pageNum,
pageSize: this.pageData.pageSize,
data: {},
data: {
dikeName: this.searchDikeName || null,
engineeringManagementUnit: this.engineeringManagementUnit || null,
waterAdministrativeDepartment:
this.waterAdministrativeDepartment || null,
},
}).then((res) => {
if (res) {
this.tableData = res.records;
@ -289,7 +157,8 @@ export default {
//
resetSearch() {
this.searchInput = "";
this.dikeType = "";
this.engineeringManagementUnit = "";
this.waterAdministrativeDepartment = "";
this.getTableData();
},
handleGoPlan(row) {
@ -310,56 +179,12 @@ export default {
},
});
},
//
initProjectList(type, query) {
postDFInspectionProjectList({
data: {
timeView: {
timeField: "create_time",
},
type,
},
cv: {
name: "name",
type: "like",
value: query,
},
pageSize: 20,
pageNum: 1,
}).then((res) => {
if (res) {
this[`projectList${type}`] = res.records;
}
});
},
//
handleGetRemoteProjectListData(type, query) {
this.initProjectList(type, query);
},
getDictLabel(val) {
return (
this.waterAdministrativeDepartmentList?.find((v) => v.dictValue === val)
?.dictLabel || val
);
},
resetForm() {
this.$refs.ruleForm.resetFields();
this.dialogVisible = false;
},
submitForm() {
console.log("表单 >>> ", this.ruleForm);
this.$refs.ruleForm.validate((valid) => {
if (valid) {
postProjectChecking(this.ruleForm).then((res) => {
console.log("res >>>>> ", res);
if (res?.success) {
this.$message.success("配置成功");
this.dialogVisible = false;
}
});
}
});
},
},
};
</script>

57
src/views/dike/runManage/maintenance/maintenancePlan/index.vue

@ -8,6 +8,7 @@ import {
getDFMaintenancePlan,
} from "@/api/management";
import { listDikeInfo } from "@/api/yg/dikeInfo";
import { getDikeYhPlanList } from "@/api/dike";
import DetailsDialog from "./DetailsDialog.vue";
export default {
@ -196,12 +197,10 @@ export default {
},
//
getTableData(value = "") {
postDFMaintenancePlanList({
getDikeYhPlanList({
data: {
timeView: {
timeField: "create_time",
},
dikeCode: this.$route.query.dikeCode,
name: this.searchInput,
},
cv: {
name: "name",
@ -219,7 +218,6 @@ export default {
this.tableData = res.records;
this.pageData.total = res.total;
}
console.log("🚀表格数据🚀", res);
});
},
//
@ -282,48 +280,39 @@ export default {
<div class="top-title">基础信息管理</div>
<div class="table-box">
<div class="top-search">
<span>维养计划名称</span>
<span>计划名称</span>
<el-input
class="search-input"
v-model="searchInput"
placeholder="请输入维养计划名称"
/>
<span>堤防级别</span>
<el-select v-model="searchLevel" placeholder="请选择">
<el-option
v-for="item in dikeLevel"
:label="item.label"
:value="item.value"
:key="item.id"
></el-option>
</el-select>
<el-button class="search-btn" type="success" @click="getTableData()"
>搜索</el-button
>
<el-button @click="resetSearch()">重置</el-button>
<el-button
class="search-btn"
style="margin-right: 16px; margin-bottom: 8px; float: right"
type="success"
@click="getTableData(searchInput)"
>搜索</el-button
@click="dialogVisible = true"
>添加</el-button
>
<el-button @click="resetSearch()">重置</el-button>
</div>
<el-button
class="search-btn"
style="margin-right: 16px; margin-bottom: 8px; float: right"
type="success"
@click="dialogVisible = true"
>添加</el-button
>
<el-table class="table" height="625" :data="tableData" border>
<el-table-column type="index" align="center" label="序号" width="100" />
<el-table-column type="index" align="center" label="序号" width="80" />
<el-table-column prop="name" align="center" label="维养计划名称" />
<el-table-column prop="" align="center" label="堤防级别" />
<el-table-column prop="dikeName" align="center" label="堤防名称" />
<el-table-column prop="location" align="center" label="具体地点" />
<el-table-column prop="content" align="center" label="维修养护内容" />
<el-table-column
prop="nationalSupplement"
align="center"
label="国补"
/>
<el-table-column prop="selfSupplement" align="center" label="自筹" />
<el-table-column prop="nationalSupplement" align="center" label="国补">
<template #default="{ row }"
>{{ row.nationalSupplement }}万元</template
>
</el-table-column>
<el-table-column prop="selfSupplement" align="center" label="自筹">
<template #default="{ row }">{{ row.selfSupplement }}万元</template>
</el-table-column>
<el-table-column
prop="createTime"
align="center"
@ -561,8 +550,6 @@ export default {
background-color: white;
.top-search {
display: flex;
align-items: center;
margin-bottom: 8px;
.search-input {

678
src/views/dike/runManage/maintenance/maintenanceRecords/index.vue

@ -1,179 +1,191 @@
<!-- 维修记录-堤防 -->
<script>
import { putDFMaintenanceRecords, deleteDFMaintenanceRecords, postDFMaintenanceRecords, postDFMaintenanceRecordsList, getDFMaintenanceRecords, getDicts, postDFMaintenancePlanList, getDFMaintenancePlan, listUser } from '@/api/management'
import {
putDFMaintenanceRecords,
deleteDFMaintenanceRecords,
postDFMaintenanceRecords,
getDFMaintenanceRecords,
getDicts,
postDFMaintenancePlanList,
getDFMaintenancePlan,
listUser,
} from "@/api/management";
import { getDikeYhRecordList } from "@/api/dike";
export default {
name: 'InspectionItems',
name: "InspectionItems",
data() {
return {
searchInput: '',
createTimeArr: [],
updateTimeArr: [],
repairCostArr: ["", ""],
selectStatus: "", //
searchInput: "",
dialogVisible: false,
prohibitEditing: false,
statusList: [], //
personnelList: [], //
planData: {
dikeCode: '',
planTime: '',
nationalSupplement: '',
selfSupplement: '',
budget: '',
location: '',
content: ''
dikeCode: "",
planTime: "",
nationalSupplement: "",
selfSupplement: "",
budget: "",
location: "",
content: "",
}, //
planList: [],
embankmentList: [
{
label: '堤防1',
value: '1',
id: '1',
},
{
label: '堤防2',
value: '2',
id: '2',
},
{
label: '堤防3',
value: '3',
id: '3',
}
], //
selectStatus: '2', //
tableData: [], //
pageData: {
pageNum: 1, //
pageSize: 10, //
pageSizes: [10, 20, 50, 100],
total: 0 //
total: 0, //
},
ruleForm: {
name: '',
planId: '',
before: '',
middle: '',
after: '',
name: "",
planId: "",
before: "",
middle: "",
after: "",
maintenanceFunds: 0,
operators: [],
selectUser: [],
implement: '',
remark: '',
implement: "",
remark: "",
status: 0,
},
rules: {
planId: [
{ required: true, message: '请输入维养计划名称', trigger: 'blur' }
{ required: false, message: "请输入维养计划名称", trigger: "blur" },
],
before: [
{ required: true, message: '请输入维修养护前', trigger: 'blur' }
{ required: true, message: "请输入维修养护前", trigger: "blur" },
],
middle: [
{ required: true, message: '请输入维修养护过程', trigger: 'blur' }
{ required: true, message: "请输入维修养护过程", trigger: "blur" },
],
after: [
{ required: true, message: '请输入维修养护结束后', trigger: 'blur' }
]
}
}
{ required: true, message: "请输入维修养护结束后", trigger: "blur" },
],
},
};
},
watch: {
dialogVisible(newVal, oldVal) {
if (oldVal) {
this.prohibitEditing = false
this.prohibitEditing = false;
}
}
},
},
methods: {
//
deleteTableItem(row) {
deleteDFMaintenanceRecords(row.id).then((res) => {
console.log('🚀res🚀', res)
this.getTableData()
this.$message.success('删除成功');
})
console.log("🚀res🚀", res);
this.getTableData();
this.$message.success("删除成功");
});
},
//
viewOrEditPlanDetails(row, edit = false) {
if (!edit) {
this.prohibitEditing = true
this.prohibitEditing = true;
}
getDFMaintenanceRecords(row.id).then((res) => {
// select
if (res.data.operators) {
this.personnelList = []
res.data.operators?.forEach(element => {
this.personnelList = [];
res.data.operators?.forEach((element) => {
listUser({
data: {
timeView: {
timeField: "create_time"
timeField: "create_time",
},
},
cv: {
name: "nickName",
type: "like",
value: element.name
value: element.name,
},
pageSize: 10,
pageNum: 1
pageNum: 1,
}).then((res) => {
this.personnelList.push(res.records[0])
})
this.personnelList.push(res.records[0]);
});
});
if (res.data.plan) {
this.planData = res.data.plan;
this.planData.budget =
res.data.plan.nationalSupplement + res.data.plan.selfSupplement;
}
}
this.ruleForm = res.data
this.ruleForm = res.data;
//
this.ruleForm.selectUser = []
res.data.operators?.forEach(element => {
this.ruleForm.selectUser = [];
res.data.operators?.forEach((element) => {
let a = {
id: element.uid,
lebel: element.name
}
this.ruleForm.selectUser.push(a)
lebel: element.name,
};
this.ruleForm.selectUser.push(a);
});
this.dialogVisible = true
})
this.dialogVisible = true;
});
},
resetForm(){
this.$refs.ruleForm.resetFields()
this.dialogVisible = false
//
confirmPlanDetails(row) {},
resetForm() {
this.$refs.ruleForm.resetFields();
this.dialogVisible = false;
},
//
submitForm(formName, confirm = false) {
this.$refs[formName].validate((valid) => {
if (valid) {
let user = []
this.ruleForm.selectUser.forEach(element => {
let user = [];
this.ruleForm.selectUser?.forEach((element) => {
let a = {
name: element.nickName,
uid: element.id
}
user.push(a)
uid: element.id,
};
user.push(a);
});
console.log('🚀user🚀', user)
this.ruleForm.operators = user
console.log("🚀user🚀", user);
this.ruleForm.operators = user;
if (confirm) {
this.ruleForm.status = 1
this.ruleForm.status = 1;
}
this.ruleForm.maintenanceFunds = Number(this.ruleForm.maintenanceFunds)
this.ruleForm.maintenanceFunds = Number(
this.ruleForm.maintenanceFunds
);
if (this.ruleForm.id) {
putDFMaintenanceRecords(this.ruleForm).then(() => {
this.getTableData()
this.dialogVisible = false
putDFMaintenanceRecords({
dikeCode: this.$route.query.dikeCode,
...this.ruleForm,
}).then(() => {
this.getTableData();
this.dialogVisible = false;
this.$message({
message: confirm ? '确认成功' : '保存成功',
type: 'success'
})
})
message: confirm ? "确认成功" : "保存成功",
type: "success",
});
});
} else {
postDFMaintenanceRecords(this.ruleForm).then(() => {
this.getTableData()
this.dialogVisible = false
postDFMaintenanceRecords({
dikeCode: this.$route.query.dikeCode,
...this.ruleForm,
}).then(() => {
this.getTableData();
this.dialogVisible = false;
this.$message({
message: confirm ? '确认成功' : '保存成功',
type: 'success'
})
})
message: confirm ? "确认成功" : "保存成功",
type: "success",
});
});
}
} else {
console.log('校验不通过');
console.log("校验不通过");
return false;
}
});
@ -183,189 +195,321 @@ export default {
postDFMaintenancePlanList({
data: {
timeView: {
timeField: "create_time"
timeField: "create_time",
},
},
cv: {
name: "name",
type: "like",
value
value,
},
pageSize: 100,
pageNum: 1
pageNum: 1,
}).then((res) => {
if (res) {
this.planList = res.records
this.planList = res.records;
}
})
});
},
//
changeSelectPlan() {
getDFMaintenancePlan(this.ruleForm.planId).then((res) => {
if (res.data) {
this.ruleForm.name = res.data.name
this.planData = res.data
this.planData.budget = res.data.nationalSupplement + res.data.selfSupplement
this.ruleForm.name = res.data.name;
this.planData = res.data;
this.planData.budget =
res.data.nationalSupplement + res.data.selfSupplement;
}
})
});
},
//
searchUser(e) {
listUser({
data: {
timeView: {
timeField: "create_time"
timeField: "create_time",
},
},
cv: {
name: "nickName",
type: "like",
value: e
value: e,
},
pageSize: 100,
pageNum: 1
pageNum: 1,
}).then((res) => {
this.personnelList = res.records
console.log('🚀用户数据🚀', res)
console.log('🚀用户数据🚀', this.ruleForm.operators)
})
this.personnelList = res.records;
});
},
// dialog
closeDialog(ruleForm = 'ruleForm') {
console.log('触发关闭dialog', ruleForm);
closeDialog(ruleForm = "ruleForm") {
console.log("触发关闭dialog", ruleForm);
this.$refs[ruleForm].resetFields();
this.ruleForm = {
name: '',
planId: '',
before: '',
middle: '',
after: '',
name: "",
planId: "",
before: "",
middle: "",
after: "",
maintenanceFunds: 0,
operators: [],
implement: '',
remark: '',
implement: "",
remark: "",
status: 0,
}
};
},
//
getTableData(value = '', status = '') {
postDFMaintenanceRecordsList({
getTableData() {
getDikeYhRecordList({
data: {
timeView: {
timeField: "create_time"
},
status: status == 2 ? '' : status
startCreatedTime: this.createTimeArr[0],
endCreatedTime: this.createTimeArr[1],
startUpdateTime: this.updateTimeArr[0],
endUpdateTime: this.updateTimeArr[1],
minRepairCost: this.repairCostArr[0],
maxRepairCost: this.repairCostArr[1],
status: this.selectStatus,
},
cv: {
name: "name",
type: "like",
value
},
pageSize: this.pageData.pageSize,
pageNum: this.pageData.pageNum
pageNum: this.pageData.pageNum,
}).then((res) => {
if (res) {
this.tableData = res.records
this.pageData.total = res.total
this.tableData = res.records;
this.pageData.total = res.total;
}
console.log('🚀表格数据🚀', res)
})
console.log("🚀表格数据🚀", res);
});
},
//
resetSearch() {
this.searchInput = ''
this.selectStatus = '2'
this.getTableData()
}
this.createTimeArr = [];
this.updateTimeArr = [];
this.repairCostArr = ["", ""];
this.selectStatus = "";
this.getTableData();
},
},
mounted() {
//
if (this.$route.query.name) {
this.searchInput = this.$route.query.name
}
//
this.getTableData(this.$route.query.name || '')
this.searchPlan('')
this.getTableData();
this.searchPlan("");
//
getDicts('xs_yh_record_status').then((res) => {
getDicts("xs_yh_record_status").then((res) => {
if (res.data && Array.isArray(res.data)) {
this.statusList = res.data
this.statusList = res.data;
}
})
});
},
}
};
</script>
<template>
<div class="slider-right">
<div class="top-title">
基础信息管理
</div>
<div class="top-title">基础信息管理</div>
<div class="table-box">
<div class="top-search">
<span>维养计划名称</span>
<el-input class="search-input" v-model="searchInput" placeholder="请输入维养计划名称" />
<span>状态</span>
<el-select v-model="selectStatus" placeholder="请选择">
<el-option label="全部" value="2" />
<el-option v-for="item in statusList" :label="item.dictLabel" :value="item.dictValue"
:key="item.id"></el-option>
</el-select>
<el-button class="search-btn" type="success" @click="getTableData(searchInput, selectStatus)">搜索</el-button>
<el-button @click="resetSearch()">重置</el-button>
<div class="flex items-start">
<div>
<div>
<span>创建时间</span>
<el-date-picker
v-model="createTimeArr"
class="w-360"
type="daterange"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
>
</el-date-picker>
<span class="ml-30">更新时间</span>
<el-date-picker
v-model="updateTimeArr"
type="daterange"
class="w-360"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
></el-date-picker>
</div>
<div class="mt-12">
<span>维修费用</span>
<el-input v-model="repairCostArr[0]" class="w-160"></el-input>
<span> - </span>
<el-input class="w-160" v-model="repairCostArr[1]"></el-input>
<span class="ml-30">维修状态</span>
<el-select
v-model="selectStatus"
class="w-360"
placeholder="请选择"
>
<el-option label="全部" value="" />
<el-option
v-for="item in statusList"
:label="item.dictLabel"
:value="item.dictValue"
:key="item.id"
></el-option>
</el-select>
</div>
</div>
<el-button
class="search-btn !ml-24"
type="success"
@click="getTableData()"
>搜索</el-button
>
<el-button @click="resetSearch()">重置</el-button>
</div>
<el-button
class="search-btn"
style="margin-right: 16px; margin-bottom: 8px"
type="success"
@click="dialogVisible = true"
>添加</el-button
>
</div>
<el-button class="search-btn" style=" margin-right: 16px;margin-bottom: 8px; float: right;" type="success"
@click="dialogVisible = true">添加</el-button>
<el-table class="table" height="625" :data="tableData" border>
<el-table class="table" height="615" :data="tableData" border>
<el-table-column type="index" align="center" label="序号" width="100" />
<el-table-column prop="name" align="center" label="维养计划名称" />
<el-table-column prop="before" align="center" label="维修养护前" />
<el-table-column prop="middle" align="center" label="维修养护过程" />
<el-table-column prop="after" align="center" label="维修养护结束后" />
<el-table-column prop="maintenanceFunds" align="center" label="维修养护费用" />
<el-table-column
prop="maintenanceFunds"
align="center"
label="维修养护费用"
/>
<el-table-column prop="status" align="center" label="状态">
<template slot-scope="scope">
<span v-if="scope.row.status == '0'" class="is-save">已保存</span>
<span v-else class="is-confirm">已确认</span>
</template>
</el-table-column>
<el-table-column prop="createTime" align="center" sortable label="创建时间">
<el-table-column
prop="createTime"
align="center"
sortable
label="创建时间"
>
</el-table-column>
<el-table-column prop="updateTime" align="center" sortable label="更新时间">
<el-table-column
prop="updateTime"
align="center"
sortable
label="更新时间"
>
</el-table-column>
<el-table-column prop="address" align="center" label="操作">
<template slot-scope="scope">
<el-button @click="viewOrEditPlanDetails(scope.row)" type="text" size="small">查看</el-button>
<el-button @click="viewOrEditPlanDetails(scope.row, true)" type="text" v-if="!scope.row.status"
size="small">编辑</el-button>
<el-popconfirm v-if="!scope.row.status" confirm-button-text='确定' cancel-button-text='取消' icon="el-icon-info"
icon-color="red" title="确定删除吗?" @confirm="deleteTableItem(scope.row)">
<el-button style="color: red; margin-left: 10px;" type="text" size="small" slot="reference">删除</el-button>
<el-button
@click="viewOrEditPlanDetails(scope.row)"
type="text"
size="small"
>查看</el-button
>
<el-button
@click="viewOrEditPlanDetails(scope.row, true)"
type="text"
v-if="scope.row.status == '0'"
size="small"
>编辑</el-button
>
<el-popconfirm
v-if="scope.row.status == '0'"
confirm-button-text="确定"
cancel-button-text="取消"
icon="el-icon-info"
icon-color="red"
title="确定确认吗?"
class="ml-10"
@confirm="confirmPlanDetails(scope.row)"
>
<el-button type="text" size="small" slot="reference"
>确认</el-button
>
</el-popconfirm>
<el-popconfirm
v-if="scope.row.status == '0'"
confirm-button-text="确定"
cancel-button-text="取消"
icon="el-icon-info"
icon-color="red"
title="确定删除吗?"
@confirm="deleteTableItem(scope.row)"
>
<el-button
style="color: red; margin-left: 10px"
type="text"
size="small"
slot="reference"
>删除</el-button
>
</el-popconfirm>
</template>
</el-table-column>
</el-table>
<el-pagination background class="pagination" style="margin-top: 16px;margin-right: 16px;float: right;"
:current-page="pageData.pageNum" :page-sizes="pageData.pageSizes" layout="total, prev, pager, next, sizes, jumper"
:total="pageData.total" @size-change="getTableData()">
<el-pagination
background
class="pagination"
style="margin-top: 16px; margin-right: 16px; float: right"
:current-page="pageData.pageNum"
:page-sizes="pageData.pageSizes"
layout="total, prev, pager, next, sizes, jumper"
:total="pageData.total"
@size-change="getTableData()"
>
</el-pagination>
</div>
<el-dialog title="新增/编辑维养计划" @close="closeDialog" :visible.sync="dialogVisible" width="720px">
<div style="display: flex; margin-bottom: 16px;">
<div style="width: 5px; height: 16px; background-color: #31a08e; margin-right: 8px;"></div><span
style="font-weight: 600;">基础信息</span>
<!-- 弹窗 -->
<el-dialog
title="新增/编辑维养记录"
@close="closeDialog"
:visible.sync="dialogVisible"
width="720px"
>
<div style="display: flex; margin-bottom: 16px">
<div
style="
width: 5px;
height: 16px;
background-color: #31a08e;
margin-right: 8px;
"
></div>
<span style="font-weight: 600">基础信息</span>
</div>
<el-form :model="ruleForm" :rules="rules" ref="ruleForm">
<el-form-item label-width="130px" label="维养计划名称" prop="planId">
<el-select v-model="ruleForm.planId" filterable remote :remote-method="searchPlan" placeholder="请输入"
@change="changeSelectPlan" :disabled="prohibitEditing">
<el-option v-for="item in planList" :key="item.id" :label="item.name" :value="item.id">
<el-select
v-model="ruleForm.planId"
filterable
remote
:remote-method="searchPlan"
placeholder="请输入"
@change="changeSelectPlan"
:disabled="prohibitEditing"
>
<el-option
v-for="item in planList"
:key="item.id"
:label="item.name"
:value="item.id"
>
</el-option>
</el-select>
<el-button :disabled="true" class="ml-6" type="success" size="small">详情</el-button>
<el-button :disabled="true" class="ml-6" type="success" size="small">打开地图</el-button>
<el-button :disabled="true" class="!ml-10" type="success" size="small"
>详情</el-button
>
<el-button :disabled="true" class="ml-6" type="success" size="small"
>打开地图</el-button
>
</el-form-item>
<div style="display: flex;">
<div style="display: flex">
<el-form-item label-width="130px" label="堤防名称">
<el-input v-model="planData.dikeCode" disabled />
</el-form-item>
@ -374,17 +518,27 @@ export default {
</el-date-picker>
</el-form-item>
</div>
<div style="display: flex;">
<div style="display: flex">
<el-form-item label-width="130px" label="国补资金">
<div style="display: flex;">
<el-input v-model="planData.nationalSupplement" type="number" disabled style="margin-right: 5px;" />
<div style="width: 50px;">万元</div>
<div style="display: flex">
<el-input
v-model="planData.nationalSupplement"
type="number"
disabled
style="margin-right: 5px"
/>
<div style="width: 50px">万元</div>
</div>
</el-form-item>
<el-form-item label-width="90px" label="自筹资金">
<div style="display: flex;">
<el-input v-model="planData.selfSupplement" type="number" disabled style="margin-right: 5px;" />
<div style="width: 50px;">万元</div>
<div style="display: flex">
<el-input
v-model="planData.selfSupplement"
type="number"
disabled
style="margin-right: 5px"
/>
<div style="width: 50px">万元</div>
</div>
</el-form-item>
<el-form-item label-width="90px" label="项目预算">
@ -392,52 +546,135 @@ export default {
</el-form-item>
</div>
<el-form-item label-width="130px" label="具体地点">
<el-input :autosize="{ minRows: 5 }" type="textarea" maxlength="500" show-word-limit v-model="planData.location"
disabled />
<el-input
:autosize="{ minRows: 5 }"
type="textarea"
maxlength="500"
show-word-limit
v-model="planData.location"
disabled
/>
</el-form-item>
<el-form-item label-width="130px" label="维修养护内容">
<el-input :autosize="{ minRows: 5 }" type="textarea" maxlength="500" show-word-limit v-model="planData.content"
disabled />
<el-input
:autosize="{ minRows: 5 }"
type="textarea"
maxlength="500"
show-word-limit
v-model="planData.content"
disabled
/>
</el-form-item>
<div style="display: flex; margin-bottom: 16px;">
<div style="width: 5px; height: 16px; background-color: #31a08e; margin-right: 8px;"></div><span
style="font-weight: 600;">维修养护记录</span>
<div style="display: flex; margin-bottom: 16px">
<div
style="
width: 5px;
height: 16px;
background-color: #31a08e;
margin-right: 8px;
"
></div>
<span style="font-weight: 600">维修养护记录</span>
</div>
<el-form-item label-width="130px" label="维修养护前" prop="before">
<el-input v-model="ruleForm.before" placeholder="请输入" style="width: 202px;" :disabled="prohibitEditing" />
<el-input
v-model="ruleForm.before"
placeholder="请输入"
style="width: 202px"
:disabled="prohibitEditing"
/>
</el-form-item>
<el-form-item label-width="130px" label="维修养护过程" prop="middle">
<el-input v-model="ruleForm.middle" placeholder="请输入" style="width: 202px;" :disabled="prohibitEditing" />
<el-input
v-model="ruleForm.middle"
placeholder="请输入"
style="width: 202px"
:disabled="prohibitEditing"
/>
</el-form-item>
<el-form-item label-width="130px" label="维修养护结束后" prop="after">
<el-input v-model="ruleForm.after" placeholder="请输入" style="width: 202px;" :disabled="prohibitEditing" />
<el-input
v-model="ruleForm.after"
placeholder="请输入"
style="width: 202px"
:disabled="prohibitEditing"
/>
</el-form-item>
<el-form-item label-width="130px" label="维修养护费用" prop="maintenanceFunds">
<el-input v-model="ruleForm.maintenanceFunds" placeholder="请输入" style="width: 165px;" type="number"
:disabled="prohibitEditing" /> 万元
<el-form-item
label-width="130px"
label="维修养护费用"
prop="maintenanceFunds"
>
<el-input
v-model="ruleForm.maintenanceFunds"
placeholder="请输入"
style="width: 165px"
type="number"
:disabled="prohibitEditing"
/>
万元
</el-form-item>
<el-form-item label-width="130px" label="养护人员" prop="operators">
<!-- <el-input v-model="ruleForm.operators" placeholder="请输入" style="width: 202px;" /> -->
<el-select v-model="ruleForm.selectUser" multiple filterable remote :remote-method="searchUser" value-key="id"
:disabled="prohibitEditing" placeholder="请输入关键词搜索用户" prop="selectUser">
<el-option v-for="item in personnelList" :key="item.id" :label="item.nickName" :value="item">
<el-select
v-model="ruleForm.selectUser"
multiple
filterable
remote
:remote-method="searchUser"
value-key="id"
:disabled="prohibitEditing"
placeholder="请输入关键词搜索用户"
prop="selectUser"
>
<el-option
v-for="item in personnelList"
:key="item.id"
:label="item.nickName"
:value="item"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label-width="130px" label="落实情况" prop="implement">
<el-input :autosize="{ minRows: 5 }" type="textarea" maxlength="500" show-word-limit
v-model="ruleForm.implement" placeholder="请输入" :disabled="prohibitEditing" />
<el-input
:autosize="{ minRows: 5 }"
type="textarea"
maxlength="500"
show-word-limit
v-model="ruleForm.implement"
placeholder="请输入"
:disabled="prohibitEditing"
/>
</el-form-item>
<el-form-item label-width="130px" label="备注" prop="remark">
<el-input :autosize="{ minRows: 5 }" type="textarea" maxlength="500" show-word-limit v-model="ruleForm.remark"
placeholder="请输入" :disabled="prohibitEditing" />
<el-input
:autosize="{ minRows: 5 }"
type="textarea"
maxlength="500"
show-word-limit
v-model="ruleForm.remark"
placeholder="请输入"
:disabled="prohibitEditing"
/>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button size="mini" @click="resetForm('ruleForm')"> </el-button>
<el-button v-if="!prohibitEditing" size="mini" type="primary" @click="submitForm('ruleForm')">保存</el-button>
<el-button v-if="this.ruleForm.status == 0 && prohibitEditing" size="mini" type="primary"
@click="submitForm('ruleForm', true)">确认</el-button>
<el-button
v-if="!prohibitEditing"
size="mini"
type="primary"
@click="submitForm('ruleForm')"
>保存</el-button
>
<el-button
v-if="this.ruleForm.status == 0 && prohibitEditing"
size="mini"
type="primary"
@click="submitForm('ruleForm', true)"
>确认</el-button
>
</div>
</el-dialog>
</div>
@ -462,7 +699,9 @@ export default {
.top-search {
display: flex;
align-items: center;
align-items: flex-start;
justify-content: space-between;
width: 100% !important;
margin-bottom: 8px;
.search-input {
@ -503,13 +742,20 @@ export default {
}
}
.ml-6{
margin-left: 6px;
.w-160 {
width: 170px;
}
.w-240 {
width: 240px;
}
.w-360 {
width: 360px;
}
/deep/.el-input__count {
height: 15px;
line-height: 15px;
margin-right: 10px;
margin-bottom: -4px;
}
</style>
</style>

34
src/views/dike/runManage/pestAnimalControl/controlManage/index.vue

@ -7,7 +7,7 @@
<span>堤防名称</span>
<el-input
class="search-input"
v-model="searchInput"
v-model="searchDikeName"
placeholder="请输入堤防名称"
/>
<span>堤防类型</span>
@ -20,10 +20,7 @@
>
</el-option>
</el-select>
<el-button
class="!ml-10"
type="success"
@click="getTableData(searchInput)"
<el-button class="!ml-10" type="success" @click="getTableData()"
>搜索</el-button
>
<el-button @click="resetSearch()">重置</el-button>
@ -41,7 +38,11 @@
prop="waterAdministrativeDepartment"
align="center"
label="行政主管部门"
/>
>
<template #default="scope">{{
getDictLabel(scope.row.waterAdministrativeDepartment)
}}</template>
</el-table-column>
<el-table-column prop="lastTime" align="center" label="最近巡查时间" />
<el-table-column prop="operate" align="center" label="操作">
<template slot-scope="scope">
@ -161,7 +162,7 @@
</div>
</template>
<script>
import { getDikeProjectList, postProjectChecking } from "@/api/dike";
import { getDikeAnimalProList, postProjectChecking } from "@/api/dike";
import { postDFInspectionProjectList } from "@/api/management";
export default {
@ -173,7 +174,8 @@ export default {
pageSize: 10,
total: 0,
},
searchInput: "",
searchDikeName: "",
waterAdministrativeDepartmentList: [],
dikeTypeList: [
{
label: "全部",
@ -222,6 +224,9 @@ export default {
this.getDicts("embankment_type").then((response) => {
this.dikeTypeList = response.data;
});
this.getDicts("water_administrative_department").then((response) => {
this.waterAdministrativeDepartmentList = response.data;
});
},
mounted() {
this.getTableData();
@ -229,12 +234,12 @@ export default {
methods: {
//
getTableData() {
getDikeProjectList({
getDikeAnimalProList({
pageNum: this.pageData.pageNum,
pageSize: this.pageData.pageSize,
data: {
dikeType: this.dikeType || "",
dikeName: this.searchInput || "",
dikeName: this.searchDikeName || "",
},
}).then((res) => {
if (res) {
@ -243,9 +248,16 @@ export default {
}
});
},
//
getDictLabel(val) {
return (
this.waterAdministrativeDepartmentList?.find((v) => v.dictValue === val)
?.dictLabel || val
);
},
//
resetSearch() {
this.searchInput = "";
this.searchDikeName = "";
this.dikeType = "";
this.getTableData();
},

35
src/views/dike/runManage/pestAnimalControl/planManagement/index.vue

@ -17,9 +17,6 @@ export default {
paramsData: {
name: "",
type: null,
dikeName: "",
selectLevel: "",
selectType: "",
},
dialogVisible: false,
prohibitEditing: false,
@ -282,9 +279,6 @@ export default {
},
name: this.paramsData.name,
type: this.paramsData.type,
dikeName: this.paramsData.dikeName,
dikeGrad: this.paramsData.dikeGrad,
dikeType: this.paramsData.dikeType,
},
cv: {
name: "name",
@ -306,8 +300,8 @@ export default {
},
//
resetSearch() {
this.name = "";
this.selectStatus = "2";
this.paramsData.name = "";
this.paramsData.type = null;
this.getTableData();
},
//
@ -368,7 +362,10 @@ export default {
<div class="body slider-right">
<div class="top-title">基础信息管理</div>
<div class="table-box">
<div class="top-search">
<div class="font-16 font-bold">
{{ $route.query.dikeName + "-" }}防治计划
</div>
<div class="top-search mt-10">
<span>防治计划名称</span>
<el-input
class="search-input"
@ -389,15 +386,15 @@ export default {
>搜索</el-button
>
<el-button @click="resetSearch()">重置</el-button>
<el-button
class="search-btn"
style="margin-right: 16px; margin-bottom: 8px; float: right"
type="success"
@click="openAddDialog()"
>新增</el-button
>
</div>
<el-button
class="search-btn"
style="margin-right: 16px; margin-bottom: 8px; float: right"
type="success"
@click="openAddDialog()"
>新增</el-button
>
<el-table class="table" height="640" :data="tableData" border>
<el-table class="table" height="612" :data="tableData" border>
<el-table-column type="index" align="center" label="序号" width="100" />
<el-table-column prop="name" align="center" label="防治计划名称" />
<el-table-column prop="type" align="center" label="防治类型">
@ -766,7 +763,7 @@ export default {
<style scoped lang="less">
.body {
width: 100%;
min-height: calc(100vh - 56px);
min-height: calc(100vh - 84px);
padding-left: 24px;
.top-title {
@ -780,7 +777,7 @@ export default {
.table-box {
width: 100%;
min-height: calc(100vh - 56px - 64px);
min-height: calc(100vh - 56px - 64px - 28px);
margin-top: 24px;
padding: 16px;
background-color: white;

142
src/views/dike/runManage/superVisionInspetion/methodsManage/itemsDetails.vue

@ -3,9 +3,6 @@
<div class="top-title">基础信息管理</div>
<div class="method-details-page">
<div class="flex justify-between items-center">
<el-button type="primary">{{
fileUrl ? "重新上传" : "上传文件"
}}</el-button>
<span v-if="editTitle">
<el-input class="input" v-model="title"></el-input>
<i
@ -22,16 +19,85 @@
@click="editTitle = !editTitle"
></i
></span>
<el-button @click="$router.go(-1)">返回</el-button>
<el-button @click="$router.go(-1)" size="small">返回</el-button>
</div>
<div class="pdf-preview">
<object
v-if="fileUrl"
class="pdf-box"
:data="fileUrl"
type="application/pdf"
></object>
<div v-else style="color: #333">暂无文件请上传</div>
<div class="flex items-center mt-12">
<span class="flex-shrink-0 font-14">内容检索</span>
<el-input
style="width: 180px; margin-left: 12px"
v-model="searchVal"
placeholder="请输入"
/>
<el-button type="primary" size="small" class="!ml-10">检索</el-button>
</div>
<div class="table-box">
<el-row class="item-row">
<el-col :span="2">
<div class="item-row-content">序号</div>
</el-col>
<el-col :span="3">
<div class="item-row-content">检查项目</div>
</el-col>
<el-col :span="11">
<div class="item-row-content">问题描述</div>
</el-col>
<el-col :span="6">
<div class="item-row-content item-row-content2">
<div class="title-1">问题等级</div>
<div class="flex w-full title-2">
<div class="flex-1 text-center items-center pt-4 pb-4">
一般
</div>
<div class="flex-1 text-center items-center pt-4 pb-4">
较重
</div>
<div class="flex-1 text-center items-center pt-4 pb-4">
严重
</div>
</div>
</div>
</el-col>
<el-col :span="2">
<div class="item-row-content">操作</div>
</el-col>
</el-row>
<el-row class="item-row" v-for="(item, index) in list" :key="item">
<el-col :span="2">
<div class="item-row-content">2</div>
</el-col>
<el-col :span="3">
<div class="item-row-content">12122</div>
</el-col>
<el-col :span="11">
<div class="item-row-content">
<div>这是内容</div>
<div>这是内容</div>
<div>这是内容</div>
</div>
</el-col>
<el-col :span="6">
<div class="item-row-content item-row-content2">
<div class="flex w-full title-2 h-full">
<div class="flex-1 text-center items-center pt-4 pb-4">
一般
</div>
<div class="flex-1 text-center items-center pt-4 pb-4">
较重
</div>
<div class="flex-1 text-center items-center pt-4 pb-4">
严重
</div>
</div>
</div>
</el-col>
<el-col :span="2">
<div class="item-row-content">
<el-button type="text" v-if="index == 0">添加</el-button>
<el-button type="text" v-else>修改</el-button>
<el-button type="text">删除</el-button>
</div>
</el-col>
</el-row>
</div>
</div>
</div>
@ -40,9 +106,20 @@
export default {
data() {
return {
fileUrl: "", //http://gateway.product.dev.com:30115/data-platform-ui/objs/http://minio:9000/data-platform-protocol-model/20240229/11b754af7aef4dc6bff17d5e0bcd919e.pdf
editTitle: false,
title: "标题",
searchVal: "",
list: [
{
pro: "项目A",
questions: ["问题描述111"],
questionLevel: {
1: "实例1",
2: "实例2 ",
3: "实例3",
},
},
],
};
},
created() {},
@ -68,12 +145,39 @@ export default {
background-color: #fff;
padding: 20px;
height: calc(100% - 56px);
.pdf-preview {
height: calc(100% - 50px);
margin-top: 20px;
.pdf-box {
width: 100%;
height: 100%;
.table-box {
border: 1px solid #ccc;
border-radius: 4px;
margin-top: 12px;
.item-row {
display: flex;
.el-col {
box-sizing: border-box;
}
.item-row-content {
padding: 10px;
border: 1px solid #ccc;
height: 100%;
}
.item-row-content2 {
padding: 0;
display: flex;
flex-direction: column;
align-items: center;
.title-1 {
width: 100%;
padding: 4px;
text-align: center;
border-bottom: 1px solid #ccc;
}
.title-2 {
border-top: 1px solid #ccc;
& > *:nth-of-type(2) {
border-left: 2px solid #ccc;
border-right: 2px solid #ccc;
}
}
}
}
}
}

34
src/views/dike/runManage/superVisionInspetion/methodsManage/itemsList.vue

@ -2,11 +2,11 @@
<div class="body slider-right">
<div class="top-title">基础信息管理</div>
<div class="items-list-page">
<div class="flex justify-between">
<div class="pl-20 pr-20 pt-20 flex justify-between">
<el-button type="primary" @click="handleAddNew">新增项目</el-button>
<el-button @click="$router.go(-1)">返回</el-button>
</div>
<div class="pt-20 items-list-box">
<div class="items-list-box">
<div
v-for="item in listData"
:key="item.id"
@ -15,6 +15,10 @@
>
<div class="font-14 font-bold">{{ item.name }}</div>
<div class="font-12 mt-12">2024-2-29 17:30:59</div>
<i
class="el-icon-circle-close font-14 del-btn"
@click.stop="() => {}"
></i>
</div>
<div
v-if="!listData || !listData.length"
@ -91,8 +95,9 @@ export default {
});
},
handleToItemsSetting() {
console.log("??????");
this.$router.push({
path: "",
path: "methodsItemsDetails",
query: {},
});
},
@ -116,14 +121,21 @@ export default {
.items-list-page {
margin-top: 20px;
background-color: #fff;
padding: 20px;
height: calc(100% - 56px);
}
.input {
width: 200px;
}
.items-list-box {
display: grid;
padding: 16px 20px 24px;
overflow-y: auto;
transition: all 0.5s;
grid-template-columns: repeat(auto-fill, 240px);
grid-template-rows: repeat(auto-fill, 160px);
gap: 16px;
.items-list-item {
position: relative;
width: 240px;
height: 160px;
padding: 20px;
@ -132,6 +144,20 @@ export default {
cursor: pointer;
&:hover {
box-shadow: 0 0 10px #eee;
.del-btn {
display: block;
}
}
.del-btn {
display: none;
position: absolute;
font-size: 24px;
z-index: 1;
right: -8px;
top: -8px;
font-weight: 600;
color: #999;
}
}
}

229
src/views/sluice/runManage/maintenance/maintenanceManage/index.vue

@ -4,19 +4,10 @@
<div class="top-title">维修养护管理</div>
<div class="table-box">
<div class="top-search">
<span>维养时间</span>
<el-date-picker
v-model="queryDateArr"
type="daterange"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
>
</el-date-picker>
<span class="ml-10">水闸名称</span>
<span class="">水闸名称</span>
<el-input
class="search-input"
v-model="searchDikeName"
v-model="searchWagaName"
placeholder="请输入水闸名称"
/>
<span>管理单位</span>
@ -27,18 +18,16 @@
/>
<span>行政主管部门</span>
<el-select v-model="waterAdministrativeDepartment" placeholder="请选择">
<el-option :label="'全部'" :value="''"> </el-option>
<el-option
v-for="item in manageUnitList"
:key="item.value"
:label="item.label"
:value="item.value"
v-for="item in waterAdministrativeDepartmentList"
:key="item.dictValue"
:label="item.dictLabel"
:value="item.dictValue"
>
</el-option>
</el-select>
<el-button
class="!ml-10"
type="success"
@click="getTableData(searchInput)"
<el-button class="!ml-10" type="success" @click="getTableData()"
>搜索</el-button
>
<el-button @click="resetSearch()">重置</el-button>
@ -56,12 +45,12 @@
prop="waterAdministrativeDepartment"
align="center"
label="行政主管部门"
/>
<el-table-column
prop="updateTime"
align="center"
label="最近维养时间"
/>
>
<template #default="scope">{{
getDictLabel(scope.row.waterAdministrativeDepartment)
}}</template>
</el-table-column>
<el-table-column prop="lastTime" align="center" label="最近维养时间" />
<el-table-column prop="operate" align="center" label="操作">
<template slot-scope="scope">
<el-button
@ -92,102 +81,17 @@
>
</el-pagination>
</div>
<!-- 弹窗 -->
<el-dialog
title="巡查项目配置"
@close="dialogVisible = false"
:visible.sync="dialogVisible"
width="520px"
>
<el-form
:model="ruleForm"
:rules="rules"
ref="ruleForm"
label-width="100px"
>
<el-form-item
label-width="120px"
label="日常巡查项目"
prop="checkings[0].xcId"
>
<el-select
filterable
remote
:remote-method="(query) => handleGetRemoteProjectListData(0, query)"
@focus="handleGetRemoteProjectListData(0, '')"
v-model="ruleForm.checkings[0].xcId"
placeholder="请选择"
>
<el-option
v-for="item in projectList0"
:label="item.name"
:value="item.id"
:key="item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label-width="120px"
label="定期巡查项目"
prop="checkings[1].xcId"
>
<el-select
filterable
remote
:remote-method="(query) => handleGetRemoteProjectListData(1, query)"
@focus="handleGetRemoteProjectListData(1, '')"
v-model="ruleForm.checkings[1].xcId"
placeholder="请选择"
>
<el-option
v-for="item in projectList1"
:label="item.name"
:value="item.id"
:key="item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label-width="120px"
label="特别巡查项目"
prop="checkings[2].xcId"
>
<el-select
filterable
remote
:remote-method="(query) => handleGetRemoteProjectListData(2, query)"
@focus="handleGetRemoteProjectListData(2, '')"
v-model="ruleForm.checkings[2].xcId"
placeholder="请选择"
>
<el-option
v-for="item in projectList2"
:label="item.name"
:value="item.id"
:key="item.id"
></el-option>
</el-select>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button size="mini" @click="resetForm"> </el-button>
<el-button size="mini" type="primary" @click="submitForm"
>保存</el-button
>
</div>
</el-dialog>
</div>
</template>
<script>
import { getSluiceProjectList, postProjectChecking } from "@/api/sluice";
import { postDFInspectionProjectList } from "@/api/management";
import { getSluiceYhProjectList } from "@/api/sluice";
export default {
data() {
return {
dialogVisible: false,
queryDateArr: [],
waterAdministrativeDepartmentList: [],
manageUnitList: [
{
label: "全部",
@ -199,57 +103,32 @@ export default {
pageSize: 10,
total: 0,
},
searchDikeName: "",
searchWagaName: "",
engineeringManagementUnit: "",
waterAdministrativeDepartment: "",
tableData: [],
ruleForm: {
wagaCode: "",
checkings: [
{
type: 0,
label: "日常检查",
xcId: "",
},
{
type: 1,
label: "定期检查",
xcId: "",
},
{
type: 2,
label: "特别检查",
xcId: "",
},
],
},
projectList0: [], // type===0
projectList1: [], // type===1
projectList2: [], // type===2
rules: {
["checkings[0].xcId"]: [
{ required: true, message: "请选择", trigger: "change" },
],
["checkings[1].xcId"]: [
{ required: true, message: "请选择", trigger: "change" },
],
["checkings[2].xcId"]: [
{ required: true, message: "请选择", trigger: "change" },
],
},
};
},
created() {},
created() {
this.getDicts("water_administrative_department").then((response) => {
this.waterAdministrativeDepartmentList = response.data;
});
},
mounted() {
this.getTableData();
},
methods: {
//
getTableData() {
getSluiceProjectList({
getSluiceYhProjectList({
pageNum: this.pageData.pageNum,
pageSize: this.pageData.pageSize,
data: {},
data: {
wagaName: this.searchWagaName || null,
engineeringManagementUnit: this.engineeringManagementUnit || null,
waterAdministrativeDepartment:
this.waterAdministrativeDepartment || null,
},
}).then((res) => {
if (res) {
this.tableData = res.records;
@ -260,6 +139,8 @@ export default {
//
resetSearch() {
this.searchInput = "";
this.engineeringManagementUnit = "";
this.waterAdministrativeDepartment = "";
this.getTableData();
},
handleGoPlan(row) {
@ -280,49 +161,11 @@ export default {
},
});
},
//
initProjectList(type, query) {
postDFInspectionProjectList({
data: {
timeView: {
timeField: "create_time",
},
type,
},
cv: {
name: "name",
type: "like",
value: query,
},
pageSize: 20,
pageNum: 1,
}).then((res) => {
if (res) {
this[`projectList${type}`] = res.records;
}
});
},
//
handleGetRemoteProjectListData(type, query) {
this.initProjectList(type, query);
},
resetForm() {
this.$refs.ruleForm.resetFields();
this.dialogVisible = false;
},
submitForm() {
console.log("表单 >>> ", this.ruleForm);
this.$refs.ruleForm.validate((valid) => {
if (valid) {
postProjectChecking(this.ruleForm).then((res) => {
console.log("res >>>>> ", res);
if (res?.success) {
this.$message.success("配置成功");
this.dialogVisible = false;
}
});
}
});
getDictLabel(val) {
return (
this.waterAdministrativeDepartmentList?.find((v) => v.dictValue === val)
?.dictLabel || val
);
},
},
};

562
src/views/sluice/runManage/maintenance/maintenancePlan/index.vue

@ -1,334 +1,489 @@
<!-- 维修计划管理-水闸 -->
<script>
import { putSZMaintenancePlan, deleteSZMaintenancePlan, postSZMaintenancePlan, postSZMaintenancePlanList, getSZMaintenancePlan } from '@/api/management'
import {
getSluiceYhPlanList,
getSluiceYhProjectList,
postSluiceYhPlan,
deleteSluiceYhPlan,
putSluiceYhPlan,
getSluiceYhPlanDetails,
} from "@/api/sluice";
export default {
name: 'InspectionItems',
name: "InspectionItems",
data() {
return {
searchInput: '',
searchPlan: "",
dialogVisible: false,
prohibitEditing: false,
dikeLevel: [
{
id: 1,
label: '全部',
value: 1
},
{
id: 2,
label: '一级',
value: 2
},
{
id: 3,
label: '二级',
value: 3
},
{
id: 4,
label: '三级',
value: 4
},
{
id: 5,
label: '四级',
value: 5
},
{
id: 6,
label: '五级及以下',
value: 6
},
], //
embankmentList: [
{
label: '堤防1',
value: '1',
id: '1',
},
{
label: '堤防2',
value: '2',
id: '2',
},
{
label: '堤防3',
value: '3',
id: '3',
}
], //
searchLevel: 1, //
isLoadingSluice: false,
wagaDetailsDialog: {
show: false,
id: "",
},
sluiceList: [], //
tableData: [], //
pageData: {
pageNum: 1, //
pageSize: 10, //
pageSizes: [10, 20, 50, 100],
total: 0 //
total: 0, //
},
ruleForm: {
dikeCode: '',
name: '',
planTime: '',
wagaCode: "",
name: "",
planTime: "",
nationalSupplement: 0,
selfSupplement: 0,
budget: 0,
location: '',
content: '',
wagaCode: 'b'
location: "",
content: "",
},
rules: {
dikeCode: [
{ required: true, message: '请选择堤防名称', trigger: 'blur' }
wagaCode: [
{ required: true, message: "请选择水闸名称", trigger: "blur" },
],
name: [
{ required: true, message: '请输入维养计划名称', trigger: 'blur' },
{ max: 100, message: '名称最长为100个字符', trigger: 'blur' }
{ required: true, message: "请输入维养计划名称", trigger: "blur" },
{ max: 100, message: "名称最长为100个字符", trigger: "blur" },
],
planTime: [
{ required: true, message: '请选计划时间', trigger: 'change' }
{ required: true, message: "请选计划时间", trigger: "change" },
],
nationalSupplement: [
{ required: true, message: '请输入资金', trigger: 'change' }
{ required: true, message: "请输入资金", trigger: "change" },
],
selfSupplement: [
{ required: true, message: '请输入资金', trigger: 'change' }
{ required: true, message: "请输入资金", trigger: "change" },
],
location: [
{ required: true, message: '请输入具体地点', trigger: 'change' }
{ required: true, message: "请输入具体地点", trigger: "change" },
],
content: [
{ required: true, message: '请输入维修养护内容', trigger: 'change' }
{ required: true, message: "请输入维修养护内容", trigger: "change" },
],
}
}
},
};
},
watch: {
dialogVisible(newVal, oldVal) {
if (oldVal) {
this.prohibitEditing = false
this.prohibitEditing = false;
}
}
},
},
methods: {
//
deleteTableItem(row) {
deleteSZMaintenancePlan(row.id).then((res) => {
console.log('🚀res🚀', res)
this.getTableData()
this.$message.success('删除成功');
})
deleteSluiceYhPlan(row.id).then((res) => {
this.$message.success("删除成功");
this.getTableData();
});
},
//
viewOrEditPlanDetails(row, edit = false) {
if (!edit) {
this.prohibitEditing = true
this.prohibitEditing = true;
}
getSZMaintenancePlan(row.id).then((res) => {
console.log('🚀res🚀', res)
this.ruleForm = res.data
this.ruleForm.budget = res.data.nationalSupplement + res.data.selfSupplement
this.dialogVisible = true
})
getSluiceYhPlanDetails(row.id).then((res) => {
this.ruleForm = res.data;
this.ruleForm.budget =
res.data.nationalSupplement + res.data.selfSupplement;
this.dialogVisible = true;
});
},
//
goMaintenanceRecords(row) {
this.$router.push({
path: 'maintenanceRecords',
path: "maintenanceRecords",
query: {
name: row.name
}
})
name: row.name,
wagaCode: row.wagaCode,
wagaName: row.wagaName,
},
});
},
//
submitForm(formName) {
this.$refs[formName].validate((valid) => {
if (valid) {
if (this.ruleForm.id) {
putSZMaintenancePlan(this.ruleForm).then(() => {
this.getTableData()
this.dialogVisible = false
putSluiceYhPlan(this.ruleForm).then(() => {
this.getTableData();
this.dialogVisible = false;
this.$message({
message: '保存成功',
type: 'success'
})
})
message: "保存成功",
type: "success",
});
});
} else {
postSZMaintenancePlan(this.ruleForm).then(() => {
this.getTableData()
this.dialogVisible = false
postSluiceYhPlan(this.ruleForm).then(() => {
this.getTableData();
this.dialogVisible = false;
this.$message({
message: '保存成功',
type: 'success'
})
})
message: "保存成功",
type: "success",
});
});
}
} else {
console.log('校验不通过');
console.log("校验不通过");
return false;
}
});
},
//
resetForm(formName) {
this.$refs[formName].resetFields();
this.dialogVisible = false;
},
// dialog
closeDialog(ruleForm = 'ruleForm') {
console.log('触发关闭dialog', ruleForm);
closeDialog(ruleForm = "ruleForm") {
this.$refs[ruleForm].resetFields();
this.ruleForm = {
dikeCode: '',
name: '',
planTime: '',
wagaCode: "",
name: "",
planTime: "",
nationalSupplement: 0,
selfSupplement: 0,
location: '',
location: "",
budget: 0,
content: '',
wagaCode: 'b'
}
content: "",
};
},
//
calculateBudget() {
this.ruleForm.budget = Number(this.ruleForm.selfSupplement) + Number(this.ruleForm.nationalSupplement)
this.ruleForm.budget =
Number(this.ruleForm.selfSupplement) +
Number(this.ruleForm.nationalSupplement);
},
//
getTableData(value = '') {
postSZMaintenancePlanList({
getTableData(value = "") {
getSluiceYhPlanList({
data: {
timeView: {
timeField: "create_time"
},
wagaCode: this.$route.query.wagaCode,
name: this.searchPlan,
},
cv: {
name: "name",
type: "like",
value
value,
},
pageSize: this.pageData.pageSize,
pageNum: this.pageData.pageNum
pageNum: this.pageData.pageNum,
params: {
orderBy: "update_time",
sort: "desc",
},
}).then((res) => {
if (res) {
this.tableData = res.records
this.pageData.total = res.total
this.tableData = res.records;
this.pageData.total = res.total;
}
console.log('🚀表格数据🚀', res)
})
},
//
resetForm(formName) {
this.$refs[formName].resetFields();
this.dialogVisible = false
});
},
//
resetSearch() {
this.searchInput = ''
this.searchLevel = 1
this.getTableData()
}
this.searchPlan = "";
this.getTableData();
},
//
getBaseSluiceData(key) {
getSluiceYhProjectList({
pageNum: 1,
pageSize: 20,
data: {
wagaName: key || null,
},
//
params: {
//
orderBy: "create_time",
// descasc
sort: "desc",
},
}).then((res) => {
this.sluiceList = res?.records || [];
});
},
handleChangeSluice(value) {
this.ruleForm.name = this.ruleForm.wagaCode;
let res = this.sluiceList.find((v) => v.wagaCode === value);
this.wagaDetailsDialog.id = res?.id || "";
},
//
handleOpenDetails() {},
//
handleOpenMap(wagaCode) {
if (wagaCode) {
}
},
remoteGetSluiceListMethod(key) {
this.getBaseSluiceData(key);
},
},
mounted() {
//
this.getTableData()
this.getTableData();
this.getBaseSluiceData();
},
}
};
</script>
<template>
<div class="slider-right">
<div class="top-title">
基础信息管理
</div>
<div class="top-title">基础信息管理</div>
<div class="table-box">
<div class="top-search">
<span>维养计划名称</span>
<el-input class="search-input" v-model="searchInput" placeholder="请输入维养计划名称" />
<span>堤防级别</span>
<el-select v-model="searchLevel" placeholder="请选择">
<el-option v-for="item in dikeLevel" :label="item.label" :value="item.value" :key="item.id"></el-option>
</el-select>
<el-button class="search-btn" type="success" @click="getTableData(searchInput)">搜索</el-button>
<span>计划名称</span>
<el-input
class="search-input"
v-model="searchPlan"
placeholder="请输入维养计划名称"
/>
<el-button class="search-btn" type="success" @click="getTableData()"
>搜索</el-button
>
<el-button @click="resetSearch()">重置</el-button>
<el-button
class="search-btn"
style="margin-right: 16px; margin-bottom: 8px; float: right"
type="success"
@click="dialogVisible = true"
>添加</el-button
>
</div>
<el-button class="search-btn" style=" margin-right: 16px;margin-bottom: 8px; float: right;" type="success"
@click="dialogVisible = true">添加</el-button>
<el-table height="625" :data="tableData" border>
<el-table-column type="index" align="center" label="序号" width="100" />
<el-table class="table" height="625" :data="tableData" border>
<el-table-column type="index" align="center" label="序号" width="80" />
<el-table-column prop="name" align="center" label="维养计划名称" />
<el-table-column prop="" align="center" label="堤防级别" />
<el-table-column prop="wagaName" align="center" label="水闸名称" />
<el-table-column prop="location" align="center" label="具体地点" />
<el-table-column prop="content" align="center" label="维修养护内容" />
<el-table-column prop="nationalSupplement" align="center" label="国补" />
<el-table-column prop="selfSupplement" align="center" label="自筹" />
<el-table-column prop="createTime" align="center" sortable label="创建时间">
<el-table-column prop="nationalSupplement" align="center" label="国补">
<template #default="{ row }"
>{{ row.nationalSupplement }}万元</template
>
</el-table-column>
<el-table-column prop="updateTime" align="center" sortable label="更新时间">
<el-table-column prop="selfSupplement" align="center" label="自筹">
<template #default="{ row }">{{ row.selfSupplement }}万元</template>
</el-table-column>
<el-table-column
prop="createTime"
align="center"
sortable
label="创建时间"
>
</el-table-column>
<el-table-column
prop="updateTime"
align="center"
sortable
label="更新时间"
>
</el-table-column>
<el-table-column prop="address" align="center" label="操作">
<template slot-scope="scope">
<el-button @click="viewOrEditPlanDetails(scope.row)" type="text" size="small">查看</el-button>
<el-button @click="viewOrEditPlanDetails(scope.row, true)" type="text" size="small">编辑</el-button>
<el-button style=" margin-right: 9px;" type="text" size="small"
@click="goMaintenanceRecords(scope.row)">记录</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">删除</el-button>
<el-button
@click="viewOrEditPlanDetails(scope.row)"
type="text"
size="small"
>查看</el-button
>
<el-button
@click="viewOrEditPlanDetails(scope.row, true)"
type="text"
size="small"
>编辑</el-button
>
<el-button
style="margin-right: 9px"
type="text"
size="small"
@click="goMaintenanceRecords(scope.row)"
>记录</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"
>删除</el-button
>
</el-popconfirm>
</template>
</el-table-column>
</el-table>
<el-pagination background class="pagination" style="margin-top: 16px;margin-right: 16px;float: right;"
:current-page="pageData.pageNum" :page-sizes="pageData.pageSizes" layout="total, prev, pager, next, sizes, jumper"
:total="pageData.total" @size-change="getTableData()">
<el-pagination
background
class="pagination"
style="margin-top: 16px; margin-right: 16px; float: right"
:current-page="pageData.pageNum"
:page-sizes="pageData.pageSizes"
layout="total, prev, pager, next, sizes, jumper"
:total="pageData.total"
@size-change="getTableData()"
>
</el-pagination>
</div>
<!-- 弹窗 -->
<el-dialog title="新增/编辑维养计划" @close="closeDialog" :visible.sync="dialogVisible" width="720px">
<div style="display: flex; margin-bottom: 16px;">
<div style="width: 5px; height: 16px; background-color: #31a08e; margin-right: 8px;"></div><span
style="font-weight: 600;">基础信息</span>
<el-dialog
title="新增/编辑维养计划"
@close="closeDialog"
:visible.sync="dialogVisible"
width="720px"
>
<div style="display: flex; margin-bottom: 16px">
<div
style="
width: 5px;
height: 16px;
background-color: #31a08e;
margin-right: 8px;
"
></div>
<span style="font-weight: 600">基础信息</span>
</div>
<el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px">
<el-form-item label-width="120px" label="堤防名称" prop="dikeCode">
<el-select v-model="ruleForm.dikeCode" placeholder="请选择" @change="ruleForm.name = ruleForm.dikeCode"
:disabled="prohibitEditing">
<el-option v-for="item in embankmentList" :label="item.label" :value="item.value" :key="item.id"></el-option>
<el-form
:model="ruleForm"
:rules="rules"
ref="ruleForm"
label-width="100px"
>
<el-form-item label-width="120px" label="水闸名称" prop="wagaCode">
<el-select
filterable
remote
v-model="ruleForm.wagaCode"
placeholder="请输入"
:remote-method="remoteGetSluiceListMethod"
:loading="isLoadingSluice"
@change="handleChangeSluice"
:disabled="prohibitEditing"
>
<el-option
v-for="item in sluiceList"
:label="item.wagaName"
:value="item.wagaCode"
:key="item.id"
></el-option>
</el-select>
<el-button button class="search-btn" type="success" size="small">详情</el-button>
<el-button button class="search-btn" type="success" size="small">打开地图</el-button>
<el-button
:disabled="!ruleForm.wagaCode"
class="ml-6"
type="success"
size="small"
@click="handleOpenDetails"
>详情</el-button
>
<el-button
:disabled="!ruleForm.wagaCode"
class="ml-6"
type="success"
size="small"
@click="handleOpenMap"
>打开地图</el-button
>
</el-form-item>
<div style="display: flex;">
<div style="display: flex">
<el-form-item label-width="120px" label="维养计划名称" prop="name">
<el-input style="width: 202px;" v-model="ruleForm.name" placeholder="请输入" :disabled="prohibitEditing" />
<el-input
style="width: 202px"
v-model="ruleForm.name"
placeholder="请输入"
:disabled="prohibitEditing"
/>
</el-form-item>
<el-form-item label-width="120px" label="计划时间" prop="planTime">
<el-date-picker v-model="ruleForm.planTime" type="month" placeholder="选择月" :disabled="prohibitEditing"
value-format="yy-MM-dd">
<el-date-picker
v-model="ruleForm.planTime"
type="month"
placeholder="选择月"
:disabled="prohibitEditing"
value-format="yy-MM-dd"
>
</el-date-picker>
</el-form-item>
</div>
<div style="display: flex;">
<el-form-item label-width="120px" label="国补资金" prop="nationalSupplement">
<el-input style="width: 79px;" v-model="ruleForm.nationalSupplement" type="number" @input="calculateBudget()"
placeholder="请输入" :disabled="prohibitEditing" /> 万元
<div style="display: flex">
<el-form-item
label-width="120px"
label="国补资金"
prop="nationalSupplement"
>
<el-input
style="width: 79px"
v-model="ruleForm.nationalSupplement"
type="number"
@input="calculateBudget()"
placeholder="请输入"
:disabled="prohibitEditing"
/>
万元
</el-form-item>
<el-form-item label-width="120px" label="自筹资金" prop="selfSupplement">
<el-input style="width: 79px;" v-model="ruleForm.selfSupplement" type="number" @input="calculateBudget()"
placeholder="请输入" :disabled="prohibitEditing" /> 万元
<el-form-item
label-width="120px"
label="自筹资金"
prop="selfSupplement"
>
<el-input
style="width: 79px"
v-model="ruleForm.selfSupplement"
type="number"
@input="calculateBudget()"
placeholder="请输入"
:disabled="prohibitEditing"
/>
万元
</el-form-item>
<el-form-item label-width="120px" label="项目预算">
<el-input style="width: 79px;" v-model="ruleForm.budget" disabled />
<el-input style="width: 79px" v-model="ruleForm.budget" disabled />
</el-form-item>
</div>
<el-form-item label-width="120px" label="具体地点" prop="location">
<el-input style="width: 542px;" :autosize="{ minRows: 5 }" type="textarea" maxlength="500" show-word-limit
v-model="ruleForm.location" placeholder="请输入" :disabled="prohibitEditing" />
<el-input
style="width: 542px"
:autosize="{ minRows: 5 }"
type="textarea"
maxlength="500"
show-word-limit
v-model="ruleForm.location"
placeholder="请输入"
:disabled="prohibitEditing"
/>
</el-form-item>
<el-form-item label-width="120px" label="维修养护内容" prop="content">
<el-input style="width: 542px;" :autosize="{ minRows: 5 }" type="textarea" maxlength="500" show-word-limit
v-model="ruleForm.content" placeholder="请输入" :disabled="prohibitEditing" />
<el-input
style="width: 542px"
:autosize="{ minRows: 5 }"
type="textarea"
maxlength="500"
show-word-limit
v-model="ruleForm.content"
placeholder="请输入"
:disabled="prohibitEditing"
/>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button size="mini" @click="resetForm('ruleForm')"> </el-button>
<el-button v-if="!prohibitEditing" size="mini" type="primary" @click="submitForm('ruleForm')">保存</el-button>
<el-button
v-if="!prohibitEditing"
size="mini"
type="primary"
@click="submitForm('ruleForm')"
>保存</el-button
>
</div>
</el-dialog>
</div>
@ -345,15 +500,12 @@ export default {
}
.table-box {
width: 100%;
height: calc(100% - 50px - 24px);
margin-top: 24px;
padding: 16px;
background-color: white;
.top-search {
display: flex;
align-items: center;
margin-bottom: 8px;
.search-input {
@ -365,16 +517,20 @@ export default {
.search-btn {
margin-left: 10px;
background-color: #37b29e;
// background-color: #37b29e;
border: none;
&:hover {
background-color: #5ac6b9;
}
// &:hover {
// background-color: #5ac6b9;
// }
&:active {
background-color: #2b8070;
}
// &:active {
// background-color: #2b8070;
// }
}
.ml-6 {
margin-left: 6px;
}
/deep/.el-input__count {

687
src/views/sluice/runManage/maintenance/maintenanceRecords/index.vue

@ -1,385 +1,541 @@
<!-- 维修记录-水闸 -->
<script>
import { putSZMaintenanceRecords, deleteSZMaintenanceRecords, postSZMaintenanceRecords, postSZMaintenanceRecordsList, getSZMaintenanceRecords, getDicts, postSZMaintenancePlanList, getSZMaintenancePlan, listUser } from '@/api/management'
import { getDicts, listUser } from "@/api/management";
import {
getSluiceYhRecordList,
getSluiceYhRecordDetails,
getSluiceYhPlanList,
postSluiceYhRecord,
putSluiceYhRecord,
deleteSluiceYhRecord,
getSluiceYhPlanDetails,
} from "@/api/sluice";
export default {
name: 'InspectionItems',
name: "maintenanceRecords",
data() {
return {
searchInput: '',
createTimeArr: [],
updateTimeArr: [],
repairCostArr: ["", ""],
selectStatus: "", //
searchInput: "",
dialogVisible: false,
prohibitEditing: false,
statusList: [], //
personnelList: [], //
planData: {
dikeCode: '',
planTime: '',
nationalSupplement: '',
selfSupplement: '',
budget: '',
location: '',
content: ''
wagaCode: "",
planTime: "",
nationalSupplement: "",
selfSupplement: "",
budget: "",
location: "",
content: "",
}, //
planList: [],
embankmentList: [
{
label: '堤防1',
value: '1',
id: '1',
},
{
label: '堤防2',
value: '2',
id: '2',
},
{
label: '堤防3',
value: '3',
id: '3',
}
], //
selectStatus: '2', //
tableData: [], //
pageData: {
pageNum: 1, //
pageSize: 10, //
pageSizes: [10, 20, 50, 100],
total: 0 //
total: 0, //
},
ruleForm: {
name: '',
planId: '',
before: '',
middle: '',
after: '',
name: "",
planId: "",
before: "",
middle: "",
after: "",
maintenanceFunds: 0,
operators: [],
selectUser: [],
implement: '',
remark: '',
implement: "",
remark: "",
status: 0,
},
rules: {
planId: [
{ required: true, message: '请输入维养计划名称', trigger: 'blur' }
{ required: false, message: "请输入维养计划名称", trigger: "blur" },
],
before: [
{ required: true, message: '请输入维修养护前', trigger: 'blur' }
{ required: true, message: "请输入维修养护前", trigger: "blur" },
],
middle: [
{ required: true, message: '请输入维修养护过程', trigger: 'blur' }
{ required: true, message: "请输入维修养护过程", trigger: "blur" },
],
after: [
{ required: true, message: '请输入维修养护结束后', trigger: 'blur' }
]
}
}
{ required: true, message: "请输入维修养护结束后", trigger: "blur" },
],
},
};
},
watch: {
dialogVisible(newVal, oldVal) {
if (oldVal) {
this.prohibitEditing = false
this.prohibitEditing = false;
}
}
},
},
methods: {
//
deleteTableItem(row) {
deleteSZMaintenanceRecords(row.id).then((res) => {
console.log('🚀res🚀', res)
this.getTableData()
this.$message.success('删除成功');
})
deleteSluiceYhRecord(row.id).then((res) => {
this.getTableData();
this.$message.success("删除成功");
});
},
//
viewOrEditPlanDetails(row, edit = false) {
if (!edit) {
this.prohibitEditing = true
this.prohibitEditing = true;
}
getSZMaintenanceRecords(row.id).then((res) => {
getSluiceYhRecordDetails(row.id).then((res) => {
// select
if (res.data.operators) {
this.personnelList = []
res.data.operators.forEach(element => {
this.personnelList = [];
res.data.operators?.forEach((element) => {
listUser({
data: {
timeView: {
timeField: "create_time"
timeField: "create_time",
},
},
cv: {
name: "nickName",
type: "like",
value: element.name
value: element.name,
},
pageSize: 10,
pageNum: 1
pageNum: 1,
}).then((res) => {
this.personnelList.push(res.records[0])
})
this.personnelList.push(res.records[0]);
});
});
if (res.data.plan) {
this.planData = res.data.plan;
this.planData.budget =
res.data.plan.nationalSupplement + res.data.plan.selfSupplement;
}
}
this.ruleForm = res.data
this.ruleForm = res.data;
//
this.ruleForm.selectUser = []
res.data.operators.forEach(element => {
this.ruleForm.selectUser = [];
res.data.operators?.forEach((element) => {
let a = {
id: element.uid,
lebel: element.name
}
this.ruleForm.selectUser.push(a)
lebel: element.name,
};
this.ruleForm.selectUser.push(a);
});
this.dialogVisible = true
})
this.dialogVisible = true;
});
},
//
confirmPlanDetails(row) {},
resetForm() {
this.$refs.ruleForm.resetFields();
this.dialogVisible = false;
},
//
submitForm(formName, confirm = false) {
this.$refs[formName].validate((valid) => {
if (valid) {
let user = []
this.ruleForm.selectUser.forEach(element => {
let user = [];
this.ruleForm.selectUser?.forEach((element) => {
let a = {
name: element.nickName,
uid: element.id
}
user.push(a)
uid: element.id,
};
user.push(a);
});
console.log('🚀user🚀', user)
this.ruleForm.operators = user
console.log("🚀user🚀", user);
this.ruleForm.operators = user;
if (confirm) {
this.ruleForm.status = 1
this.ruleForm.status = 1;
}
this.ruleForm.maintenanceFunds = Number(this.ruleForm.maintenanceFunds)
this.ruleForm.maintenanceFunds = Number(
this.ruleForm.maintenanceFunds
);
if (this.ruleForm.id) {
putSZMaintenanceRecords(this.ruleForm).then(() => {
this.getTableData()
this.dialogVisible = false
putSluiceYhRecord({
wagaCode: this.$route.query.wagaCode,
...this.ruleForm,
}).then(() => {
this.getTableData();
this.dialogVisible = false;
this.$message({
message: confirm ? '确认成功' : '保存成功',
type: 'success'
})
})
message: confirm ? "确认成功" : "保存成功",
type: "success",
});
});
} else {
postSZMaintenanceRecords(this.ruleForm).then(() => {
this.getTableData()
this.dialogVisible = false
postSluiceYhRecord({
wagaCode: this.$route.query.wagaCode,
...this.ruleForm,
}).then(() => {
this.getTableData();
this.dialogVisible = false;
this.$message({
message: confirm ? '确认成功' : '保存成功',
type: 'success'
})
})
message: confirm ? "确认成功" : "保存成功",
type: "success",
});
});
}
} else {
console.log('校验不通过');
console.log("校验不通过");
return false;
}
});
},
//
searchPlan(value) {
postSZMaintenancePlanList({
getSluiceYhPlanList({
data: {
timeView: {
timeField: "create_time"
},
name: value || null,
},
cv: {
name: "name",
type: "like",
value
value,
},
pageSize: 100,
pageNum: 1
pageNum: 1,
}).then((res) => {
if (res) {
this.planList = res.records
this.planList = res.records;
}
})
});
},
//
changeSelectPlan() {
getSZMaintenancePlan(this.ruleForm.planId).then((res) => {
getSluiceYhPlanDetails(this.ruleForm.planId).then((res) => {
if (res.data) {
this.ruleForm.name = res.data.name
this.planData = res.data
this.planData.budget = res.data.nationalSupplement + res.data.selfSupplement
this.ruleForm.name = res.data.name;
this.planData = res.data;
this.planData.budget =
res.data.nationalSupplement + res.data.selfSupplement;
}
})
});
},
//
searchUser(e) {
listUser({
data: {
timeView: {
timeField: "create_time"
timeField: "create_time",
},
},
cv: {
name: "nickName",
type: "like",
value: e
value: e,
},
pageSize: 100,
pageNum: 1
pageNum: 1,
}).then((res) => {
this.personnelList = res.records
console.log('🚀用户数据🚀', res)
console.log('🚀用户数据🚀', this.ruleForm.operators)
})
this.personnelList = res.records;
});
},
// dialog
closeDialog(ruleForm = 'ruleForm') {
console.log('触发关闭dialog', ruleForm);
closeDialog(ruleForm = "ruleForm") {
console.log("触发关闭dialog", ruleForm);
this.$refs[ruleForm].resetFields();
this.ruleForm = {
name: '',
planId: '',
before: '',
middle: '',
after: '',
name: "",
planId: "",
before: "",
middle: "",
after: "",
maintenanceFunds: 0,
operators: [],
implement: '',
remark: '',
implement: "",
remark: "",
status: 0,
}
};
},
//
getTableData(value = '', status = '') {
postSZMaintenanceRecordsList({
getTableData() {
getSluiceYhRecordList({
data: {
timeView: {
timeField: "create_time"
},
status: status == 2 ? '' : status
startCreatedTime: this.createTimeArr[0],
endCreatedTime: this.createTimeArr[1],
startUpdateTime: this.updateTimeArr[0],
endUpdateTime: this.updateTimeArr[1],
minRepairCost: this.repairCostArr[0],
maxRepairCost: this.repairCostArr[1],
status: this.selectStatus,
wagaCode: this.$route.query.wagaCode,
},
cv: {
name: "name",
type: "like",
value
},
pageSize: this.pageData.pageSize,
pageNum: this.pageData.pageNum
pageNum: this.pageData.pageNum,
}).then((res) => {
if (res) {
this.tableData = res.records
this.pageData.total = res.total
this.tableData = res.records;
this.pageData.total = res.total;
}
console.log('🚀表格数据🚀', res)
})
console.log("🚀表格数据🚀", res);
});
},
//
resetSearch() {
this.searchInput = ''
this.selectStatus = '2'
this.getTableData()
}
this.createTimeArr = [];
this.updateTimeArr = [];
this.repairCostArr = ["", ""];
this.selectStatus = "";
this.getTableData();
},
},
mounted() {
//
if (this.$route.query.name) {
this.searchInput = this.$route.query.name
}
//
this.getTableData(this.$route.query.name || '')
this.getTableData();
this.searchPlan("");
//
getDicts('xs_yh_record_status').then((res) => {
getDicts("xs_yh_record_status").then((res) => {
if (res.data && Array.isArray(res.data)) {
this.statusList = res.data
this.statusList = res.data;
}
})
});
},
}
};
</script>
<template>
<div class="slider-right">
<div class="top-title">
基础信息管理
</div>
<div class="top-title">基础信息管理</div>
<div class="table-box">
<div class="top-search">
<span>维养计划名称</span>
<el-input class="search-input" v-model="searchInput" placeholder="请输入维养计划名称" />
<span>状态</span>
<el-select v-model="selectStatus" placeholder="请选择">
<el-option label="全部" value="2" />
<el-option v-for="item in statusList" :label="item.dictLabel" :value="item.dictValue"
:key="item.id"></el-option>
</el-select>
<el-button class="search-btn" type="success" @click="getTableData(searchInput, selectStatus)">搜索</el-button>
<el-button @click="resetSearch()">重置</el-button>
<div class="flex items-start">
<div>
<div>
<span>创建时间</span>
<el-date-picker
v-model="createTimeArr"
class="w-360"
type="daterange"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
>
</el-date-picker>
<span class="ml-30">更新时间</span>
<el-date-picker
v-model="updateTimeArr"
type="daterange"
class="w-360"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
></el-date-picker>
</div>
<div class="mt-12">
<span>维修费用</span>
<el-input v-model="repairCostArr[0]" class="w-160"></el-input>
<span> - </span>
<el-input class="w-160" v-model="repairCostArr[1]"></el-input>
<span class="ml-30">维修状态</span>
<el-select
v-model="selectStatus"
class="w-360"
placeholder="请选择"
>
<el-option label="全部" value="" />
<el-option
v-for="item in statusList"
:label="item.dictLabel"
:value="item.dictValue"
:key="item.id"
></el-option>
</el-select>
</div>
</div>
<el-button
class="search-btn !ml-24"
type="success"
@click="getTableData()"
>搜索</el-button
>
<el-button @click="resetSearch()">重置</el-button>
</div>
<el-button
class="search-btn"
style="margin-right: 16px; margin-bottom: 8px"
type="success"
@click="dialogVisible = true"
>添加</el-button
>
</div>
<el-button class="search-btn" style=" margin-right: 16px;margin-bottom: 8px; float: right;" type="success"
@click="dialogVisible = true">添加</el-button>
<el-table class="table" height="625" :data="tableData" border>
<el-table class="table" height="615" :data="tableData" border>
<el-table-column type="index" align="center" label="序号" width="100" />
<el-table-column prop="name" align="center" label="维养计划名称" />
<el-table-column prop="before" align="center" label="维修养护前" />
<el-table-column prop="middle" align="center" label="维修养护过程" />
<el-table-column prop="after" align="center" label="维修养护结束后" />
<el-table-column prop="maintenanceFunds" align="center" label="维修养护费用" />
<el-table-column
prop="maintenanceFunds"
align="center"
label="维修养护费用"
/>
<el-table-column prop="status" align="center" label="状态">
<template slot-scope="scope">
<span v-if="scope.row.status == '0'" class="is-save">已保存</span>
<span v-else class="is-confirm">已确认</span>
</template>
</el-table-column>
<el-table-column prop="createTime" align="center" sortable label="创建时间">
<el-table-column
prop="createTime"
align="center"
sortable
label="创建时间"
>
</el-table-column>
<el-table-column prop="updateTime" align="center" sortable label="更新时间">
<el-table-column
prop="updateTime"
align="center"
sortable
label="更新时间"
>
</el-table-column>
<el-table-column prop="address" align="center" label="操作">
<template slot-scope="scope">
<el-button @click="viewOrEditPlanDetails(scope.row)" type="text" size="small">查看</el-button>
<el-button @click="viewOrEditPlanDetails(scope.row, true)" type="text" v-if="!scope.row.status"
size="small">编辑</el-button>
<el-popconfirm v-if="!scope.row.status" confirm-button-text='确定' cancel-button-text='取消' icon="el-icon-info"
icon-color="red" title="确定删除吗?" @confirm="deleteTableItem(scope.row)">
<el-button style="color: red; margin-left: 10px;" type="text" size="small" slot="reference">删除</el-button>
<el-button
@click="viewOrEditPlanDetails(scope.row)"
type="text"
size="small"
>查看</el-button
>
<el-button
@click="viewOrEditPlanDetails(scope.row, true)"
type="text"
v-if="scope.row.status == '0'"
size="small"
>编辑</el-button
>
<el-popconfirm
v-if="scope.row.status == '0'"
confirm-button-text="确定"
cancel-button-text="取消"
icon="el-icon-info"
icon-color="red"
title="确定确认吗?"
class="ml-10"
@confirm="confirmPlanDetails(scope.row)"
>
<el-button type="text" size="small" slot="reference"
>确认</el-button
>
</el-popconfirm>
<el-popconfirm
v-if="scope.row.status == '0'"
confirm-button-text="确定"
cancel-button-text="取消"
icon="el-icon-info"
icon-color="red"
title="确定删除吗?"
@confirm="deleteTableItem(scope.row)"
>
<el-button
style="color: red; margin-left: 10px"
type="text"
size="small"
slot="reference"
>删除</el-button
>
</el-popconfirm>
</template>
</el-table-column>
</el-table>
<el-pagination background class="pagination" style="margin-top: 16px;margin-right: 16px;float: right;"
:current-page="pageData.pageNum" :page-sizes="pageData.pageSizes" layout="total, prev, pager, next, sizes, jumper"
:total="pageData.total" @size-change="getTableData()">
<el-pagination
background
class="pagination"
style="margin-top: 16px; margin-right: 16px; float: right"
:current-page="pageData.pageNum"
:page-sizes="pageData.pageSizes"
layout="total, prev, pager, next, sizes, jumper"
:total="pageData.total"
@size-change="getTableData()"
>
</el-pagination>
</div>
<el-dialog title="新增/编辑维养计划" @close="closeDialog" :visible.sync="dialogVisible" width="40%">
<div style="display: flex; margin-bottom: 16px;">
<div style="width: 5px; height: 16px; background-color: #31a08e; margin-right: 8px;"></div><span
style="font-weight: 600;">基础信息</span>
<!-- 弹窗 -->
<el-dialog
title="新增/编辑维养记录"
@close="closeDialog"
:visible.sync="dialogVisible"
width="720px"
>
<div style="display: flex; margin-bottom: 16px">
<div
style="
width: 5px;
height: 16px;
background-color: #31a08e;
margin-right: 8px;
"
></div>
<span style="font-weight: 600">基础信息</span>
</div>
<el-form :model="ruleForm" :rules="rules" ref="ruleForm">
<el-form-item label-width="130px" label="维养计划名称" prop="planId">
<el-select v-model="ruleForm.planId" filterable remote :remote-method="searchPlan" placeholder="请输入"
@change="changeSelectPlan" :disabled="prohibitEditing">
<el-option v-for="item in planList" :key="item.id" :label="item.name" :value="item.id">
<el-select
v-model="ruleForm.planId"
filterable
remote
:remote-method="searchPlan"
placeholder="请输入"
@change="changeSelectPlan"
:disabled="prohibitEditing"
>
<el-option
v-for="item in planList"
:key="item.id"
:label="item.name"
:value="item.id"
>
</el-option>
</el-select>
<el-button button class="search-btn" type="success" size="small">详情</el-button>
<el-button button class="search-btn" type="success" size="small">打开地图</el-button>
<el-button :disabled="true" class="!ml-10" type="success" size="small"
>详情</el-button
>
<el-button :disabled="true" class="ml-6" type="success" size="small"
>打开地图</el-button
>
</el-form-item>
<div style="display: flex;">
<el-form-item label-width="130px" label="堤防名称">
<el-input v-model="planData.dikeCode" disabled />
<div style="display: flex">
<el-form-item label-width="130px" label="水闸名称">
<el-input v-model="planData.wagaCode" disabled />
</el-form-item>
<el-form-item label-width="130px" label="计划时间">
<el-date-picker v-model="planData.planTime" type="month" disabled>
</el-date-picker>
</el-form-item>
</div>
<div style="display: flex;">
<div style="display: flex">
<el-form-item label-width="130px" label="国补资金">
<div style="display: flex;">
<el-input v-model="planData.nationalSupplement" type="number" disabled style="margin-right: 5px;" />
<div style="width: 50px;">万元</div>
<div style="display: flex">
<el-input
v-model="planData.nationalSupplement"
type="number"
disabled
style="margin-right: 5px"
/>
<div style="width: 50px">万元</div>
</div>
</el-form-item>
<el-form-item label-width="90px" label="自筹资金">
<div style="display: flex;">
<el-input v-model="planData.selfSupplement" type="number" disabled style="margin-right: 5px;" />
<div style="width: 50px;">万元</div>
<div style="display: flex">
<el-input
v-model="planData.selfSupplement"
type="number"
disabled
style="margin-right: 5px"
/>
<div style="width: 50px">万元</div>
</div>
</el-form-item>
<el-form-item label-width="90px" label="项目预算">
@ -387,52 +543,135 @@ export default {
</el-form-item>
</div>
<el-form-item label-width="130px" label="具体地点">
<el-input :autosize="{ minRows: 5 }" type="textarea" maxlength="500" show-word-limit v-model="planData.location"
disabled />
<el-input
:autosize="{ minRows: 5 }"
type="textarea"
maxlength="500"
show-word-limit
v-model="planData.location"
disabled
/>
</el-form-item>
<el-form-item label-width="130px" label="维修养护内容">
<el-input :autosize="{ minRows: 5 }" type="textarea" maxlength="500" show-word-limit v-model="planData.content"
disabled />
<el-input
:autosize="{ minRows: 5 }"
type="textarea"
maxlength="500"
show-word-limit
v-model="planData.content"
disabled
/>
</el-form-item>
<div style="display: flex; margin-bottom: 16px;">
<div style="width: 5px; height: 16px; background-color: #31a08e; margin-right: 8px;"></div><span
style="font-weight: 600;">维修养护记录</span>
<div style="display: flex; margin-bottom: 16px">
<div
style="
width: 5px;
height: 16px;
background-color: #31a08e;
margin-right: 8px;
"
></div>
<span style="font-weight: 600">维修养护记录</span>
</div>
<el-form-item label-width="130px" label="维修养护前" prop="before">
<el-input v-model="ruleForm.before" placeholder="请输入" style="width: 202px;" :disabled="prohibitEditing" />
<el-input
v-model="ruleForm.before"
placeholder="请输入"
style="width: 202px"
:disabled="prohibitEditing"
/>
</el-form-item>
<el-form-item label-width="130px" label="维修养护过程" prop="middle">
<el-input v-model="ruleForm.middle" placeholder="请输入" style="width: 202px;" :disabled="prohibitEditing" />
<el-input
v-model="ruleForm.middle"
placeholder="请输入"
style="width: 202px"
:disabled="prohibitEditing"
/>
</el-form-item>
<el-form-item label-width="130px" label="维修养护结束后" prop="after">
<el-input v-model="ruleForm.after" placeholder="请输入" style="width: 202px;" :disabled="prohibitEditing" />
<el-input
v-model="ruleForm.after"
placeholder="请输入"
style="width: 202px"
:disabled="prohibitEditing"
/>
</el-form-item>
<el-form-item label-width="130px" label="维修养护费用" prop="maintenanceFunds">
<el-input v-model="ruleForm.maintenanceFunds" placeholder="请输入" style="width: 165px;" type="number"
:disabled="prohibitEditing" /> 万元
<el-form-item
label-width="130px"
label="维修养护费用"
prop="maintenanceFunds"
>
<el-input
v-model="ruleForm.maintenanceFunds"
placeholder="请输入"
style="width: 165px"
type="number"
:disabled="prohibitEditing"
/>
万元
</el-form-item>
<el-form-item label-width="130px" label="养护人员" prop="operators">
<!-- <el-input v-model="ruleForm.operators" placeholder="请输入" style="width: 202px;" /> -->
<el-select v-model="ruleForm.selectUser" multiple filterable remote :remote-method="searchUser" value-key="id"
:disabled="prohibitEditing" placeholder="请输入关键词搜索用户" prop="selectUser">
<el-option v-for="item in personnelList" :key="item.id" :label="item.nickName" :value="item">
<el-select
v-model="ruleForm.selectUser"
multiple
filterable
remote
:remote-method="searchUser"
value-key="id"
:disabled="prohibitEditing"
placeholder="请输入关键词搜索用户"
prop="selectUser"
>
<el-option
v-for="item in personnelList"
:key="item.id"
:label="item.nickName"
:value="item"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label-width="130px" label="落实情况" prop="implement">
<el-input :autosize="{ minRows: 5 }" type="textarea" maxlength="500" show-word-limit
v-model="ruleForm.implement" placeholder="请输入" :disabled="prohibitEditing" />
<el-input
:autosize="{ minRows: 5 }"
type="textarea"
maxlength="500"
show-word-limit
v-model="ruleForm.implement"
placeholder="请输入"
:disabled="prohibitEditing"
/>
</el-form-item>
<el-form-item label-width="130px" label="备注" prop="remark">
<el-input :autosize="{ minRows: 5 }" type="textarea" maxlength="500" show-word-limit v-model="ruleForm.remark"
placeholder="请输入" :disabled="prohibitEditing" />
<el-input
:autosize="{ minRows: 5 }"
type="textarea"
maxlength="500"
show-word-limit
v-model="ruleForm.remark"
placeholder="请输入"
:disabled="prohibitEditing"
/>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button size="mini" @click="resetForm('ruleForm')"> </el-button>
<el-button v-if="!prohibitEditing" size="mini" type="primary" @click="submitForm('ruleForm')">保存</el-button>
<el-button v-if="this.ruleForm.status == 0 && prohibitEditing" size="mini" type="primary"
@click="submitForm('ruleForm', true)">确认</el-button>
<el-button
v-if="!prohibitEditing"
size="mini"
type="primary"
@click="submitForm('ruleForm')"
>保存</el-button
>
<el-button
v-if="this.ruleForm.status == 0 && prohibitEditing"
size="mini"
type="primary"
@click="submitForm('ruleForm', true)"
>确认</el-button
>
</div>
</el-dialog>
</div>
@ -457,7 +696,9 @@ export default {
.top-search {
display: flex;
align-items: center;
align-items: flex-start;
justify-content: space-between;
width: 100% !important;
margin-bottom: 8px;
.search-input {
@ -498,10 +739,20 @@ export default {
}
}
.w-160 {
width: 170px;
}
.w-240 {
width: 240px;
}
.w-360 {
width: 360px;
}
/deep/.el-input__count {
height: 15px;
line-height: 15px;
margin-right: 10px;
margin-bottom: -4px;
}
</style>
</style>

Loading…
Cancel
Save