|
|
@ -1,6 +1,6 @@ |
|
|
|
<!-- 巡查计划管理-堤防 --> |
|
|
|
<script> |
|
|
|
import { getDictionaryList, postInspectionPlanlist, postEmbankmentInspection, putEmbankmentInspection, deleteEmbankmentInspection } from '@/api/management' |
|
|
|
import { getDictionaryList, postInspectionPlanlist, postInspectionPlan, putEmbankmentInspection, deleteEmbankmentInspection, postEmbankmentInspectionChecklist, getInspectionPlan, deleteInspectionPlan, postUserList } from '@/api/management' |
|
|
|
export default { |
|
|
|
name: 'InspectionItems', |
|
|
|
data() { |
|
|
@ -8,10 +8,12 @@ export default { |
|
|
|
searchInput: '', |
|
|
|
dialogVisible: false, |
|
|
|
ContentType: '', |
|
|
|
firstType: [], // 一级检查内容类型 |
|
|
|
secondType: [], // 二级检查内容类型 |
|
|
|
loading: false, |
|
|
|
patrolType: [], // 巡查周期类型 |
|
|
|
personnelList: [], // 人员列表 |
|
|
|
examType: [], // 检查类型 |
|
|
|
tableData: [], // 检查列表 |
|
|
|
patrolTableData: [], // 巡查项目列表 |
|
|
|
pageData: { |
|
|
|
pageNum: 1, // 当前页 |
|
|
|
pageSize: 10, // 请求数量 |
|
|
@ -20,21 +22,34 @@ export default { |
|
|
|
}, |
|
|
|
ruleForm: { |
|
|
|
name: '', |
|
|
|
type: '0', |
|
|
|
checkContentType: '', |
|
|
|
items: [ |
|
|
|
], |
|
|
|
type: '', |
|
|
|
xcId: '', |
|
|
|
frequency: '', |
|
|
|
cycleType: '', |
|
|
|
reminderTime: '', |
|
|
|
selectUser: [], |
|
|
|
operators: [], |
|
|
|
otherConfig: { |
|
|
|
week: '', |
|
|
|
time: '' |
|
|
|
} |
|
|
|
}, |
|
|
|
rules: { |
|
|
|
name: [ |
|
|
|
{ required: true, message: '请输入巡视检查名称', trigger: 'blur' }, |
|
|
|
{ required: true, message: '请输入计划名称', trigger: 'blur' }, |
|
|
|
{ max: 50, message: '名称最长为50个字符', trigger: 'blur' } |
|
|
|
], |
|
|
|
type: [ |
|
|
|
{ required: true, message: '请选择巡查类型', trigger: 'change' } |
|
|
|
], |
|
|
|
checkContentType: [ |
|
|
|
{ required: true, message: '请选巡视检查内容', trigger: 'change' } |
|
|
|
xcId: [ |
|
|
|
{ required: true, message: '请选择巡查项目名称', trigger: 'change' } |
|
|
|
], |
|
|
|
selectUser: [ |
|
|
|
{ required: true, message: '请选择巡查人员', trigger: 'change' } |
|
|
|
], |
|
|
|
cycleType: [ |
|
|
|
{ required: true, message: '请选择巡查周期', trigger: 'change' } |
|
|
|
] |
|
|
|
} |
|
|
|
} |
|
|
@ -42,17 +57,25 @@ export default { |
|
|
|
methods: { |
|
|
|
// 编辑巡查项目 |
|
|
|
editTableItem(row) { |
|
|
|
putEmbankmentInspection({ id: row.id }).then((res) => { |
|
|
|
getInspectionPlan(row.id).then((res) => { |
|
|
|
console.log('🚀res🚀', res) |
|
|
|
this.ruleForm.name = res.data.name |
|
|
|
this.ruleForm.type = res.data.type |
|
|
|
this.ruleForm = res.data |
|
|
|
this.ruleForm.type = res.data.type.toString() |
|
|
|
this.dialogVisible = true |
|
|
|
console.log(this.examType); |
|
|
|
this.changePatrolType(res) |
|
|
|
}) |
|
|
|
// putEmbankmentInspection({ id: row.id }).then((res) => { |
|
|
|
// console.log('🚀res🚀', res) |
|
|
|
// this.ruleForm.name = res.data.name |
|
|
|
// this.ruleForm.type = res.data.type |
|
|
|
// this.dialogVisible = true |
|
|
|
// console.log(this.examType); |
|
|
|
// }) |
|
|
|
}, |
|
|
|
// 删除对应巡查项目 |
|
|
|
deleteTableItem(row) { |
|
|
|
deleteEmbankmentInspection(row.id).then((res) => { |
|
|
|
console.log('🚀row🚀', row.id) |
|
|
|
deleteInspectionPlan(row.id).then((res) => { |
|
|
|
console.log('🚀res🚀', res) |
|
|
|
this.getTableData() |
|
|
|
}) |
|
|
@ -66,60 +89,44 @@ export default { |
|
|
|
} |
|
|
|
) |
|
|
|
}, |
|
|
|
// 新增巡查项目 |
|
|
|
// 新增巡查计划 |
|
|
|
newInspectionItems() { |
|
|
|
this.dialogVisible = true |
|
|
|
getDictionaryList('xs_cycle_type').then((res) => { |
|
|
|
this.patrolType = res.data |
|
|
|
}) |
|
|
|
this.ruleForm = { |
|
|
|
name: '', |
|
|
|
type: '', |
|
|
|
checkContentType: '', |
|
|
|
items: [ |
|
|
|
{ |
|
|
|
content: '', |
|
|
|
parts: ['', '', ''] |
|
|
|
} |
|
|
|
] |
|
|
|
} |
|
|
|
}, |
|
|
|
// 删除对应巡查内容 |
|
|
|
deletePatrolItem(row) { |
|
|
|
console.log('🚀row🚀', row) |
|
|
|
}, |
|
|
|
// 改变一级巡视检查内容 |
|
|
|
changeContentType(dictValue) { |
|
|
|
getDictionaryList(dictValue).then((res) => { |
|
|
|
this.secondType = res.data |
|
|
|
console.log('🚀一级🚀', res.data) |
|
|
|
}) |
|
|
|
this.ruleForm.items = [ |
|
|
|
{ |
|
|
|
content: '', |
|
|
|
parts: [this.ruleForm.checkContentType] |
|
|
|
xcId: '', |
|
|
|
frequency: '', |
|
|
|
cycleType: '', |
|
|
|
reminderTime: '', |
|
|
|
selectUser: [], |
|
|
|
operators: [], |
|
|
|
otherConfig: { |
|
|
|
week: '', |
|
|
|
time: '' |
|
|
|
} |
|
|
|
] |
|
|
|
}, |
|
|
|
// 改变二级巡视检查内容 |
|
|
|
changeSecondType(row) { |
|
|
|
getDictionaryList(row.parts[1]).then((res) => { |
|
|
|
console.log('🚀二级🚀', res.data) |
|
|
|
row.parts[2] = '' |
|
|
|
this.$set(row, 'third', res.data) |
|
|
|
}) |
|
|
|
}, |
|
|
|
// 改变三级巡视检查内容 |
|
|
|
changeThirdType(row) { |
|
|
|
let value = row.third.find(item => item.dictValue == row.parts[2]).remark |
|
|
|
if (value) { |
|
|
|
row.content = value |
|
|
|
} |
|
|
|
}, |
|
|
|
// 保存巡查项目 |
|
|
|
submitForm(formName) { |
|
|
|
this.$refs[formName].validate((valid) => { |
|
|
|
if (valid) { |
|
|
|
console.log(this.ruleForm); |
|
|
|
postEmbankmentInspection(this.ruleForm).then((res) => { |
|
|
|
getTableData() |
|
|
|
let user = [] |
|
|
|
this.ruleForm.selectUser.forEach(element => { |
|
|
|
let a = { |
|
|
|
name: element.nickName, |
|
|
|
uid: element.id |
|
|
|
} |
|
|
|
user.push(a) |
|
|
|
}); |
|
|
|
console.log('🚀user🚀', user) |
|
|
|
this.ruleForm.operators = user |
|
|
|
postInspectionPlan(this.ruleForm).then((res) => { |
|
|
|
console.log('🚀res🚀', res) |
|
|
|
this.getTableData() |
|
|
|
this.dialogVisible = false |
|
|
|
}) |
|
|
|
} else { |
|
|
@ -132,9 +139,47 @@ export default { |
|
|
|
this.$refs[formName].resetFields(); |
|
|
|
this.dialogVisible = false |
|
|
|
}, |
|
|
|
// 添加巡查项目 |
|
|
|
addInspectionItems() { |
|
|
|
|
|
|
|
// 更改巡查类型 |
|
|
|
changePatrolType(ruleForm) { |
|
|
|
this.$set(ruleForm, 'xcId', '') |
|
|
|
postEmbankmentInspectionChecklist({ |
|
|
|
data: { |
|
|
|
timeView: { |
|
|
|
timeField: "create_time" |
|
|
|
}, |
|
|
|
type: ruleForm.type |
|
|
|
}, |
|
|
|
cv: { |
|
|
|
name: "name", |
|
|
|
type: "like" |
|
|
|
}, |
|
|
|
pageSize: 999, |
|
|
|
pageNum: 1 |
|
|
|
}).then((res) => { |
|
|
|
this.patrolTableData = res.records |
|
|
|
}) |
|
|
|
}, |
|
|
|
// 搜索用户 |
|
|
|
searchUser(e) { |
|
|
|
console.log(this.ruleForm.selectUser); |
|
|
|
postUserList({ |
|
|
|
data: { |
|
|
|
timeView: { |
|
|
|
timeField: "create_time" |
|
|
|
}, |
|
|
|
}, |
|
|
|
cv: { |
|
|
|
name: "nickName", |
|
|
|
type: "like", |
|
|
|
value: e |
|
|
|
}, |
|
|
|
pageSize: 100, |
|
|
|
pageNum: 1 |
|
|
|
}).then((res) => { |
|
|
|
this.personnelList = res.records |
|
|
|
console.log('🚀用户数据🚀', res) |
|
|
|
console.log('🚀用户数据🚀', this.ruleForm.operators) |
|
|
|
}) |
|
|
|
}, |
|
|
|
getTableData() { |
|
|
|
postInspectionPlanlist({ |
|
|
@ -164,14 +209,14 @@ export default { |
|
|
|
console.log('🚀检查类型🚀', res) |
|
|
|
if (res.data && Array.isArray(res.data)) { |
|
|
|
res.data.forEach(element => { |
|
|
|
element.dictValue = Number(element.dictValue) |
|
|
|
element.dictValue = element.dictValue |
|
|
|
}); |
|
|
|
this.examType = res.data |
|
|
|
console.log('🚀this.examType🚀', this.examType) |
|
|
|
} |
|
|
|
}) |
|
|
|
getDictionaryList('df_xs_c_classfy').then((res) => { |
|
|
|
if (res.data && Array.isArray(res.data)) { |
|
|
|
this.firstType = res.data |
|
|
|
console.log('🚀res.data🚀', res.data) |
|
|
|
} |
|
|
|
}) |
|
|
@ -248,39 +293,55 @@ export default { |
|
|
|
:total="pageData.total" @size-change="getTableData()"> |
|
|
|
</el-pagination> |
|
|
|
</div> |
|
|
|
<el-dialog title="新增/编辑巡查项目" :visible.sync="dialogVisible" width="50%"> |
|
|
|
<el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm"> |
|
|
|
<el-dialog title="新增/编辑巡查计划" destroy-on-close :visible.sync="dialogVisible" width="50%"> |
|
|
|
<el-form :model="ruleForm" :rules="rules" ref="ruleForm" class="demo-ruleForm"> |
|
|
|
<el-form-item label-width="120px" label="计划名称" prop="name"> |
|
|
|
<el-input style="width: 202px;" v-model="ruleForm.name"></el-input> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label-width="120px" label="巡查类型" prop="type"> |
|
|
|
<el-select v-model="ruleForm.type" placeholder="请选择巡查类型"> |
|
|
|
<el-select v-model="ruleForm.type" placeholder="请选择巡查类型" @change="changePatrolType(ruleForm)"> |
|
|
|
<el-option v-for="item in examType" :label="item.dictLabel" :value="item.dictValue" |
|
|
|
:key="item.id"></el-option> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label-width="120px" label="巡查项目目名称" prop="checkContentType"> |
|
|
|
<el-select v-model="ruleForm.checkContentType" @change="changeContentType(ruleForm.checkContentType)" |
|
|
|
placeholder="请选择巡视检查内容"> |
|
|
|
<el-option v-for="item in firstType" :label="item.dictLabel" :value="item.dictValue" |
|
|
|
:key="item.id"></el-option> |
|
|
|
<el-form-item label-width="120px" label="巡查项目名称" prop="xcId"> |
|
|
|
<el-select v-model="ruleForm.xcId" placeholder="请选择巡查项目名称"> |
|
|
|
<el-option v-for="item in patrolTableData" :label="item.name" :value="item.id" :key="item.id"></el-option> |
|
|
|
</el-select> |
|
|
|
<span style="margin-left: 8px; color: red;">注意:切换选项后检查内容将会清空!</span> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label-width="120px" label="巡查周期" prop="name"> |
|
|
|
<el-input style="width: 202px;" v-model="ruleForm.name"></el-input> |
|
|
|
<el-form-item v-if="ruleForm.type == 0" label-width="120px" label="巡查周期" prop="cycleType"> |
|
|
|
<el-input style="width: 202px;" v-model="ruleForm.frequency"></el-input> |
|
|
|
/次 |
|
|
|
<el-select v-model="ruleForm.checkContentType" @change="changeContentType(ruleForm.checkContentType)" |
|
|
|
placeholder="请选择巡视检查内容"> |
|
|
|
<el-option v-for="item in firstType" :label="item.dictLabel" :value="item.dictValue" |
|
|
|
<el-select v-model="ruleForm.cycleType" placeholder="请选择日期"> |
|
|
|
<el-option v-for="item in patrolType" :label="item.dictLabel" :value="item.dictValue" |
|
|
|
:key="item.id"></el-option> |
|
|
|
</el-select>/日期 |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label-width="120px" label="消息提醒" prop="name"> |
|
|
|
<el-time-picker v-model="value1" :picker-options="{ |
|
|
|
selectableRange: '18:30:00 - 20:30:00' |
|
|
|
}" placeholder="任意时间点"> |
|
|
|
</el-time-picker> |
|
|
|
<el-form-item v-else label-width="120px" label="检查日期" prop="reminderTime"> |
|
|
|
<el-date-picker v-model="ruleForm.otherConfig.time" type="date" value-format="yyyy-MM-dd" placeholder="选择日期"> |
|
|
|
</el-date-picker> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label-width="120px" label="消息提醒" prop="reminderTime"> |
|
|
|
<el-radio-group v-if="ruleForm.cycleType == 1 && ruleForm.type == 0" v-model="ruleForm.otherConfig.week"> |
|
|
|
<el-radio :label="1">星期一</el-radio> |
|
|
|
<el-radio :label="2">星期二</el-radio> |
|
|
|
<el-radio :label="3">星期三</el-radio> |
|
|
|
<el-radio :label="4">星期四</el-radio> |
|
|
|
<el-radio :label="5">星期五</el-radio> |
|
|
|
<el-radio :label="6">星期六</el-radio> |
|
|
|
<el-radio :label="7">星期日</el-radio> |
|
|
|
</el-radio-group> |
|
|
|
<el-time-picker v-if="ruleForm.cycleType != 2 && ruleForm.type == 0" v-model="ruleForm.reminderTime" |
|
|
|
value-format="hh:mm:ss" placeholder="请选择时间点" /> |
|
|
|
<el-date-picker v-if="ruleForm.cycleType == 2 || ruleForm.type != 0" v-model="ruleForm.reminderTime" |
|
|
|
value-format="yyyy-MM-dd hh:mm:ss" type="datetime" placeholder="选择日期时间" /> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label-width="120px" label="巡查人员" prop="operators"> |
|
|
|
<el-select v-model="ruleForm.selectUser" multiple filterable remote :remote-method="searchUser" value-key="id" |
|
|
|
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> |
|
|
|
<div slot="footer" class="dialog-footer"> |
|
|
|