|
|
@ -14,15 +14,18 @@ import { |
|
|
|
updateDikeAnimalRecordData, |
|
|
|
getDikeAnimalRecordDetails, |
|
|
|
deleteDikeAnimalRecordDetails, |
|
|
|
updateDikeAnimalRecordStatus, |
|
|
|
} from "@/api/dike"; |
|
|
|
|
|
|
|
import { uploadFileData } from "@/api/system/upload"; |
|
|
|
|
|
|
|
export default { |
|
|
|
name: "InspectionItems", |
|
|
|
data() { |
|
|
|
return { |
|
|
|
paramsData: { |
|
|
|
status: "", |
|
|
|
location: "", |
|
|
|
status: null, |
|
|
|
location: null, |
|
|
|
}, |
|
|
|
dialogVisible: false, |
|
|
|
imageDialog: false, |
|
|
@ -79,9 +82,9 @@ export default { |
|
|
|
drugs: [{ drugName: "", concentration: "", dose: "" }], // 用药 |
|
|
|
}, |
|
|
|
planRules: { |
|
|
|
planId: [{ required: true, message: "请选择计划", trigger: "blur" }], |
|
|
|
planId: [{ required: true, message: "请选择计划", trigger: "change" }], |
|
|
|
dikeCode: [ |
|
|
|
{ required: true, message: "请选择堤防名称", trigger: "blur" }, |
|
|
|
{ required: true, message: "请选择堤防名称", trigger: "change" }, |
|
|
|
], |
|
|
|
type: [{ required: true, message: "请选择计划", trigger: "change" }], |
|
|
|
month: [{ required: true, message: "请选择月份", trigger: "change" }], |
|
|
@ -181,81 +184,85 @@ export default { |
|
|
|
type: "warning", |
|
|
|
}) |
|
|
|
.then(() => { |
|
|
|
// 确认 |
|
|
|
// this.$message({ |
|
|
|
// type: "success", |
|
|
|
// message: "确认成功!", |
|
|
|
// }); |
|
|
|
updateDikeAnimalRecordStatus({ |
|
|
|
id: row.id, |
|
|
|
status: "1", |
|
|
|
}).then(() => { |
|
|
|
this.getTableData(); |
|
|
|
this.$message({ |
|
|
|
type: "success", |
|
|
|
message: "确认成功!", |
|
|
|
}); |
|
|
|
}); |
|
|
|
}) |
|
|
|
.catch(() => {}); |
|
|
|
}, |
|
|
|
// 查看或编辑计划详情 |
|
|
|
viewOrEditPlanDetails(row, edit = false) { |
|
|
|
this.handleGetRemotePlanData(""); |
|
|
|
if (!edit) { |
|
|
|
this.prohibitEditing = true; |
|
|
|
} |
|
|
|
getDFMaintenancePlan(row.id).then((res) => { |
|
|
|
getDFPreventionControlPlan(row.planId).then((res) => { |
|
|
|
if (res.data) { |
|
|
|
this.planForm = res.data; |
|
|
|
this.planForm.planName = res.data.name; |
|
|
|
this.planForm.planId = res.data.id; |
|
|
|
this.planForm.selectUser = res.data.otherConfig.selectUser; |
|
|
|
// this.planForm.reminderCycle = res.data.instruction + res.data.month; // ?????? |
|
|
|
this.dialogVisible = true; |
|
|
|
this.recordForm.id = row.id; |
|
|
|
} |
|
|
|
}); |
|
|
|
getDikeAnimalRecordDetails(row.id).then((res) => { |
|
|
|
this.recordForm.id = row.id; |
|
|
|
this.recordForm = res.data || this.recordForm; |
|
|
|
}); |
|
|
|
}, |
|
|
|
handleRemove(file) { |
|
|
|
console.log(file); |
|
|
|
}, |
|
|
|
handlePictureCardPreview(file) { |
|
|
|
this.dialogImageUrl = file.url; |
|
|
|
this.imageDialog = true; |
|
|
|
}, |
|
|
|
handleDownload(file) { |
|
|
|
console.log(file); |
|
|
|
|
|
|
|
console.log("查看 >>>> ", this.planList); |
|
|
|
}, |
|
|
|
// 保存维修计划 |
|
|
|
submitForm(formName) { |
|
|
|
console.log("this.planForm >>>>> ", this.planForm); |
|
|
|
this.$refs[formName].validate((valid) => { |
|
|
|
if (valid) { |
|
|
|
if (this.planForm.id) { |
|
|
|
updateDikeAnimalRecordData({ |
|
|
|
planId: this.planForm.planId, |
|
|
|
planName: this.planForm.name, |
|
|
|
id: this.$route.query.id, |
|
|
|
dikeCode: this.$route.query.dikeCode, |
|
|
|
...this.recordForm, |
|
|
|
}).then(() => { |
|
|
|
this.getTableData(); |
|
|
|
this.dialogVisible = false; |
|
|
|
this.$message({ |
|
|
|
message: "保存成功", |
|
|
|
type: "success", |
|
|
|
}); |
|
|
|
}); |
|
|
|
} else { |
|
|
|
addDikeAnimalRecordData({ |
|
|
|
planId: this.planForm.planId, |
|
|
|
planName: this.planForm.name, |
|
|
|
id: null, |
|
|
|
status: "0", |
|
|
|
dikeCode: this.$route.query.dikeCode, |
|
|
|
...this.recordForm, |
|
|
|
}).then(() => { |
|
|
|
this.getTableData(); |
|
|
|
this.dialogVisible = false; |
|
|
|
this.$message({ |
|
|
|
message: "保存成功", |
|
|
|
type: "success", |
|
|
|
}); |
|
|
|
}); |
|
|
|
} |
|
|
|
} else { |
|
|
|
console.log("校验不通过"); |
|
|
|
return false; |
|
|
|
submitForm() { |
|
|
|
this.$refs.planForm.validate((v) => { |
|
|
|
if (v) { |
|
|
|
this.$refs.recordForm.validate((valid) => { |
|
|
|
if (valid) { |
|
|
|
if (this.planForm.id) { |
|
|
|
updateDikeAnimalRecordData({ |
|
|
|
planId: this.planForm.planId, |
|
|
|
planName: this.planForm.name, |
|
|
|
id: this.$route.query.id, |
|
|
|
dikeCode: this.$route.query.dikeCode, |
|
|
|
...this.recordForm, |
|
|
|
}).then(() => { |
|
|
|
this.getTableData(); |
|
|
|
this.dialogVisible = false; |
|
|
|
this.$message({ |
|
|
|
message: "保存成功", |
|
|
|
type: "success", |
|
|
|
}); |
|
|
|
}); |
|
|
|
} else { |
|
|
|
addDikeAnimalRecordData({ |
|
|
|
planId: this.planForm.planId, |
|
|
|
planName: this.planForm.name, |
|
|
|
id: null, |
|
|
|
status: "0", |
|
|
|
dikeCode: this.$route.query.dikeCode, |
|
|
|
...this.recordForm, |
|
|
|
}).then(() => { |
|
|
|
this.getTableData(); |
|
|
|
this.dialogVisible = false; |
|
|
|
this.$message({ |
|
|
|
message: "保存成功", |
|
|
|
type: "success", |
|
|
|
}); |
|
|
|
}); |
|
|
|
} |
|
|
|
} else { |
|
|
|
console.log("校验不通过"); |
|
|
|
return false; |
|
|
|
} |
|
|
|
}); |
|
|
|
} |
|
|
|
}); |
|
|
|
}, |
|
|
@ -265,9 +272,9 @@ export default { |
|
|
|
this.dialogVisible = false; |
|
|
|
}, |
|
|
|
// 关闭dialog |
|
|
|
closeDialog(planForm = "planForm") { |
|
|
|
console.log("触发关闭dialog", planForm); |
|
|
|
this.$refs[planForm].resetFields(); |
|
|
|
closeDialog() { |
|
|
|
this.$refs.recordForm.resetFields(); |
|
|
|
this.$refs.planForm.resetFields(); |
|
|
|
this.planForm = { |
|
|
|
dikeCode: "", |
|
|
|
name: "", |
|
|
@ -277,6 +284,15 @@ export default { |
|
|
|
location: "", |
|
|
|
content: "", |
|
|
|
}; |
|
|
|
this.recordForm = { |
|
|
|
id: null, |
|
|
|
location: "", |
|
|
|
constructionStatus: "", |
|
|
|
pest: null, |
|
|
|
images: [], |
|
|
|
remark: "", |
|
|
|
drugs: [{ drugName: "", concentration: "", dose: "" }], // 用药 |
|
|
|
}; |
|
|
|
}, |
|
|
|
// 添加工作项 |
|
|
|
addWorkItem() { |
|
|
@ -308,8 +324,8 @@ export default { |
|
|
|
}, |
|
|
|
// 重置搜索 |
|
|
|
resetSearch() { |
|
|
|
this.paramsData.status = ""; |
|
|
|
this.paramsData.location = ""; |
|
|
|
this.paramsData.status = null; |
|
|
|
this.paramsData.location = null; |
|
|
|
this.getTableData(); |
|
|
|
}, |
|
|
|
// 获取计划列表 |
|
|
@ -338,7 +354,6 @@ export default { |
|
|
|
changeDikePlan(planId) { |
|
|
|
if (planId) { |
|
|
|
getDFPreventionControlPlan(planId).then((res) => { |
|
|
|
console.log("res >>>>> ", res); |
|
|
|
if (res?.data) { |
|
|
|
const { data } = res; |
|
|
|
this.planForm.dikeCode = data.dikeCode; |
|
|
@ -356,6 +371,30 @@ export default { |
|
|
|
}); |
|
|
|
} |
|
|
|
}, |
|
|
|
// 上传前 |
|
|
|
beforeUpload(e) { |
|
|
|
if (this.recordForm.images?.length >= 10) { |
|
|
|
this.$message.warning("最多上传10张图片"); |
|
|
|
return false; |
|
|
|
} |
|
|
|
return true; |
|
|
|
}, |
|
|
|
handleUpload(e) { |
|
|
|
const { file } = e; |
|
|
|
let fData = new FormData(); |
|
|
|
fData.append("file", file); |
|
|
|
uploadFileData(fData) |
|
|
|
.then((res) => { |
|
|
|
this.recordForm.images?.push(res.url); |
|
|
|
}) |
|
|
|
.catch((err) => { |
|
|
|
console.log("err >>>>> ", err); |
|
|
|
}); |
|
|
|
}, |
|
|
|
// 删除图片 |
|
|
|
handleDelImages(index) { |
|
|
|
this.recordForm.images.splice(index, 1); |
|
|
|
}, |
|
|
|
}, |
|
|
|
mounted() { |
|
|
|
this.getDicts("dh_jh_type").then((res) => { |
|
|
@ -392,7 +431,7 @@ export default { |
|
|
|
/> |
|
|
|
<span style="margin-left: 10px">状态:</span> |
|
|
|
<el-select v-model="paramsData.status" placeholder="请选择"> |
|
|
|
<el-option label="全部" value="" /> |
|
|
|
<el-option label="全部" :value="null" /> |
|
|
|
<el-option |
|
|
|
v-for="item in statusList" |
|
|
|
:label="item.dictLabel" |
|
|
@ -463,9 +502,9 @@ export default { |
|
|
|
>编辑</el-button |
|
|
|
> |
|
|
|
<el-button |
|
|
|
style="margin-right: 9px" |
|
|
|
type="text" |
|
|
|
size="small" |
|
|
|
v-if="scope.row.status == '0'" |
|
|
|
@click="handleConfirm(scope.row)" |
|
|
|
v-hasPermi="['df:run:fz:record:confirm']" |
|
|
|
>确认</el-button |
|
|
@ -479,7 +518,7 @@ export default { |
|
|
|
@confirm="deleteTableItem(scope.row)" |
|
|
|
> |
|
|
|
<el-button |
|
|
|
style="color: red" |
|
|
|
style="color: red; margin-left: 9px" |
|
|
|
type="text" |
|
|
|
size="small" |
|
|
|
slot="reference" |
|
|
@ -831,20 +870,29 @@ export default { |
|
|
|
/> |
|
|
|
<el-table-column prop="drugName" align="center" label="药物名称"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<el-input v-model="scope.row.drugName" placeholder="请输入药物名称" /> |
|
|
|
<el-input |
|
|
|
v-model="scope.row.drugName" |
|
|
|
maxLength="100" |
|
|
|
placeholder="请输入药物名称" |
|
|
|
/> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column prop="concentration" align="center" label="浓度"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<el-input |
|
|
|
v-model="scope.row.concentration" |
|
|
|
maxLength="100" |
|
|
|
placeholder="请输入浓度" |
|
|
|
/> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column prop="dose" align="center" label="剂量" width="80"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<el-input v-model="scope.row.dose" placeholder="请输入剂量" /> |
|
|
|
<el-input |
|
|
|
v-model="scope.row.dose" |
|
|
|
maxLength="100" |
|
|
|
placeholder="请输入剂量" |
|
|
|
/> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column align="center" label="操作" width="100"> |
|
|
@ -854,6 +902,7 @@ export default { |
|
|
|
type="text" |
|
|
|
size="small" |
|
|
|
@click="addWorkItem" |
|
|
|
:disabled="recordForm.drugs.length >= 10" |
|
|
|
>添加</el-button |
|
|
|
> |
|
|
|
<el-popconfirm |
|
|
@ -877,39 +926,51 @@ export default { |
|
|
|
</el-table-column> |
|
|
|
</el-table> |
|
|
|
<el-form-item label-width="120px" label="上传图片" prop="images"> |
|
|
|
<el-upload action="#" list-type="picture-card" :auto-upload="false"> |
|
|
|
<i slot="default" class="el-icon-plus"></i> |
|
|
|
<div slot="file" slot-scope="{ file }"> |
|
|
|
<img |
|
|
|
class="el-upload-list__item-thumbnail" |
|
|
|
:src="file.url" |
|
|
|
alt="" |
|
|
|
/> |
|
|
|
<span class="el-upload-list__item-actions"> |
|
|
|
<span |
|
|
|
class="el-upload-list__item-preview" |
|
|
|
@click="handlePictureCardPreview(file)" |
|
|
|
> |
|
|
|
<i class="el-icon-zoom-in"></i> |
|
|
|
</span> |
|
|
|
<span |
|
|
|
class="el-upload-list__item-delete" |
|
|
|
@click="handleDownload(file)" |
|
|
|
> |
|
|
|
<i class="el-icon-download"></i> |
|
|
|
</span> |
|
|
|
<span |
|
|
|
class="el-upload-list__item-delete" |
|
|
|
@click="handleRemove(file)" |
|
|
|
> |
|
|
|
<i class="el-icon-delete"></i> |
|
|
|
</span> |
|
|
|
</span> |
|
|
|
<div class="flex flex-wrap"> |
|
|
|
<div |
|
|
|
style="width: 148px; height: 148px" |
|
|
|
v-for="(url, index) in recordForm.images" |
|
|
|
:key="index" |
|
|
|
class="mr-6 mb-6 img-div-box" |
|
|
|
> |
|
|
|
<el-image |
|
|
|
style="width: 148px; height: 148px" |
|
|
|
:src="url" |
|
|
|
fit="contain" |
|
|
|
:preview-src-list="[url]" |
|
|
|
> |
|
|
|
<template #error> |
|
|
|
<div |
|
|
|
class="w-full flex justify-center items-center" |
|
|
|
style=" |
|
|
|
height: 148px; |
|
|
|
border: 1px solid #f0f0f0; |
|
|
|
font-style: italic; |
|
|
|
color: #ccc; |
|
|
|
" |
|
|
|
> |
|
|
|
图片加载失败 |
|
|
|
</div> |
|
|
|
</template> |
|
|
|
</el-image> |
|
|
|
<i |
|
|
|
class="el-icon-error del-btn-icon" |
|
|
|
@click="handleDelImages(index)" |
|
|
|
></i> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<el-upload |
|
|
|
action="#" |
|
|
|
list-type="picture-card" |
|
|
|
:http-request="handleUpload" |
|
|
|
:auto-upload="true" |
|
|
|
:before-upload="beforeUpload" |
|
|
|
:showFileList="false" |
|
|
|
accept=".jpg,.png,.jpeg" |
|
|
|
:maxLength="10" |
|
|
|
> |
|
|
|
<i slot="default" class="el-icon-plus"></i> |
|
|
|
</el-upload> |
|
|
|
<el-dialog :visible.sync="imageDialog"> |
|
|
|
<img width="100%" :src="dialogImageUrl" alt="" /> |
|
|
|
</el-dialog> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label-width="120px" label="备注" prop="remark"> |
|
|
|
<el-input |
|
|
@ -985,12 +1046,24 @@ export default { |
|
|
|
background-color: #2b8070; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/deep/.el-input__count { |
|
|
|
height: 15px; |
|
|
|
line-height: 15px; |
|
|
|
margin-right: 10px; |
|
|
|
margin-bottom: -4px; |
|
|
|
.img-div-box { |
|
|
|
position: relative; |
|
|
|
.del-btn-icon { |
|
|
|
display: none; |
|
|
|
position: absolute; |
|
|
|
top: -8px; |
|
|
|
right: -8px; |
|
|
|
font-size: 24px; |
|
|
|
color: rgba(0, 0, 0, 0.5); |
|
|
|
cursor: pointer; |
|
|
|
} |
|
|
|
|
|
|
|
&:hover { |
|
|
|
.del-btn-icon { |
|
|
|
display: block; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
</style> |
|
|
|