|
|
|
|
@ -1,19 +1,22 @@ |
|
|
|
|
<template> |
|
|
|
|
<view class="pages-css"> |
|
|
|
|
<view class="pages-css" :style="{ 'padding-bottom': (detailForm.status == 5 && userInfo.role_id == '1846419477876510721') ? '180rpx' : '20rpx'}"> |
|
|
|
|
<view class=""> |
|
|
|
|
<view class="status_box" v-if="detailForm.status != 2"> |
|
|
|
|
<view class="status_top"> |
|
|
|
|
<text class="status_txt">{{ detailForm.status == 0 ? '待接单' : '维修完成' }}</text> |
|
|
|
|
<text class="status_txt"> |
|
|
|
|
{{ detailForm.status == 0 ? '待接单' : |
|
|
|
|
detailForm.status == 2 ? '待维修' : detailForm.status == 3 ? '维修中' : (detailForm.status == 4 || detailForm.status == 5) ? '维修完成' : '维修完成' }}</text> |
|
|
|
|
<view class="load_more"> |
|
|
|
|
<text class="load_more_txt">查看更多</text> |
|
|
|
|
<img style="transform: rotate(90deg)" src="../../static/images/loadmore.png" alt="" /> |
|
|
|
|
<image style="transform: rotate(90deg);width: 40rpx;height: 40rpx;" |
|
|
|
|
:src="require('@/static/images/loadmore.png')" alt="" /> |
|
|
|
|
</view> |
|
|
|
|
</view> |
|
|
|
|
<view class="status_bottom"> |
|
|
|
|
<text class="status_tip"> |
|
|
|
|
{{ detailForm.status == 0 ? '【待接单】当前工单等待接单中' : '【维修完成】维修完成,请尽快完成评价' }} |
|
|
|
|
{{ detailForm.status == 0 ? '【待接单】当前工单等待接单中' : (detailForm.status == 2) ? '【待维修】当前工单等待维修中' : (detailForm.status == 3 || detailForm.status == 4) ? '【维修中】维修人员正在进行维修' : '【维修完成】维修完成,请尽快完成评价' }} |
|
|
|
|
</text> |
|
|
|
|
<!-- <text class="status_date">{{detailForm.createTime.substring(0,10)}}</text> --> |
|
|
|
|
<text class="status_date">{{detailForm.createTime && detailForm.createTime.substring(0,10)}}</text> |
|
|
|
|
</view> |
|
|
|
|
|
|
|
|
|
</view> |
|
|
|
|
@ -38,6 +41,7 @@ |
|
|
|
|
<view class="detail_item"> |
|
|
|
|
<text class="item_left_txt">故障视频:</text> |
|
|
|
|
<view class="item_right_txt video"> |
|
|
|
|
<video v-show="videoUrl != ''" :src="videoUrl" style="width: 450rpx; height: 320rpx" controls></video> |
|
|
|
|
<video v-if="detailForm.videoAttaches && detailForm.videoAttaches.length > 0" |
|
|
|
|
:src="detailForm.videoAttaches[0].link" style="width: 148px; height: 148px" |
|
|
|
|
controls></video> |
|
|
|
|
@ -45,37 +49,39 @@ |
|
|
|
|
</view> |
|
|
|
|
<view class="detail_item"> |
|
|
|
|
<text class="item_left_txt">故障图片:</text> |
|
|
|
|
<text class="item_right_txt imgs">故障描述故障描述故障描述故障描述故障描述故障描述故障描述故障描述故障描述故障描述故障描述故障描述</text> |
|
|
|
|
<view class="item_right_txt video"> |
|
|
|
|
<img style="width: 130rpx;height: 140rpx;margin-bottom: 10rpx;" v-for="item in detailForm.picAttaches" :key="item.id" :src="item.link" alt="" /> |
|
|
|
|
</view> |
|
|
|
|
</view> |
|
|
|
|
</view> |
|
|
|
|
<view class="repair_detail" v-if="detailForm.status != 2"> |
|
|
|
|
<view class="repair_detail" v-if="detailForm.status != 2" v-show="detailForm.status == 4 || detailForm.status == 5 || detailForm.status == '6'"> |
|
|
|
|
<view class="repair_title">维修详情</view> |
|
|
|
|
<view class="detail_item"> |
|
|
|
|
<text class="item_left_txt">维修人:</text> |
|
|
|
|
<text class="item_right_txt">李四</text> |
|
|
|
|
<text class="item_right_txt">{{detailForm.repairPersonName}}</text> |
|
|
|
|
</view> |
|
|
|
|
<view class="detail_item"> |
|
|
|
|
<text class="item_left_txt">设备名称:</text> |
|
|
|
|
<text class="item_right_txt">通风柜</text> |
|
|
|
|
<text class="item_right_txt">{{detailForm.deviceName}}</text> |
|
|
|
|
</view> |
|
|
|
|
<view class="detail_item"> |
|
|
|
|
<text class="item_left_txt">故障原因:</text> |
|
|
|
|
<text class="item_right_txt reason">此处是故障发生原因此处是故障发生原因此处是故障发生原因此处是故障发生原因此处是故障发生原因此处是故障发生原因</text> |
|
|
|
|
<text class="item_right_txt reason">{{detailForm.faultCause}}</text> |
|
|
|
|
</view> |
|
|
|
|
<view class="detail_item" style="margin-top: 10rpx;"> |
|
|
|
|
<text class="item_left_txt">处理方法:</text> |
|
|
|
|
<text class="item_right_txt reason">此处是处理方法此处是处理方法此处是处理方法此处是处理方法此处是处理方法</text> |
|
|
|
|
<text class="item_right_txt reason">{{detailForm.processMethod}}</text> |
|
|
|
|
</view> |
|
|
|
|
<view class="detail_item"> |
|
|
|
|
<view class="detail_item" v-show="detailForm.materials && detailForm.materials.length != 0"> |
|
|
|
|
<text class="item_left_txt">维修材料:</text> |
|
|
|
|
<view class="item_right_table"> |
|
|
|
|
<view class="table_box"> |
|
|
|
|
<view class="table_txt left">物料名称</view> |
|
|
|
|
<view class="table_txt right">金额</view> |
|
|
|
|
</view> |
|
|
|
|
<view class="table_box table_item" v-for="item in tableList" :key="item.id"> |
|
|
|
|
<view class="table_txt left">{{ item.goodsName }}</view> |
|
|
|
|
<view class="table_txt right">{{ item.goodsPrice }}</view> |
|
|
|
|
<view class="table_box table_item" v-for="item in detailForm.materials" :key="item.id"> |
|
|
|
|
<view class="table_txt left">{{ item.materialName }}</view> |
|
|
|
|
<view class="table_txt right">{{ item.materialPrice }}</view> |
|
|
|
|
</view> |
|
|
|
|
<view class="table_box table_sub"> |
|
|
|
|
<view class="table_txt left">合计</view> |
|
|
|
|
@ -83,7 +89,7 @@ |
|
|
|
|
</view> |
|
|
|
|
<view class="table_box table_sub"> |
|
|
|
|
<view class="table_txt left">折扣</view> |
|
|
|
|
<view class="table_txt right">{{ discount }}折</view> |
|
|
|
|
<view class="table_txt right">{{ discount }}<text v-show="discount != ''">折</text></view> |
|
|
|
|
</view> |
|
|
|
|
<view class="table_box table_sub"> |
|
|
|
|
<view class="table_txt left">折后价格</view> |
|
|
|
|
@ -96,69 +102,27 @@ |
|
|
|
|
<view class="repair_title">其他信息</view> |
|
|
|
|
<view class="detail_item"> |
|
|
|
|
<text class="item_left_txt">提报人:</text> |
|
|
|
|
<text class="item_right_txt">张三</text> |
|
|
|
|
<text class="item_right_txt">{{detailForm.informantName}}</text> |
|
|
|
|
</view> |
|
|
|
|
<view class="detail_item"> |
|
|
|
|
<text class="item_left_txt">提报人电话:</text> |
|
|
|
|
<text class="item_right_txt">13210251120</text> |
|
|
|
|
<text class="item_right_txt">{{detailForm.informantPhone}}</text> |
|
|
|
|
</view> |
|
|
|
|
<view class="detail_item"> |
|
|
|
|
<text class="item_left_txt">提报单号:</text> |
|
|
|
|
<text class="item_right_txt">20241011001</text> |
|
|
|
|
<text class="item_right_txt">{{detailForm.requirementCode}}</text> |
|
|
|
|
</view> |
|
|
|
|
<view class="detail_item"> |
|
|
|
|
<text class="item_left_txt">提报时间:</text> |
|
|
|
|
<text class="item_right_txt">2024-10-11 12:45</text> |
|
|
|
|
<text class="item_right_txt">{{detailForm.createTime}}</text> |
|
|
|
|
</view> |
|
|
|
|
<view class="detail_item"> |
|
|
|
|
<view class="detail_item" v-show="detailForm.status != 0"> |
|
|
|
|
<text class="item_left_txt">系统接单时间:</text> |
|
|
|
|
<text class="item_right_txt">2024-10-12 08:45</text> |
|
|
|
|
</view> |
|
|
|
|
</view> |
|
|
|
|
|
|
|
|
|
<!-- 维修按钮 并且是维修人员角色 进来显示 --> |
|
|
|
|
<view class="repair_detail" v-if="detailForm.status == 2 && dataTypes == 4"> |
|
|
|
|
<view class="repair_title">处理情况</view> |
|
|
|
|
<view class="detail_item"> |
|
|
|
|
<text class="item_left_txt">接单时间:</text> |
|
|
|
|
<text class="item_right_txt reason">2024/8/20 9:25:30</text> |
|
|
|
|
</view> |
|
|
|
|
</view> |
|
|
|
|
<view class="repair_detail" v-if="detailForm.status == 2 && dataTypes == 4"> |
|
|
|
|
<view class="repair_title">维修详情</view> |
|
|
|
|
<u-form labelPosition="left" :rules="rules" :ref="`repairDetailsForm`" :model="repairDetails" |
|
|
|
|
:label-width="140" class="repair_form"> |
|
|
|
|
<u-form-item label="填报人:" prop="reportPeople" :border-bottom="false"> |
|
|
|
|
<betone-new-input label="" v-model="repairDetails.reportPeople" placeholder="请输入" /> |
|
|
|
|
</u-form-item> |
|
|
|
|
<u-form-item label="设备名称:" prop="deviceName" :border-bottom="false"> |
|
|
|
|
<betone-new-input label="" v-model="repairDetails.deviceName" placeholder="请输入" /> |
|
|
|
|
</u-form-item> |
|
|
|
|
<u-form-item label="故障原因:" prop="faultReason" :border-bottom="false"> |
|
|
|
|
<betone-new-input label="" v-model="repairDetails.faultReason" placeholder="请输入" |
|
|
|
|
type="textarea" /> |
|
|
|
|
</u-form-item> |
|
|
|
|
<u-form-item label="处理方法:" prop="dealMethods" :border-bottom="false"> |
|
|
|
|
<betone-new-input label="" v-model="repairDetails.dealMethods" placeholder="请输入" |
|
|
|
|
type="textarea" /> |
|
|
|
|
</u-form-item> |
|
|
|
|
<u-form-item label="是否申领物料:" prop="isMaterial" :border-bottom="false" :label-width="200"> |
|
|
|
|
<uni-data-checkbox v-model="repairDetails.isMaterial" |
|
|
|
|
:localdata="isMaterialList"></uni-data-checkbox> |
|
|
|
|
</u-form-item> |
|
|
|
|
<u-form-item label="维修材料:" prop="materialTable" :border-bottom="false" |
|
|
|
|
v-if="repairDetails.isMaterial == 1"> |
|
|
|
|
<u-button size="medium" :plain="true" style="margin-right: 32rpx;width:100%" type="primary" |
|
|
|
|
@click="goPage('/pages/submission/materialSelect')">添加</u-button> |
|
|
|
|
</u-form-item> |
|
|
|
|
</u-form> |
|
|
|
|
</view> |
|
|
|
|
<view class="repair-btn" style="margin-right: 32rpx;width:100%"> |
|
|
|
|
<!-- <u-button size="medium">保存</u-button> --> |
|
|
|
|
<u-button size="medium" type="primary" @clcik="repairSubmit()">提交</u-button> |
|
|
|
|
</view> |
|
|
|
|
</view> |
|
|
|
|
<view class="evaluate_box" v-if="detailForm.status == 5"> |
|
|
|
|
<view class="evaluate_box" v-if="detailForm.status == 5" v-show="detailForm.status == 5 && userInfo.role_id == '1846419477876510721'"> |
|
|
|
|
<view class="evaluate_btn"> |
|
|
|
|
评价 |
|
|
|
|
</view> |
|
|
|
|
@ -166,6 +130,34 @@ |
|
|
|
|
</view> |
|
|
|
|
</template> |
|
|
|
|
<script> |
|
|
|
|
export default { |
|
|
|
|
data() { |
|
|
|
|
return { |
|
|
|
|
totalPrice:'', |
|
|
|
|
discount:'9', |
|
|
|
|
discountPrice:'975.60', |
|
|
|
|
detailId:'', |
|
|
|
|
detailForm:{}, |
|
|
|
|
videoUrl:'', |
|
|
|
|
userInfo:{} |
|
|
|
|
} |
|
|
|
|
}, |
|
|
|
|
onLoad(options){ |
|
|
|
|
console.log('options==========>',options) |
|
|
|
|
this.userInfo = uni.getStorageSync("userinfo"); |
|
|
|
|
console.log('info========?',this.userInfo) |
|
|
|
|
this.detailId = options.id |
|
|
|
|
this.getDetail() |
|
|
|
|
}, |
|
|
|
|
mounted() { |
|
|
|
|
|
|
|
|
|
}, |
|
|
|
|
methods:{ |
|
|
|
|
getDetail(){ |
|
|
|
|
let query_ = { |
|
|
|
|
id: this.detailId |
|
|
|
|
} |
|
|
|
|
this.$u.api.getBreakdownInfo(query_).then(res => { |
|
|
|
|
export default { |
|
|
|
|
computed: { |
|
|
|
|
dataTypes() { |
|
|
|
|
@ -236,6 +228,10 @@ export default { |
|
|
|
|
this.$u.api.getBreakdownInfo(query_).then(res => { |
|
|
|
|
if (res.code == 200) { |
|
|
|
|
this.detailForm = res.data |
|
|
|
|
this.videoUrl = res.data.videoAttaches && res.data.videoAttaches.length > 0 ? res.data.videoAttaches[0].link : '' |
|
|
|
|
this.totalPrice = res.data.totalPrice == -1 ? res.data.materials.reduce((sum, item) => sum + item.materialPrice, 0) : res.data.totalPrice |
|
|
|
|
this.discount = res.data.discount == -1 ? '' : res.data.discount |
|
|
|
|
this.discountPrice = res.data.discountPrice == -1 ? '' : res.data.discountPrice |
|
|
|
|
} |
|
|
|
|
}) |
|
|
|
|
}, |
|
|
|
|
@ -253,13 +249,13 @@ export default { |
|
|
|
|
} |
|
|
|
|
</script> |
|
|
|
|
<style lang="scss" scoped> |
|
|
|
|
.pages-css { |
|
|
|
|
|
|
|
|
|
width: 100%; |
|
|
|
|
padding: 0; |
|
|
|
|
background: rgba(239, 239, 239, 1); |
|
|
|
|
padding-top: 26rpx; |
|
|
|
|
padding-bottom: 180rpx; |
|
|
|
|
.pages-css { |
|
|
|
|
|
|
|
|
|
width: 100%; |
|
|
|
|
padding: 0; |
|
|
|
|
background: rgba(239, 239, 239, 1); |
|
|
|
|
padding-top: 26rpx; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.status_box { |
|
|
|
|
margin: 0 24rpx 20rpx; |
|
|
|
|
@ -342,15 +338,15 @@ export default { |
|
|
|
|
align-items: center; |
|
|
|
|
justify-content: space-between; |
|
|
|
|
|
|
|
|
|
.item_left_txt { |
|
|
|
|
color: rgba(108, 108, 108, 1); |
|
|
|
|
font-size: 14px; |
|
|
|
|
text-align: left; |
|
|
|
|
font-family: SourceHanSansSC-regular; |
|
|
|
|
width: 200rpx; |
|
|
|
|
margin-right: 20rpx; |
|
|
|
|
line-height: 60rpx; |
|
|
|
|
} |
|
|
|
|
.item_left_txt { |
|
|
|
|
color: rgba(108, 108, 108, 1); |
|
|
|
|
font-size: 14px; |
|
|
|
|
text-align: left; |
|
|
|
|
font-family: SourceHanSansSC-regular; |
|
|
|
|
width: 210rpx; |
|
|
|
|
margin-right: 20rpx; |
|
|
|
|
line-height: 60rpx; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
.item_right_txt { |
|
|
|
|
max-width: calc(100% - 220rpx); |
|
|
|
|
@ -410,6 +406,14 @@ export default { |
|
|
|
|
overflow: hidden; |
|
|
|
|
text-overflow: ellipsis; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
.video{ |
|
|
|
|
margin-top: 10rpx; |
|
|
|
|
display: flex; |
|
|
|
|
flex-wrap: wrap; |
|
|
|
|
align-items: center; |
|
|
|
|
justify-content: space-between; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|