216 lines
5.3 KiB
Vue

<template>
<view class="content">
<view class="list">
<view class="list-item" v-for="(item,index) in tableData" :key="index">
<view class="item-title" :class="{'noCheck': item.chooseType == '0'}" @click="showDetail(item)">
<view class="title-left">
<view>{{item.checkItem}}</view>
</view>
<view class="tag" v-if="item.chooseType == '0'">不检查</view>
<view v-else>
<uni-icons2 v-if="!item.isShow" type="arrowright" size="18"></uni-icons2>
<uni-icons2 v-else type="arrowdown" size="18"></uni-icons2>
</view>
</view>
<view v-if="item.isShow && item.chooseType != '0'">
<view class="item-children" v-for="(item2,index2) in item.children" :key="index2">
<view class="item-title title2" :class="{'noCheck': item2.chooseType == '0'}">
<view class="title-left">
<view>{{item2.checkContent}}</view>
</view>
<view class="tag" v-if="item2.chooseType == '0'">不检查</view>
</view>
<view v-if="item2.chooseType != '0'">
<view class="item-detail" v-for="(item3,index3) in item2.children" :key="index3">
<view class="item-title title3" :class="{'noCheck': item3.chooseType == '0'}">
<view class="title-left">
<view>{{item3.checkDetailContent}}</view>
</view>
<view class="tag" v-if="item3.chooseType == '0'">不检查</view>
</view>
<view class="item-actions" v-if="item3.chooseType != '0'">
<view class="upload-img" :class="{'no-image': !item3.imageUrl}">
<view @click="previewImage(item3)">
<uni-icons2 type="image" :color="!item3.imageUrl ? '':'#4396E7'" size="16"></uni-icons2>
{{item3.imageUrl ? item3.imageUrl.split(',').length:'0'}}
</view>
</view>
<view class="item-radio">
<view class="tag" :class="{'status1': item3.chooseType == 1, 'status2': item3.chooseType == 2,'status3': item3.chooseType == 3}">
{{item3.chooseName}}
</view>
</view>
</view>
</view>
</view>
</view>
</view>
</view>
</view>
<view class="submit-btn" v-if="type != 1 && isEdit == '1' && tableData.length>0 && status != 2" @click="createDanger">创建隐患</view>
</view>
</template>
<script>
export default {
props:['tableData','type','engineeringId','isEdit','status'],
data(){
return{
imgFileList: [],
colorList:['#1ecc8f','#ff9305','#ff4b49'],
checkList:[{
name: '符合',
value: "1"
},{
name: '基本符合',
value: "2"
},{
name: '不符合',
value: "3"
}],
activeIndex: "",
isShow: true,
}
},
methods:{
checkRadio(val){
this.activeIndex = val
},
showDetail(val){
val.isShow = !val.isShow
this.$forceUpdate()
},
previewImage(val) {
let arr = []
if(val.imageUrl){
val.imageUrl.split(',').forEach(item=>{
arr.push(this.url_config+'image/'+item)
})
}
console.log(arr)
if(arr.length > 0){
uni.previewImage({
urls: arr
})
}
},
createDanger(){
uni.navigateTo({
url:'./checkItemList?id='+ this.tableData[0].children[0].children[0].userCheckId + '&engineeringId='+ this.engineeringId
})
}
}
}
</script>
<style lang="scss" scoped>
.content{
padding: 20rpx 0;
.list{
padding-bottom: 96rpx;
.list-item{
margin-bottom: 20rpx;
.item-title{
display: flex;
align-items: center;
height: 96rpx;
background: #f8f8f8;
justify-content: space-between;
padding: 0 28rpx;
.title-left{
display: flex;
align-items: center;
font-size: 28rpx;
width: 100%;
>view{
flex: 1;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.uni-icons{
margin-right: 32rpx;
}
}
}
.title2{
background: #fff;
padding-left: 54rpx;
border-bottom: 1px solid #eee;
}
.title3{
background: #fff;
padding-left: 88rpx;
}
.item-children{
background: #fff;
.item-actions{
display: flex;
padding: 20rpx 0;
padding-left: 88rpx;
padding-right: 28rpx;
align-items: center;
justify-content: space-between;
border-bottom: 1px solid #eee;
.upload-img{
display: flex;
align-items: center;
font-size: 28rpx;
// border: 1px solid #4396E7;
padding: 10rpx 10rpx;
color: #4396E7;
border-radius: 6rpx;
.uni-icons{
margin-right: 16rpx;
}
}
.no-image{
color: #000;
}
.item-radio{
display: flex;
font-size: 28rpx;
border-right: 1px solid #eee;
.tag{
padding: 4rpx 8rpx;
}
.status1{
background: rgba(#06C232,0.1);
color: #06C232;
}
.status2{
background: rgba(#ff9305,0.1);
color: #ff9305;
}
.status3{
background: rgba(#ff4b49,0.1);
color: #ff4b49;
}
}
}
}
}
}
.submit-btn{
position: fixed;
bottom: 0;
left: 0;
height: 96rpx;
background: #4a88f5;
color: #fff;
width: 100%;
text-align: center;
line-height: 96rpx;
}
.noCheck{
opacity: 0.5;
border-bottom: 1px solid #eee;
font-size: 28rpx;
.tag{
padding: 4rpx 8rpx;
background: #eee;
}
}
}
</style>