|
|
@ -102,29 +102,36 @@ |
|
|
|
</el-row> |
|
|
|
<el-row style="margin-top: 15px;"> |
|
|
|
<el-col :span="24" style="padding-left: 65px;"><span style="color: #888; ">{{item.flag?'已整改隐患':'隐患明细'}}: </span> |
|
|
|
<div v-if="item.hazardDetails"> |
|
|
|
<p style="margin-left: 60px;" v-for="(itemC,index) in item.hazardDetails.filter(item=>item.hazardStatus ==1)" >{{index+1}}.{{itemC.hazardDesc}}</p> |
|
|
|
<div v-if="item.hiddenDangeList"> |
|
|
|
<p style="margin-left: 60px;" v-for="(itemC,index) in item.hiddenDangeList.filter(item=>item.hazardStatus ==1)" >{{index+1}}.{{itemC.hazardDesc}}</p> |
|
|
|
</div> |
|
|
|
<span>--</span> |
|
|
|
<span v-else>--</span> |
|
|
|
</el-col> |
|
|
|
</el-row> |
|
|
|
<el-row style="margin-top: 15px;" v-if="item.flag"> |
|
|
|
<el-col :span="24" style="padding-left: 65px;"><span style="color: #888; ">未整改隐患: </span> |
|
|
|
<div v-if="item.hazardDetails"> |
|
|
|
<p style="margin-left: 60px;" v-for="(itemC,index) in item.hazardDetails.filter(item=>item.hazardStatus == 0)" >{{index+1}}.{{itemC.hazardDesc}}</p> |
|
|
|
<div v-if="item.hiddenDangeList"> |
|
|
|
<p style="margin-left: 60px;" v-for="(itemC,index) in item.hiddenDangeList.filter(item=>item.hazardStatus == 0)" >{{index+1}}.{{itemC.hazardDesc}}</p> |
|
|
|
</div> |
|
|
|
<span>--</span> |
|
|
|
<span v-else>--</span> |
|
|
|
</el-col> |
|
|
|
</el-row> |
|
|
|
<el-row style="margin-top: 15px;" v-else> |
|
|
|
<el-col :span="24" style="padding-left: 65px;"><span style="color: #888; ">整改要求: </span> |
|
|
|
<p style="margin-left: 60px;">{{index+1}}.{{item.hazardDetails.find(item=>item.hazardStatus == 2).hazardDesc}}</p> |
|
|
|
<p style="margin-left: 60px;">{{index+1}}.{{item.hiddenDangeList.find(item=>item.hazardStatus == 2).hazardDesc}}</p> |
|
|
|
</el-col> |
|
|
|
|
|
|
|
</el-row> |
|
|
|
<el-row style="margin-top: 15px;"> |
|
|
|
<el-col :span="6" style="padding-left: 65px;"><span style="color: #888; ">附件: </span>{{ |
|
|
|
item.attachmentUrl }}</el-col> |
|
|
|
<el-col :span="6" style="padding-left: 65px;"> |
|
|
|
<span style="color: #888; ">附件: </span> |
|
|
|
<span v-for="(itemI,indexI) in item.attachmentUrls" :key="itemI.fileName" style="margin-right:10px;cursor:pointer" @click="handelCLickImage(itemI.attachmentUrl)">{{ |
|
|
|
itemI.fileName }} |
|
|
|
</span> |
|
|
|
<div class="imagePreview" v-if="preViewImageFlag" @click="preViewImageFlag = false"> |
|
|
|
<img :src="preViewImage" alt=""> |
|
|
|
</div> |
|
|
|
</el-col> |
|
|
|
<el-col :span="6" style="padding-left: 65px;"><span style="color: #888; ">备注: </span>{{ |
|
|
|
item.remark || '--' }}</el-col> |
|
|
|
</el-row> |
|
|
@ -140,7 +147,8 @@ |
|
|
|
<el-form-item label="巡查时间" prop="checkTime"> |
|
|
|
<el-date-picker class="list_item_width_1" size="small" |
|
|
|
v-model.trim="patrolForm.checkTime" type="datetime" |
|
|
|
format="yyyy-MM-dd HH:mm:ss" placeholder="选择日期"></el-date-picker> |
|
|
|
value-format="yyyy-MM-dd HH:mm:ss" |
|
|
|
value="yyyy-MM-dd HH:mm:ss"placeholder="选择日期"></el-date-picker> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
<el-col :span="16"> |
|
|
@ -169,25 +177,26 @@ |
|
|
|
<el-form-item label="拟复查时间" prop="reviewTime"> |
|
|
|
<el-date-picker class="list_item_width_1" size="small" |
|
|
|
v-model.trim="patrolForm.reviewTime" type="datetime" |
|
|
|
format="yyyy-MM-dd HH:mm:ss" placeholder="选择日期"></el-date-picker> |
|
|
|
value-format="yyyy-MM-dd HH:mm:ss" |
|
|
|
value="yyyy-MM-dd HH:mm:ss"placeholder="选择日期"></el-date-picker> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
</el-row> |
|
|
|
<el-row v-if="checkResultFlag !== 1"> |
|
|
|
<el-col :span="8"> |
|
|
|
<el-form-item label="隐患明细" prop="principalName" style="white-space: nowrap;overflow: hidden;"> |
|
|
|
<el-radio-group v-model="hazardDetails" size="small"> |
|
|
|
<el-form-item label="隐患明细" prop="hiddenDange" style="white-space: nowrap;overflow: hidden;"> |
|
|
|
<el-checkbox-group v-model="hiddenDangeArr" size="small" > |
|
|
|
<el-col v-for="option in checkboxOptions" :key="option.value"> |
|
|
|
<el-checkbox :label="option.value">{{ option.label }}</el-checkbox> |
|
|
|
<el-checkbox :label="option.value">{{ option.hazardDesc }}</el-checkbox> |
|
|
|
</el-col> |
|
|
|
</el-radio-group> |
|
|
|
</el-checkbox-group> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
</el-row> |
|
|
|
<el-row > |
|
|
|
<el-col :span="18" v-for="(item, index) in inputList" :key="index" style="margin-left: 100px;"> |
|
|
|
<el-form-item label="" prop="textarea" class="input-container"> |
|
|
|
<el-input v-model="item.value" rows="3" placeholder="请输入隐患信息" size="small" class="list_item_width_1"></el-input> |
|
|
|
<el-input v-model="item.hazardDesc" rows="3" placeholder="请输入隐患信息" size="small" class="list_item_width_1"></el-input> |
|
|
|
</el-form-item> |
|
|
|
<el-button @click="removeInput(index)" v-if="inputList.length > 1" |
|
|
|
class="remove-button"> |
|
|
@ -198,7 +207,7 @@ |
|
|
|
</el-button> |
|
|
|
</el-col> |
|
|
|
</el-row> |
|
|
|
<el-row v-if="checkResultFlag === 1"> |
|
|
|
<el-row v-if="checkResultFlag === 1 || tableData.length === 0"> |
|
|
|
<el-col :span="8"> |
|
|
|
<el-form-item label="整改意见" prop="principalName" style="white-space: nowrap;overflow: hidden;"> |
|
|
|
<el-input v-model="patrolForm.rectificationOpinion" rows="3" size="small" placeholder="请输入整改意见" ></el-input> |
|
|
@ -208,8 +217,7 @@ |
|
|
|
<el-row> |
|
|
|
<el-col :span="6"> |
|
|
|
<el-form-item label="附件"> |
|
|
|
<upload-image :defaultFileList="fileList" :limit="1" @change="onChangeFileList" |
|
|
|
v-if="true"></upload-image> |
|
|
|
<upload-image :defaultFileList="fileList" :limit="3" @change="onChangeFileList"></upload-image> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
<el-col :span="18"> |
|
|
@ -297,90 +305,19 @@ export default { |
|
|
|
return { |
|
|
|
orgOptions:[], |
|
|
|
orgOptionProps, |
|
|
|
inputList: [{ value: '' }],//隐患输入框 |
|
|
|
inputList: [{ hazardDesc: '',hazardStatus:'0' }],//隐患输入框 |
|
|
|
fileList:[], |
|
|
|
patrolAdd: false, |
|
|
|
checkboxOptions: [ |
|
|
|
{ label: 'Option 1', value: 'option1' }, |
|
|
|
{ label: 'Option 2', value: 'option2' }, |
|
|
|
{ label: '已整改患', value: '已整改隐患' }, |
|
|
|
], |
|
|
|
hazardDetails:[], |
|
|
|
checkboxOptions: [], |
|
|
|
hiddenDangeArr:[], |
|
|
|
|
|
|
|
tableData: [ |
|
|
|
// { |
|
|
|
// checkTime: '2019-04-22 09:30', |
|
|
|
// checkPersons: '张三,李四', |
|
|
|
// checkResultFlag: '不合格', |
|
|
|
// reviewTime: '2019-04-22 09:30', |
|
|
|
// hazardDetails:[ |
|
|
|
// { |
|
|
|
// "id": "hd1111", |
|
|
|
// "customerId": "45687aa479955f9d06204d415238f7cc", |
|
|
|
// "companyId": "c1111", |
|
|
|
// "recordId": "r1111", |
|
|
|
// "hazardStatus": 0, |
|
|
|
// "hazardDesc": "小马哥请原谅我", |
|
|
|
// "delFlag": null, |
|
|
|
// "revision": 0, |
|
|
|
// "createdBy": "zxc", |
|
|
|
// "createdTime": "2024-05-03 16:26:37", |
|
|
|
// "updatedBy": "zxc", |
|
|
|
// "updatedTime": "2024-05-03 16:26:49" |
|
|
|
// }, |
|
|
|
// { |
|
|
|
// "id": "hd1112", |
|
|
|
// "customerId": "45687aa479955f9d06204d415238f7cc", |
|
|
|
// "companyId": "c1111", |
|
|
|
// "recordId": "r1111", |
|
|
|
// "hazardStatus": 1, |
|
|
|
// "hazardDesc": "小马哥喝一点酒太亢奋", |
|
|
|
// "delFlag": null, |
|
|
|
// "revision": 2, |
|
|
|
// "createdBy": "zxc", |
|
|
|
// "createdTime": "2024-05-03 16:26:37", |
|
|
|
// "updatedBy": "zxc", |
|
|
|
// "updatedTime": "2024-05-03 16:26:49" |
|
|
|
// }, |
|
|
|
// { |
|
|
|
// "id": "hd1113", |
|
|
|
// "customerId": "45687aa479955f9d06204d415238f7cc", |
|
|
|
// "companyId": "c1111", |
|
|
|
// "recordId": "r1111", |
|
|
|
// "hazardStatus": 2, |
|
|
|
// "hazardDesc": "我不想这样做,但是找不到更好的原因了,抱歉小马哥", |
|
|
|
// "delFlag": null, |
|
|
|
// "revision": 0, |
|
|
|
// "createdBy": "zxc", |
|
|
|
// "createdTime": "2024-05-03 16:26:37", |
|
|
|
// "updatedBy": "zxc", |
|
|
|
// "updatedTime": "2024-05-03 16:26:49" |
|
|
|
// } |
|
|
|
// ], |
|
|
|
// attachmentUrl: '123456789.jPg', |
|
|
|
// remark: '请相关负责人尽快处理' |
|
|
|
// }, |
|
|
|
// { |
|
|
|
// checkTime: '2019-04-22 09:30', |
|
|
|
// checkPersons: '张三,李四', |
|
|
|
// checkResultFlag: '不合格', |
|
|
|
// reviewTime: '2019-04-22 09:30', |
|
|
|
// hazardDetails:[ |
|
|
|
// { |
|
|
|
// hazardStatus:1, |
|
|
|
// hazardDesc:'卫生没整好2' |
|
|
|
// } |
|
|
|
// ], |
|
|
|
// attachmentUrl: '123456789.jPg', |
|
|
|
// remark: '请相关负责人尽快处理' |
|
|
|
// }, |
|
|
|
], |
|
|
|
tableData: [], |
|
|
|
btnDisable: false, |
|
|
|
user: '', |
|
|
|
agencyId: '', |
|
|
|
gridList: [], //所属网格list--场所区域 |
|
|
|
placeTypeList: [], //场所类型 |
|
|
|
resultArray: [{ value: '0', label: '合格' }, { value: '1', label: '不合格' }], |
|
|
|
resultArray: [{ value: '1', label: '合格' }, { value: '0', label: '不合格' }], |
|
|
|
stafflist: [], |
|
|
|
formData: { |
|
|
|
agencyId:'', |
|
|
@ -407,9 +344,9 @@ export default { |
|
|
|
checkTime:null, |
|
|
|
checkPersonsIdList:null, |
|
|
|
checkResultFlag:null, |
|
|
|
attachmentUrls:[], |
|
|
|
reviewTime:null, |
|
|
|
hazardDetails:null, |
|
|
|
attachmentUrl:null, |
|
|
|
hiddenDangeList:null, |
|
|
|
remark:null, |
|
|
|
}, |
|
|
|
patrolRule:{ |
|
|
@ -420,7 +357,9 @@ export default { |
|
|
|
}, |
|
|
|
//地图 |
|
|
|
loading: false, |
|
|
|
searchOptions: [] |
|
|
|
searchOptions: [], |
|
|
|
preViewImage:null, |
|
|
|
preViewImageFlag:false |
|
|
|
}; |
|
|
|
}, |
|
|
|
watch: {}, |
|
|
@ -447,6 +386,10 @@ export default { |
|
|
|
}, |
|
|
|
|
|
|
|
methods: { |
|
|
|
handelCLickImage(url){ |
|
|
|
this.preViewImageFlag = true; |
|
|
|
this.preViewImage = url; |
|
|
|
}, |
|
|
|
handleChangeAgency(val) { |
|
|
|
this.formData.agencyId = val.length ? val[val.length - 1] : val[0]; |
|
|
|
}, |
|
|
@ -467,7 +410,7 @@ export default { |
|
|
|
}) |
|
|
|
}, |
|
|
|
addInput() { |
|
|
|
this.inputList.push({ value: '' }); // 新增一个输入框,对应一个新的对象 |
|
|
|
this.inputList.push({ hazardDesc: '',hazardStatus:'0' }); // 新增一个输入框,对应一个新的对象 |
|
|
|
}, |
|
|
|
removeInput(index) { |
|
|
|
this.inputList.splice(index, 1); // 删除对应索引的输入框 |
|
|
@ -480,6 +423,7 @@ export default { |
|
|
|
let ob = { |
|
|
|
fileType: item.raw.type, |
|
|
|
fileUrl: item.response.data.url, |
|
|
|
attachmentUrl:item.response.data.url, |
|
|
|
fileName:item.response.data.fileName |
|
|
|
} |
|
|
|
this.fileList.push(ob) |
|
|
@ -506,16 +450,21 @@ export default { |
|
|
|
// 巡查记录 |
|
|
|
async getCompanyDetail(){ |
|
|
|
const url = `/actual/base/companyInfo/showRecord`; |
|
|
|
const { data, code, msg } = await requestPost(url,{id:this.detailId}); |
|
|
|
let { data, code, msg } = await requestPost(url,{id:this.detailId}); |
|
|
|
if (code === 0) { |
|
|
|
data.forEach(item=>{ |
|
|
|
if(!item.hiddenDangeList){ |
|
|
|
item.flag = true; |
|
|
|
}else{ |
|
|
|
item.flag = item.hazardDetails.findIndex(item=>item.hazardStatus === 2) === -1; |
|
|
|
item.flag = item.hiddenDangeList.findIndex(item=>item.hazardStatus === 2) === -1; |
|
|
|
} |
|
|
|
}) |
|
|
|
console.log(data); |
|
|
|
if(data[0].hiddenDangeList){ |
|
|
|
this.checkboxOptions = data[0].hiddenDangeList.filter(item=>item.hazardStatus === 0).map(item=>({hazardDesc:item.hazardDesc,value:item.id,hazardStatus:0})); |
|
|
|
this.fileList = data[0].attachmentUrls; |
|
|
|
console.log(this.fileList); |
|
|
|
} |
|
|
|
|
|
|
|
this.tableData = data; |
|
|
|
} else { |
|
|
|
this.$message.error(msg); |
|
|
@ -575,8 +524,16 @@ export default { |
|
|
|
}else if(this.pageType == 'patrol'){ |
|
|
|
url = '/actual/base/companyInfo/addRecord'; |
|
|
|
params = { ...this.patrolForm }; |
|
|
|
for(let i in this.hiddenDangeArr){ |
|
|
|
this.checkboxOptions.forEach(item => { |
|
|
|
if(item.value == this.hiddenDangeArr[i]){ |
|
|
|
item.hazardStatus = '1'; |
|
|
|
} |
|
|
|
}) |
|
|
|
} |
|
|
|
params.hiddenDangeList =[...this.inputList,...this.checkboxOptions] ; |
|
|
|
params.companyId = this.detailId; |
|
|
|
params.attachmentUrl = this.fileList[0]; |
|
|
|
params.attachmentUrls = this.fileList; |
|
|
|
} |
|
|
|
|
|
|
|
const { data, code, msg } = await requestPost(url, params); |
|
|
@ -714,4 +671,18 @@ export default { |
|
|
|
font-size: 16px; /* 设置圆点大小 */ |
|
|
|
border: none; /* 去掉边框 */ |
|
|
|
} |
|
|
|
.imagePreview { |
|
|
|
width:100vw; |
|
|
|
height:100vh; |
|
|
|
position: fixed; |
|
|
|
top: 0; |
|
|
|
right: 0; |
|
|
|
bottom: 0; |
|
|
|
left: 0; |
|
|
|
z-index:5000; |
|
|
|
background-color: rgba(12, 12, 12, 0.1); |
|
|
|
display: flex; |
|
|
|
align-items: center; |
|
|
|
justify-content: center; |
|
|
|
} |
|
|
|
</style> |
|
|
|