|
|
|
|
<template>
|
|
|
|
|
<view class="page-css">
|
|
|
|
|
<view class="info">
|
|
|
|
|
<view class="info_title">基本信息</view>
|
|
|
|
|
<view class="info_item">
|
|
|
|
|
<text class="item_left_txt">单位名称:</text>
|
|
|
|
|
<text class="item_right_txt">{{ detailForm.deptName }}</text>
|
|
|
|
|
</view>
|
|
|
|
|
<view class="info_item">
|
|
|
|
|
<text class="item_left_txt">巡检内容:</text>
|
|
|
|
|
<text class="item_right_txt">{{ detailForm.taskContent }}</text>
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
|
|
|
|
<view class="info">
|
|
|
|
|
<view class="info_title">巡检配置</view>
|
|
|
|
|
<view class="info_item">
|
|
|
|
|
<text class="item_left_txt">巡检内容:</text>
|
|
|
|
|
<text class="item_right_txt">{{ detailForm.taskContent }}</text>
|
|
|
|
|
</view>
|
|
|
|
|
<view class="info_item">
|
|
|
|
|
<text class="item_left_txt">任务开始时间:</text>
|
|
|
|
|
<text class="item_right_txt">{{ detailForm.startTime }}</text>
|
|
|
|
|
</view>
|
|
|
|
|
<view class="info_item" v-if="!(detailForm.taskStatus == 0 || detailForm.taskStatus == 1)">
|
|
|
|
|
<text class="item_left_txt">预约上门时间:</text>
|
|
|
|
|
<text class="item_right_txt">{{ detailForm.reservationTime }}</text>
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
|
|
|
|
|
|
|
|
|
<view class="info">
|
|
|
|
|
<view class="info_title">巡检任务</view>
|
|
|
|
|
<u-collapse :accordion="false">
|
|
|
|
|
<u-collapse-item v-for="(item, index) in detailForm.details" :key="index">
|
|
|
|
|
<view slot="title">
|
|
|
|
|
<text class="collapse-title">实验室楼层:{{ item.floorName }}</text>
|
|
|
|
|
</view>
|
|
|
|
|
<view v-for="(v, vindex) in item.details" :key="vindex" class="collapse-room">
|
|
|
|
|
<view>房间名称:{{ v.deptName }}</view>
|
|
|
|
|
<view v-for="(s, sindex) in v.details" :key="sindex" class="n-box">
|
|
|
|
|
<u-tag :text="sindex + 1" type="info" class="left-tag" />
|
|
|
|
|
<view class="n-box-title"> {{ s.checkContent }}</view>
|
|
|
|
|
<view class="n-box-info"> {{ s.craft }}</view>
|
|
|
|
|
<view class="info_item">
|
|
|
|
|
<text class="item_left_txt">巡检周期:</text>
|
|
|
|
|
<text class="item_right_txt">
|
|
|
|
|
{{ periodName(s.period) }}
|
|
|
|
|
</text>
|
|
|
|
|
</view>
|
|
|
|
|
<view class="info_item" v-if="s.status >= 0">
|
|
|
|
|
<text class="item_left_txt">状态:</text>
|
|
|
|
|
<text class="item_right_txt">
|
|
|
|
|
{{ s.status == '0' ? '正常' : '异常' }}
|
|
|
|
|
</text>
|
|
|
|
|
</view>
|
|
|
|
|
<view class="info_item" v-if="s.picUrl != ''">
|
|
|
|
|
<text class="item_left_txt">现场照片:</text>
|
|
|
|
|
<text class="item_right_txt">
|
|
|
|
|
<image class="item_right_img" :src="s.picUrl"></image>
|
|
|
|
|
</text>
|
|
|
|
|
</view>
|
|
|
|
|
<view class="info_item" v-if="s.signUrl != ''">
|
|
|
|
|
<text class="item_left_txt">签字:</text>
|
|
|
|
|
<text class="item_right_txt">
|
|
|
|
|
{{ s.signUrl }}
|
|
|
|
|
</text>
|
|
|
|
|
</view>
|
|
|
|
|
<view class="info_item" v-if="s.remark != ''">
|
|
|
|
|
<text class="item_left_txt">备注:</text>
|
|
|
|
|
<text class="item_right_txt">
|
|
|
|
|
{{ s.remark }}
|
|
|
|
|
</text>
|
|
|
|
|
</view>
|
|
|
|
|
<view class="info_item" v-if="s.price >= 0">
|
|
|
|
|
<text class="item_left_txt">价格:</text>
|
|
|
|
|
<text class="item_right_txt">
|
|
|
|
|
{{ s.price }}
|
|
|
|
|
</text>
|
|
|
|
|
</view>
|
|
|
|
|
<view class="info_item" v-if="s.isRepair >= 0">
|
|
|
|
|
<text class="item_left_txt">是否维修:</text>
|
|
|
|
|
<text class="item_right_txt">
|
|
|
|
|
{{ s.status == '0' ? '否' : '是' }}
|
|
|
|
|
</text>
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
|
|
|
|
</u-collapse-item>
|
|
|
|
|
</u-collapse>
|
|
|
|
|
</view>
|
|
|
|
|
|
|
|
|
|
</view>
|
|
|
|
|
</template>
|
|
|
|
|
<script>
|
|
|
|
|
export default {
|
|
|
|
|
|
|
|
|
|
computed: {
|
|
|
|
|
dataTypes() {
|
|
|
|
|
return this.$store.state.dataType
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
data() {
|
|
|
|
|
return {
|
|
|
|
|
detailForm: {},
|
|
|
|
|
optionsType: '',//可操作类型
|
|
|
|
|
planOrderId: '',//
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
onLoad(options) {
|
|
|
|
|
this.optionsType = options.type
|
|
|
|
|
this.planOrderId = options.id
|
|
|
|
|
this.getDetails()
|
|
|
|
|
},
|
|
|
|
|
methods: {
|
|
|
|
|
getDetails() {
|
|
|
|
|
let query_ = {
|
|
|
|
|
id: this.planOrderId
|
|
|
|
|
}
|
|
|
|
|
this.$u.api.getTaskDetail(query_).then(res => {
|
|
|
|
|
if (res.code == 200) {
|
|
|
|
|
this.detailForm = res.data
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
// 巡检周期
|
|
|
|
|
periodName(value) {
|
|
|
|
|
if (value == 1) {
|
|
|
|
|
return '月'
|
|
|
|
|
}
|
|
|
|
|
if (value == 2) {
|
|
|
|
|
return '季度'
|
|
|
|
|
}
|
|
|
|
|
if (value == 3) {
|
|
|
|
|
return '半年'
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
</script>
|
|
|
|
|
<style lang="scss" scoped>
|
|
|
|
|
.page-css {
|
|
|
|
|
width: 100%;
|
|
|
|
|
padding: 0;
|
|
|
|
|
padding-top: 26rpx;
|
|
|
|
|
|
|
|
|
|
.info {
|
|
|
|
|
margin: 0 24rpx 20rpx;
|
|
|
|
|
border-radius: 20rpx;
|
|
|
|
|
background-color: rgba(255, 255, 255, 1);
|
|
|
|
|
padding: 6rpx 0 34rpx;
|
|
|
|
|
|
|
|
|
|
.info_title {
|
|
|
|
|
line-height: 60rpx;
|
|
|
|
|
color: rgba(0, 0, 0, 1);
|
|
|
|
|
font-size: 32rpx;
|
|
|
|
|
text-align: left;
|
|
|
|
|
font-family: SourceHanSansSC-bold;
|
|
|
|
|
margin: 18rpx 0 0rpx 20rpx;
|
|
|
|
|
font-weight: bold;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.info_item {
|
|
|
|
|
padding: 4rpx 20rpx 0;
|
|
|
|
|
|
|
|
|
|
display: flex;
|
|
|
|
|
align-items: center;
|
|
|
|
|
justify-content: space-between;
|
|
|
|
|
|
|
|
|
|
.item_left_txt {
|
|
|
|
|
color: rgba(108, 108, 108, 1);
|
|
|
|
|
font-size: 28rpx;
|
|
|
|
|
text-align: left;
|
|
|
|
|
font-family: SourceHanSansSC-regular;
|
|
|
|
|
width: 210rpx;
|
|
|
|
|
margin-right: 20rpx;
|
|
|
|
|
line-height: 60rpx;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.item_right_txt {
|
|
|
|
|
max-width: calc(100% - 220rpx);
|
|
|
|
|
color: rgba(0, 0, 0, 1);
|
|
|
|
|
font-size: 28rpx;
|
|
|
|
|
// text-align: left;
|
|
|
|
|
text-align: justify;
|
|
|
|
|
font-family: SourceHanSansSC-regular;
|
|
|
|
|
image{
|
|
|
|
|
width: 100rpx;
|
|
|
|
|
height: 100rpx;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.repair-btn {
|
|
|
|
|
width: 100%;
|
|
|
|
|
height: 150rpx;
|
|
|
|
|
display: flex;
|
|
|
|
|
justify-content: space-between;
|
|
|
|
|
/* 水平均匀分布 */
|
|
|
|
|
margin-top: 32rpx;
|
|
|
|
|
padding: 0 32rpx;
|
|
|
|
|
|
|
|
|
|
/deep/.u-btn {
|
|
|
|
|
width: 48%;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.n-box {
|
|
|
|
|
border: 1px solid rgba(239, 239, 239, 1);
|
|
|
|
|
padding: 32rpx 54rpx 0;
|
|
|
|
|
margin-top: 24rpx;
|
|
|
|
|
margin-bottom: 24rpx;
|
|
|
|
|
position: relative;
|
|
|
|
|
|
|
|
|
|
.right-tag {
|
|
|
|
|
position: absolute;
|
|
|
|
|
right: 0;
|
|
|
|
|
top: 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.left-tag {
|
|
|
|
|
position: absolute;
|
|
|
|
|
left: 0;
|
|
|
|
|
top: 0;
|
|
|
|
|
padding-left: 10rpx;
|
|
|
|
|
padding-right: 10rpx;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.n-box-title {
|
|
|
|
|
color: rgba(0, 0, 0, 1);
|
|
|
|
|
font-size: 28rpx;
|
|
|
|
|
text-align: left;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.n-box-info {
|
|
|
|
|
line-height: 32rpx;
|
|
|
|
|
color: rgba(154, 154, 154, 1);
|
|
|
|
|
font-size: 24rpx;
|
|
|
|
|
padding-top: 12rpx;
|
|
|
|
|
padding-bottom: 12rpx;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.info_item {
|
|
|
|
|
width: 100%;
|
|
|
|
|
display: flex;
|
|
|
|
|
flex-direction: row;
|
|
|
|
|
margin: 0rpx 0 0;
|
|
|
|
|
|
|
|
|
|
.item_left_txt {
|
|
|
|
|
color: rgba(108, 108, 108, 1);
|
|
|
|
|
font-size: 28rpx;
|
|
|
|
|
text-align: left;
|
|
|
|
|
width: 170rpx;
|
|
|
|
|
margin-right: 20rpx;
|
|
|
|
|
line-height: 60rpx;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.item_right_txt {
|
|
|
|
|
flex: 1;
|
|
|
|
|
max-width: calc(100% - 220rpx);
|
|
|
|
|
color: rgba(0, 0, 0, 1);
|
|
|
|
|
font-size: 28rpx;
|
|
|
|
|
// text-align: left;
|
|
|
|
|
text-align: justify;
|
|
|
|
|
font-family: SourceHanSansSC-regular;
|
|
|
|
|
|
|
|
|
|
/deep/.u-radio-group {
|
|
|
|
|
flex-wrap: nowrap;
|
|
|
|
|
padding-right: 48rpx;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.btn {
|
|
|
|
|
width: 260rpx;
|
|
|
|
|
height: 60rpx;
|
|
|
|
|
line-height: 60rpx;
|
|
|
|
|
border-radius: 8rpx;
|
|
|
|
|
background-color: rgba(255, 255, 255, 1);
|
|
|
|
|
color: rgba(58, 98, 215, 1);
|
|
|
|
|
font-size: 28rpx;
|
|
|
|
|
text-align: center;
|
|
|
|
|
border: 2rpx dashed rgba(58, 98, 215, 1);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/deep/.u-collapse {
|
|
|
|
|
padding: 0 16rpx;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
</style>
|