yxk_h5_master/pages/eqUpkeep/upkeepDetail.vue

589 lines
17 KiB
Vue
Raw Permalink Normal View History

2025-08-28 15:21:09 +08:00
<template>
<view>
<view class="top_container">
<view class="report_status" v-if="record.result == '56'">待处理</view>
<view class="report_status" v-else-if="record.result == '57'"
>待验收</view
>
<view class="report_status" v-else-if="record.result == '58'"
>已验收</view
>
<view class="report_status"
>计划编号:{{ record.work_orderNo || "" }}</view
>
<view class="btn" v-if="record.result == '56'" @click="toPatrol()"
>保养执行</view
><!-- 待处理 -->
<view class="btn" v-else-if="record.result == '57'" @click="toEvaluate()"
>验收评价</view
><!-- 待验收 -->
</view>
<view class="detail_name_container">
<view
:class="[current_num == 1 ? 'current' : '']"
@click="changecurrent(1)"
>基本信息</view
>
<view
:class="[current_num == 2 ? 'current' : '']"
@click="changecurrent(2)"
>保养项目</view
>
<view
:class="[current_num == 3 ? 'current' : '']"
@click="changecurrent(3)"
>备件信息</view
>
<view
v-if="record.result == '58'"
:class="[current_num == 4 ? 'current' : '']"
@click="changecurrent(4)"
>验收评价</view
>
</view>
<view v-if="current_num == 1">
<view class="myContainer myContentBox">
<view class="top_container detail_list_top">
<view class="report_status">设备信息</view>
</view>
<view class="list_item">
<view class="list_item_name">设备单号</view>
<view class="list_item_content contentRight">{{
record.serialno
}}</view>
</view>
<view class="list_item">
<view class="list_item_name">设备名称</view>
<view class="list_item_content contentRight">{{
record.deviceName
}}</view>
</view>
<view class="list_item">
<view class="list_item_name">规格型号</view>
<view class="list_item_content contentRight">{{ record.model }}</view>
</view>
<view class="list_item">
<view class="list_item_name">使用部门</view>
<view class="list_item_content contentRight">{{
record.useDeptName
}}</view>
</view>
<view class="list_item">
<view class="list_item_name">安装地点</view>
<view class="list_item_content contentRight">{{ record.site }}</view>
</view>
</view>
<view class="myContainer myContentBox">
<view class="top_container detail_list_top">
<view class="report_status">保养概况</view>
</view>
<view class="list_item">
<view class="list_item_name">保养单号</view>
<view class="list_item_content contentRight">{{
record.work_orderNo
}}</view>
</view>
<view class="list_item">
<view class="list_item_name">保养级别</view>
<view class="list_item_content contentRight">{{
record.typeName
}}</view>
</view>
<view class="list_item">
<view class="list_item_name">保养名称</view>
<view class="list_item_content contentRight">{{
record.planName
}}</view>
</view>
<view class="list_item">
<view class="list_item_name">保养负责人</view>
<view class="list_item_content contentRight">{{
record.userName
}}</view>
</view>
<view class="list_item">
<view class="list_item_name">负责人电话</view>
<view class="list_item_content contentRight">{{
record.mobile
}}</view>
</view>
<view class="list_item">
<view class="list_item_name">保养开始时间</view>
<view class="list_item_content contentRight">{{
record.planStarttime
}}</view>
</view>
<view class="list_item">
<view class="list_item_name">保养结束时间</view>
<view class="list_item_content contentRight">{{
record.planendtime
}}</view>
</view>
<view class="list_item">
<view class="list_item_name">保养总用时</view>
<view class="list_item_content contentRight"
>{{ record.plan_man_hour || "-" }}小时</view
>
</view>
<!-- <view class="list_item">
<view class="list_item_name">下次保养时间</view>
<view class="list_item_content contentRight"></view>
</view> -->
<view class="list_item">
<view class="list_item_name">停机时间</view>
<view class="list_item_content contentRight"
>{{ record.downHour || "-" }}小时</view
>
</view>
<view class="list_item">
<view class="list_item_name">使用状况</view>
<view class="list_item_content contentRight">{{
record.using_status_name
}}</view>
</view>
<view class="list_item">
<view class="list_item_name">材料费合计</view>
<view class="list_item_content contentRight"
>{{ record.cost }}</view
>
</view>
<view class="list_item">
<view class="list_item_name">工时费合计</view>
<view class="list_item_content contentRight"
>{{ record.manhourCost }}</view
>
</view>
</view>
<!-- 保养总结待验收已验收 -->
<view v-if="record.result != '56' && record.result">
<view class="myContainer myContentBox">
<view class="top_container detail_list_top">
<view class="report_status">保养总结</view>
</view>
<view class="resultContent">{{ record.resultContent }}</view>
</view>
</view>
</view>
<view v-else-if="current_num == 2">
<view
class="myContainer myContentBox"
v-for="(items, index) in project"
:key="index"
>
<view class="top_container detail_list_top">
<view class="report_status">保养项目-{{ index }}</view>
</view>
<view style="clear: both">
<view class="multi_list_item">
<view class="list_item">
<view class="list_item_name">项目:</view>
<view class="list_item_content">{{ items.name }}</view>
</view>
</view>
<view class="multi_list_item">
<view class="list_item list_item-">
<view class="list_item_name">工时:</view>
<view class="list_item_content">{{ items.manhour }}小时</view>
</view>
<view class="list_item list_item-">
<view class="list_item_name">结果:</view>
<view class="list_item_content" v-if="items.result == 1"
>通过</view
>
<view class="list_item_content" v-else-if="items.result == 0"
>不通过</view
>
</view>
</view>
<view class="multi_list_item">
<view class="list_item">
<view class="list_item_name">保养工时费:</view>
<view class="list_item_content" style="padding-left: 180upx"
>{{ items.manHourCost || "" }}</view
>
</view>
</view>
<view class="multi_list_item">
<view class="list_item">
<view class="list_item_name">方法:</view>
<view class="list_item_content">{{ items.function }}</view>
</view>
</view>
<view class="list_item">
<view class="list_item_name">备注:</view>
<view class="list_item_content">{{ items.remark }}</view>
</view>
</view>
</view>
</view>
<view v-else-if="current_num == 3" class="difBox">
<view
class="myContainer myContentBox"
v-for="(items, index) in part"
:key="index"
>
<view class="top_container">
<view class="report_status">{{ items.spartName }}</view>
<view class="report_status">[{{ items.code }}]</view>
</view>
<view style="clear: both">
<view class="multi_list_item">
<view class="list_item list_item-">
<view class="list_item_name list_item_name2">规格型号:</view>
<view class="list_item_content list_item_content2">{{
items.type
}}</view>
</view>
<view class="list_item list_item-">
<view class="list_item_name">库位:</view>
<view class="list_item_content">{{ items.locationName }}</view>
</view>
</view>
<view class="flex_list_item">
<view>单价:{{ items.price }}</view>
<view>总价:{{ items.spart_sum }}</view>
<view>数量:{{ items.spart_amount }}{{ items.spart_unit }}</view>
</view>
</view>
</view>
</view>
<view v-else-if="current_num == 4">
<view class="myContainer myContentBox">
<view class="list_item" style="padding: 20upx">
<view
class="list_item_name"
style="padding-top: 28upx; color: #333"
>{{ checkInfo.result_name || "" }}</view
>
<view class="list_item_content content_right">
<view>验收人{{ checkInfo.user_name || "" }}</view>
<view>验收时间{{ checkInfo.update_time || "" }}</view>
</view>
</view>
</view>
<view class="myContainer myContentBox">
<view class="top_container">验收评价</view>
<view class="star_content">
<view class="star_name">完成效率</view>
<view class="star">
<uni-rate
:value="checkInfo.xl_grade || ''"
active-color="#3382FF"
:disabled="true"
color="#C1C1C1"
></uni-rate>
</view>
</view>
<view class="star_content">
<view class="star_name">完成质量</view>
<view class="star">
<uni-rate
:value="checkInfo.qa_grade || ''"
active-color="#3382FF"
:disabled="true"
color="#C1C1C1"
></uni-rate>
</view>
</view>
<view class="star_content">
<view class="star_name">工作态度</view>
<view class="star">
<uni-rate
:value="checkInfo.td_grade || ''"
active-color="#3382FF"
:disabled="true"
color="#C1C1C1"
></uni-rate>
</view>
</view>
</view>
<view class="myContainer myContentBox">
<view class="top_container">验收意见</view>
<view class="resultContent" style="padding-bottom: 5px">{{
checkInfo.content || ""
}}</view>
</view>
</view>
<view class="goHome" @click="goMain()">
<img src="../../static/img/gohome.png" />
</view>
</view>
</template>
<script>
import uniRate from "@/components/uni-rate/uni-rate.vue";
import { config } from "../../request/js/config.js";
export default {
components: {
uniRate,
},
data() {
return {
config: config,
current_num: 1,
id: "",
record: {},
part: [],
project: [],
checkInfo: {},
};
},
onLoad(option) {
this.id = option.id;
if (this.id == undefined) {
uni.reLaunch({
url: "eqUpkeep",
});
return false;
}
var _this = this;
this.$http
.request({
url: "/apis/upkeepPlan/oneRecordDetail",
params: {
recordId: this.id,
},
})
.then((res) => {
if (res.data.code == 0) {
// this.data_result=res.data.data;
this.record = res.data.data.record[0];
this.part = res.data.data.part;
this.project = res.data.data.project;
if (this.record.result == 58) {
_this.getValues();
}
}
})
.catch((err) => {
uni.showToast({
title: "获取信息失败",
duration: 2000,
icon: "none",
});
});
},
methods: {
//获取评价详情。
getValues() {
this.$http
.request({
url: "/apis/upkeepRecord/getCheckDetail",
params: {
recordId: this.id,
},
})
.then((res) => {
if (res.data.code == 0) {
this.checkInfo = res.data.data;
}
})
.catch((err) => {
uni.showToast({
title: "获取信息失败",
duration: 2000,
icon: "none",
});
});
},
changecurrent(num) {
this.current_num = num;
},
//点击立即巡检
toPatrol() {
uni.navigateTo({
url: "keepStep1?id=" + this.id,
});
},
//验收评价
toEvaluate() {
uni.navigateTo({
url: "keepEvaluation?id=" + this.id,
});
},
},
onBackPress(options) {
//取消默认的返回事件.
// uni.navigateTo({
// url: "eqUpkeep"
// });
// return true;
},
};
</script>
<style>
page {
background-color: #f5f7f5;
}
</style>
<style scoped>
.difBox .top_container {
border-radius: 12upx 12upx 0px 0px;
box-shadow: none;
border: 0px;
}
.top_container {
position: relative;
width: 100%;
background-color: #fff;
padding: 30upx 200upx 30upx 30upx;
box-sizing: border-box;
color: #333;
/* box-shadow: 2px 2px 20upx rgba(0,0,0,0.1); */
}
.report_status {
line-height: 40upx;
word-break: break-all;
font-size: 28upx;
}
.btn {
position: absolute;
width: 160upx;
height: 68upx;
text-align: center;
line-height: 68upx;
border-radius: 10upx;
background-color: #3382ff;
color: #fff;
right: 30upx;
margin: auto;
top: 0;
bottom: 0;
font-size: 28upx;
}
.detail_name_container {
position: relative;
width: 100%;
padding-left: 30upx;
height: 100upx;
box-sizing: border-box;
color: #333;
}
.detail_name_container view {
position: relative;
font-size: 30upx;
float: left;
line-height: 100upx;
}
.detail_name_container view {
margin-right: 20upx;
}
.current:after {
position: absolute;
content: "";
width: 80upx;
height: 8upx;
background-color: #3382ff;
bottom: 8upx;
left: 20upx;
border-radius: 8upx;
}
.detail_list {
position: relative;
background-color: #fff;
width: 90%;
margin: auto;
box-shadow: 1px 1px 20upx rgba(0, 0, 0, 0.1);
margin-bottom: 30upx;
overflow: auto;
}
.list_item {
position: relative;
width: 100%;
min-height: 70upx;
padding: 0 30upx;
box-sizing: border-box;
}
.multi_list_item {
position: relative;
overflow: auto;
}
.list_item- {
width: 50%;
float: left;
}
.list_item_name {
position: absolute;
left: 30upx;
font-size: 28upx;
color: #999;
line-height: 70upx;
}
.list_item- .list_item_name {
width: 100upx;
}
.list_item_name2 {
width: 140upx !important;
}
.list_item_content {
position: relative;
padding: 14upx 0 14upx 100upx;
font-size: 28upx;
line-height: 40upx;
max-height: 140upx;
color: #333;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 3;
-webkit-box-orient: vertical;
box-sizing: border-box;
}
.contentRight {
text-align: right;
}
.list_item- .list_item_content {
padding: 14upx 0 14upx 100upx;
}
.list_item_content2 {
padding: 14upx 0 14upx 140upx !important;
}
.flex_list_item {
position: relative;
padding: 0 15px;
height: 70upx;
line-height: 70upx;
border-top: 1px solid #e0e0e0;
display: flex;
flex-direction: row;
justify-content: space-between;
font-size: 24upx;
color: #333;
}
.flex_list_item view {
line-height: 70upx;
}
.sign_in_container {
position: relative;
width: 100%;
}
.img-wrap {
position: relative;
background-color: #fff;
float: left;
width: 27%;
margin: 3%;
}
.img-box {
width: 100%;
padding-bottom: 100%;
overflow: hidden;
margin: 0;
position: relative;
}
.img-box img {
position: absolute;
width: 100%;
height: 100%;
}
.resultContent {
font-size: 30upx;
color: #333;
padding: 30upx 30upx 0 30upx;
box-sizing: border-box;
}
</style>