<template>
|
<view class="">
|
<view class="item-row flex j-c-s-b a-i-c">
|
<text>场所名称</text>
|
<text class="item-content">{{info.placeName}}</text>
|
</view>
|
<view class="item-row flex j-c-s-b a-i-c">
|
<text>标签</text>
|
<text>{{label || "未完善"}}</text>
|
</view>
|
<!-- <view class="item-row flex j-c-s-b a-i-c">
|
<text>场所负责人</text>
|
<text>{{info.principal || "未完善"}}</text>
|
</view>
|
<view class="item-row flex j-c-s-b a-i-c">
|
<text>场所负责人电话</text>
|
<text>{{info.principalPhone || "未完善"}}</text>
|
</view>
|
<view class="item-row flex j-c-s-b a-i-c">
|
<text>检查人</text>
|
<text>{{info.name}}</text>
|
</view> -->
|
<view class="item-row flex j-c-s-b a-i-c">
|
<text>检查时间</text>
|
<text>{{info.createTime}}</text>
|
</view>
|
<view class="item-row flex j-c-s-b a-i-c">
|
<text>地址</text>
|
<text class="item-content">{{info.location}}</text>
|
</view>
|
<view class="item-row flex j-c-s-b a-i-c" v-if="info.rectificationNoticeFlag == 2">
|
<text>下发整改通知</text>
|
<text class="item-content">是</text>
|
</view>
|
<view class="item-row flex j-c-s-b a-i-c" v-if="info.punishFlag == 2">
|
<text>是否处罚</text>
|
<text class="item-content">是</text>
|
</view>
|
<view class="item-row flex j-c-s-b a-i-c" v-if="info.punishRemark">
|
<text>处罚说明</text>
|
<text class="item-content">{{info.punishRemark}}</text>
|
</view>
|
<view class="item-row flex j-c-s-b a-i-c" v-if="info.rectificationEndTime">
|
<text>整改截至时间</text>
|
<text class="item-content">{{info.rectificationEndTime}}</text>
|
</view>
|
<view class="item-row flex j-c-s-b a-i-c" v-if="info.remark">
|
<text>其它隐患问题</text>
|
<text class="item-content">{{info.remark}}</text>
|
</view>
|
<view class="item-row flex j-c-s-b a-i-c">
|
<text>状态</text>
|
<text v-if="info.status == 1">待审核</text>
|
<text v-if="info.status == 2">审核成功</text>
|
<text v-if="info.status == 3">审核驳回</text>
|
<text v-if="info.status == 4">待完成</text>
|
</view>
|
<view class="item-row flex j-c-s-b a-i-c" v-if="info.status == 3 && info.reasonFailure">
|
<text>驳回原因</text>
|
<text class="item-content">{{info.reasonFailure}}</text>
|
</view>
|
|
<view class="image-wrap bgc-ff" v-if="images.length">
|
<view class="mb-20">
|
图片
|
</view>
|
<view class="flex flex-wrap">
|
<view class="image-item" v-for="(i,k) in images" @click="previewImage(images,i)">
|
<u-image :src="i" width="100rpx" height="100rpx"></u-image>
|
</view>
|
</view>
|
</view>
|
|
<view class="image-wrap bgc-ff" v-if="signatureUrl.length">
|
<view class="mb-20">
|
签名
|
</view>
|
<view class="image-item" v-for="(i,k) in signatureUrl" @click="previewImage(signatureUrl,i)">
|
<u-image :src="i" width="100rpx" height="100rpx"></u-image>
|
</view>
|
</view>
|
|
|
|
<view class="mt-20 bgc-ff">
|
<block v-for="(item,index) in itemList">
|
<block v-for="(i,k) in item.children">
|
<block v-for="(n,m) in info.taskPlaceRecordVOList">
|
<view class="item-row flex j-c-s-b a-i-c" v-if="i.id == n.itemId && n.state == 0">
|
<text class="item-left fw">{{item.title}}</text>
|
<!-- <text>不存在</text> -->
|
</view>
|
<u-collapse :value="ids" v-if="i.id == n.itemId && n.state == 0" ref="collapse">
|
<u-collapse-item :name="n.itemId" :title="i.title" value="存在" :disabled="true"
|
:clickable="false" :isLink="false">
|
<view class="mb-20" v-if="n.imageUrls">
|
<view class="f-26 mb-10 c-00">隐患照片</view>
|
<view class="flex flex-wrap">
|
<view class="mr-20" v-for="r in ($setImageUrl(n.imageUrls))">
|
<u-image :src="r" width="140rpx" height="140rpx"
|
@click="previewImage($setImageUrl(n.imageUrls),i)"></u-image>
|
</view>
|
</view>
|
</view>
|
|
<view class="mb-20" v-if="n.remark">
|
<view class="f-26 mb-10 c-00">隐患描述</view>
|
<view class="f-28 c-00">
|
{{n.remark}}
|
</view>
|
</view>
|
|
<!-- <view class="mb-20" v-if="roleType == 2 || (roleType == 1 && n.rectificationImageUrls)">
|
<view class="f-26 mb-10 c-00">整改后照片</view>
|
<u-upload v-if="roleType == 2 && (info.status == 4 || info.status == 3)"
|
:fileList="n.urls" :previewFullImage="uploadConfig.previewFullImage"
|
:accept="uploadConfig.acceptImg" :multiple="uploadConfig.multiple"
|
:maxCount="uploadConfig.maxCount" :capture="uploadConfig.capture"
|
@afterRead="afterReadImgs($event,n,m)" @delete="deleteImages($event,m)">
|
<view class="upload-item upload-icon flex_base">
|
<u-icon name="/static/icon/upload.png" width="60rpx"
|
height="60rpx"></u-icon>
|
</view>
|
</u-upload>
|
|
|
<view class="flex flex-wrap" v-if="info.status != 4 && n.rectificationImageUrls ">
|
<view class="mr-20" v-for="r in ($setImageUrl(n.rectificationImageUrls))">
|
<u-image :src="r" width="140rpx" height="140rpx"
|
@click="previewImage($setImageUrl(n.rectificationImageUrls),i)"></u-image>
|
</view>
|
</view>
|
</view> -->
|
|
<!-- <view class="" v-if="roleType == 2 || (roleType == 1 && n.rectificationRemark)">
|
<view class="f-26 mb-10 c-00">整改后描述</view>
|
<u-textarea v-model="n.rectificationRemark" placeholder="请输入整改后描述"
|
placeholderClass="c-99 f-26"
|
:disabled="roleType == 2 && (info.status == 4 || info.status == 3)?false:true"></u-textarea>
|
</view> -->
|
|
|
|
</u-collapse-item>
|
</u-collapse>
|
</block>
|
</block>
|
</block>
|
</view>
|
|
<view class="blank"></view>
|
<!-- <footer-btn @click="submitInfo" v-if="roleType == 2 && (info.status == 4 || info.status == 3)" /> -->
|
<audit-action v-if="roleType == 1 && info.status == 1" @handle="submitAudit" />
|
<footer-btn v-if="roleType == 2 && info.status == 3 " text="重新提交" @click="navTo" />
|
</view>
|
</template>
|
|
<script>
|
import uploadMixin from "@/mixin/uploadMixinPlace";
|
import {
|
getPlaceCheckItem,
|
getPlaceCheckReformDetail,
|
addPlaceCheckReform,
|
auditPlaceCheckReform
|
} from '@/api/place/place.js'
|
|
import {
|
getPlaceCheckDetail,
|
auditPlaceCheck
|
} from '@/api/reporting/reporting.js'
|
|
import auditAction from '../components/actionBtn.vue'
|
export default {
|
mixins: [uploadMixin],
|
components: {
|
auditAction
|
},
|
data() {
|
return {
|
info: {},
|
images: [],
|
signatureUrl: [],
|
label: "",
|
itemList: [],
|
roleType: '', //1.民警/系统管理员 2.场所负责人 / 学校主体
|
ids: [],
|
taskId: "",
|
type: 1 // 2学校主体
|
}
|
},
|
async onLoad(option) {
|
let {
|
roleName,
|
roleAlias
|
} = uni.getStorageSync("activeRole")
|
if (roleName == "居民") {
|
this.roleType = 2;
|
} else if (roleName == "民警" || roleName == "系统管理员") {
|
this.roleType = 1;
|
} else if (roleAlias == "xyzt") {
|
this.roleType = 2;
|
}
|
|
|
if (option.type) {
|
this.type = option.type;
|
}
|
|
await this.getItem();
|
this.taskId = option.id;
|
},
|
|
|
onShow() {
|
setTimeout(() => {
|
this.getDetail();
|
}, 100)
|
},
|
|
methods: {
|
|
getDetail(id) {
|
getPlaceCheckDetail({
|
taskId: this.taskId
|
}).then(res => {
|
let data = res.data;
|
if (data.type == 2) {
|
uni.setNavigationBarTitle({
|
title: "校园安全检查"
|
})
|
}
|
// this.info = res.data;
|
this.images = this.$setImageUrl(res.data.imageUrls);
|
this.signatureUrl = this.$setImageUrl(res.data.signaturePath);
|
if (res.data.placePoiLabelVOList.length) {
|
this.label = res.data.placePoiLabelVOList[res.data.placePoiLabelVOList.length - 1]
|
.labelName;
|
}
|
let ids = [];
|
for (let i of data.taskPlaceRecordVOList) {
|
if ((data.status == 4 || data.status == 3) && this.roleType == 2) {
|
if (i.rectificationImageUrls) {
|
i.urls = this.$setImageUrl(i.rectificationImageUrls, 2);
|
} else {
|
i.urls = [];
|
}
|
}
|
if (i.state == 0) {
|
ids.push(i.itemId)
|
}
|
}
|
this.ids = ids;
|
this.info = data;
|
})
|
},
|
|
getItem() {
|
let data = {
|
childType: 1,
|
type: 1
|
}
|
if (this.type == 2) {
|
data.childType = 9;
|
data.type = 3;
|
}
|
getPlaceCheckItem(data).then(res => {
|
if (res.code == 200) {
|
this.itemList = res.data;
|
}
|
})
|
},
|
|
async afterReadImgs(event, item, fIndex) {
|
uni.showLoading({
|
title: "上传中..."
|
})
|
let children = this.info.taskPlaceRecordVOList;
|
let lists = [].concat(event.file)
|
let fileListLen = item.urls.length;
|
lists.map((item) => {
|
children[fIndex].urls.push({
|
...item,
|
status: 'uploading',
|
message: '上传中'
|
})
|
this.$set(this.info, "taskPlaceRecordVOList", children)
|
})
|
for (let i = 0; i < lists.length; i++) {
|
const result = await this.uploadFilePromise(lists[i].url)
|
children[fIndex].urls.splice(fileListLen, 1, Object.assign({}, {
|
url: result.data.link,
|
name: result.data.name
|
}))
|
this.$set(this.info, "taskPlaceRecordVOList", children)
|
fileListLen++
|
}
|
this.loadingClose()
|
},
|
|
deleteImages(event, index) {
|
let children = this.info.taskPlaceRecordVOList;
|
children[index].urls.splice(event.index, 1);
|
this.$set(this.info, "taskPlaceRecordVOList", children)
|
},
|
|
setImages(key) {
|
if (!key) {
|
return ""
|
} else {
|
let urls = [];
|
for (let i of key) {
|
urls.push(i.name);
|
}
|
return urls.join(",")
|
}
|
},
|
|
previewImage(urls, current) {
|
uni.previewImage({
|
urls,
|
current
|
})
|
},
|
|
//整改提交
|
submitInfo() {
|
uni.showLoading({
|
title: "加载中..."
|
})
|
let data = this.info;
|
for (let i of data.taskPlaceRecordVOList) {
|
if (i.urls) {
|
i.rectificationImageUrls = this.setImages(i.urls)
|
}
|
delete i.urls;
|
}
|
if (data.status == 3) {
|
data.status = 1;
|
}
|
if (data.status == 4) {
|
data.status = 1;
|
}
|
addPlaceCheckReform(data).then(res => {
|
uni.hideLoading()
|
if (res.code == 200) {
|
this.$showTips("操作成功", "success");
|
setTimeout(() => {
|
uni.navigateBack()
|
}, 300)
|
}
|
})
|
},
|
|
//审核
|
submitAudit(val) {
|
uni.showLoading({
|
title: "加载中..."
|
})
|
auditPlaceCheck({
|
id: this.info.id,
|
taskId: this.info.taskId,
|
status: val.type,
|
rectificationFlag: val.type == 3 ? 1 : 2,
|
reasonFailure: val.remark
|
}).then(res => {
|
uni.hideLoading()
|
if (res.code == 200) {
|
this.$showTips("操作成功", "success");
|
setTimeout(() => {
|
uni.navigateBack()
|
}, 300)
|
}
|
})
|
},
|
|
navTo() {
|
if (this.type == 1) {
|
uni.navigateTo({
|
url: `/subPackage/label/check?taskId=${this.info.taskId}`
|
})
|
} else {
|
uni.navigateTo({
|
url: `/subPackage/school/security?taskId=${this.info.taskId}`
|
})
|
}
|
|
},
|
|
}
|
}
|
</script>
|
|
<style lang="scss">
|
page {
|
background-color: #f5f5f5;
|
}
|
|
.item-row {
|
width: 100%;
|
padding: 30rpx;
|
box-sizing: border-box;
|
border-bottom: 1px solid #f5f5f5;
|
font-size: 28rpx;
|
background-color: #fff;
|
|
.item-content {
|
width: 70%;
|
text-align: right;
|
}
|
|
.item-left {
|
width: 70%;
|
}
|
}
|
|
.image-wrap {
|
margin-top: 20rpx;
|
padding: 20rpx;
|
|
.image-item {
|
margin-right: 20rpx;
|
}
|
}
|
|
/deep/.u-cell__title-text {
|
color: #000 !important;
|
width: 70%;
|
font-size: 28rpx !important;
|
}
|
|
/deep/ .u-cell__value {
|
color: #000 !important;
|
font-size: 28rpx !important;
|
}
|
|
.mr-20 {
|
margin-right: 20rpx;
|
}
|
|
.upload-item {
|
width: 140rpx;
|
height: 140rpx;
|
border: 1px solid #EEEEEE;
|
}
|
|
.blank {
|
width: 100%;
|
height: 140rpx;
|
}
|
|
.c-00 {
|
color: #000;
|
}
|
|
/deep/ .u-collapse-item .u-collapse-item__content {
|
height: auto !important;
|
}
|
</style>
|