ll
liukangdong
2024-11-29 b850badcf800eff5819e0789d1b81e5e27fcd037
h5/pages/workOrder/detail.vue
@@ -2,59 +2,63 @@
   <view>
      <view class="main_info">
         <view class="title">
            <text>阜宁文体中心/A座/401</text>
            <text class="status">待处理</text>
            <text>{{ info.projectName }}/{{ info.buildingName }}/{{info.roomNum || info.floorName}}</text>
            <text class="status" v-if="info.dealStatus == 0">待处理</text>
            <text class="status" v-if="info.dealStatus == 1">已指派</text>
            <text class="status gray" v-if="info.dealStatus == 2">已处理</text>
         </view>
         <view class="desc">西边走廊的一个顶灯坏了,不亮需要维修西边</view>
         <view class="desc">{{ info.content }}</view>
         <view class="file_list">
            <view class="file">
            <view class="file" v-for="(item,index) in info.fileList">
               <image v-if="item.type == 0" :src="item.fileurlFull" mode="widthFix"></image>
               <video v-if="item.type == 1" :src="item.fileurlFull" :controls="false"></video>
            </view>
         </view>
         <view class="content">
            <view class="line">
            <view class="line" v-if="info.categoryName">
               <view class="la">工单类型:</view>
               <view class="val">1111</view>
               <view class="val">{{info.categoryName}}</view>
            </view>
            <view class="line">
               <view class="la">上报人:</view>
               <view class="val">1111</view>
               <view class="val">{{ info.creatorName }}{{info.creatorCompany ? '-' + info.creatorCompany : ''}}</view>
            </view>
            <view class="line">
            <view class="line"  v-if="info.creatorPhone">
               <view class="la">联系电话:</view>
               <view class="val">1111</view>
               <view class="val">{{ info.creatorPhone }}</view>
            </view>
            <view class="line">
               <view class="la">上报时间:</view>
               <view class="val">1111</view>
               <view class="val">{{ info.createDate }}</view>
            </view>
            <view class="line">
            <view class="line" v-if="info.getDate">
               <view class="la">上门时间:</view>
               <view class="val">1111</view>
               <view class="val">{{ info.getDate }}</view>
            </view>
         </view>
         <view class="result_wrap">
         <view class="result_wrap" v-if="info.dealStatus == 2">
            <div class="title">处理结果</div>
            <view class="file_list">
               <view class="file">
            <view v-if="info.dealFileList && info.dealFileList.length > 0" class="file_list">
               <view class="file" v-for="item in info.dealFileList">
                  <image v-if="item.type == 0" :src="item.fileurlFull" mode="widthFix"></image>
                  <video v-if="item.type == 1" :src="item.fileurlFull" :controls="false"></video>
               </view>
            </view>
            <view class="content">
               已更换灯泡和灯罩已更换灯泡和灯罩已更换灯
            <view v-if="info.dealInfo" class="content">
               {{info.dealInfo}}
            </view>
            <view class="line">
               <view class="la">处理人:</view>
               <view class="val">{{ 1111 }}</view>
               <view class="val">{{ info.dealUserName }}</view>
            </view>
            <view class="line">
               <view class="la">处理时间:</view>
               <view class="val">{{ 1111 }}</view>
               <view class="val">{{ info.dealDate }}</view>
            </view>
         </view>
      </view>
      <!--  -->
      <view class="btns">
      <view class="btns" v-if="info.dealStatus == 0">
         <view class="btn">
            <image src="@/static/side/phoneed.png" class="icon"></image>
            <text>上报人</text>
@@ -62,7 +66,7 @@
         <view class="btn active" @click="isShowHandle = true">去处理</view>
      </view>
      <!--  -->
      <u-popup :show="showUpload" @close="showUpload = false" closeOnClickOverlay>
      <u-popup :show="showUpload" @close="showUpload = false" zIndex="10076" closeOnClickOverlay>
         <view class="sel_upload_wrap">
            <view class="btn" @click="uploadImage">选择图片</view>
            <view class="btn" @click="uploadVideo">选择视频</view>
@@ -70,11 +74,12 @@
      </u-popup>
      <!--  -->
      <!-- 工单处理 -->
      <u-popup :show="isShowHandle" :round="10" :safeAreaInsetBottom="true" mode="bottom" closeable @close="isShowHandle = false">
      <u-popup :show="isShowHandle" :round="10" :safeAreaInsetBottom="true" mode="bottom" closeable
         @close="isShowHandle = false">
         <view class="appr_modal">
            <view class="title">工单处理</view>
            <view class="df_sb">
               <view>处理时间</view>
               <view><text class="red">*</text>处理时间</view>
               <view class="df_ac" @click="isShowHandleDate = true" v-if="handleParam.dealTime">
                  {{ handleParam.dealTime }}
                  <u-icon name="arrow-right"></u-icon>
@@ -86,7 +91,6 @@
            </view>
            <view class="label">
               <text>*</text>
               上传图片/视频
            </view>
            <view class="upload_wrap">
@@ -119,12 +123,16 @@
<script>
   import {
      uploadUrl
      uploadUrl,
      ywWorkorderD,
      ywWorkorderDeal
   } from '@/api'
   import dayjs from 'dayjs';
   export default {
      data() {
         return {
            id: '',
            info: {},
            showUpload: false,
            isShowHandle: false,
            isShowHandleDate: false,
@@ -132,9 +140,30 @@
            dealFileList: []
         };
      },
      onLoad(option) {
         console.log(option);
         this.id = option.id
         this.getDetail()
      },
      methods: {
         onSubmit() {
         onSubmit() {
            const { handleParam, dealFileList, id } = this
            if (!handleParam.dealTime) return this.showToast('处理时间不能为空')
            ywWorkorderDeal({
               ...handleParam,
               id,
               dealFileList
            }).then(res => {
               if(res.code == 200){
                  this.showToast('操作成功')
                  uni.navigateBack()
               }
            })
         },
         getDetail() {
            ywWorkorderD(this.id).then(res => {
               this.info = res.data
            })
         },
         callPhone() {
            uni.makePhoneCall({
@@ -152,7 +181,7 @@
            this.showUpload = false;
            let token = uni.getStorageSync('token') || '';
            uni.chooseImage({
               count: 4,
               count: 6,
               success: chooseImageRes => {
                  uni.showLoading({
                     title: '上传中',
@@ -170,7 +199,7 @@
                     files: imgs,
                     name: 'file',
                     formData: {
                        folder: 'HIDDEN_DANGER_FILE'
                        folder: 'YW_WORKORDER_FILE'
                     },
                     header: {
                        Dm_user_token: token
@@ -182,7 +211,7 @@
                              i.type = 0;
                              i.fileurl = i.imgaddr;
                              i.fileurlFull = i.url;
                              this.submitFileList.push(i);
                              this.dealFileList.push(i);
                           });
                        }
                     },
@@ -216,7 +245,7 @@
                     },
                     name: 'file',
                     formData: {
                        folder: 'HIDDEN_DANGER_FILE'
                        folder: 'YW_WORKORDER_FILE'
                     },
                     success: uploadFileRes => {
                        let res = JSON.parse(uploadFileRes.data);
@@ -225,7 +254,7 @@
                              i.type = 1;
                              i.fileurl = i.imgaddr;
                              i.fileurlFull = i.url;
                              this.submitFileList.push(i);
                              this.dealFileList.push(i);
                           });
                        }
                     },
@@ -264,6 +293,10 @@
            font-size: 28rpx;
            color: $primaryColor;
         }
         .gray {
            color: #999999;
         }
      }
      .file_list {
@@ -279,6 +312,11 @@
            &:nth-of-type(4n) {
               margin-right: 0;
            }
            image,
            video {
               width: 156rpx;
            }
         }
      }
@@ -368,7 +406,7 @@
   .sel_upload_wrap {
      width: 100%;
      border-top: 1px solid #333333;
      border-top: 1px solid #666666;
      box-shadow: 0 1 1 #333333;
      .btn {