k94314517
2025-05-19 16e8c7adbee6c9ee9bac09a80d44d3bfd3fe2f0c
wx/pages/report_details/report_details.vue
@@ -94,10 +94,16 @@
            <view class="info_list">
               <view class="info_list_item f">
                  <view class="info_list_item_label1">1、员工关系证明资料</view>
                  <view class="info_list_item_tu" v-if="info && info.relationFileList">
                  <view class="info_list_item_tu" v-if="info">
                     <view class="info_list_item_tu_img" v-for="(item,index) in info.relationFileList" :key="index">
                        <view class="info_list_item_tu_img_dele" @click.stop="deleFile(item.id, item.objId)">
                           <image src="@/static/icon/ic_delete@2x.png" mode="widthFix"></image>
                        </view>
                        <image :src="item.fileurlFull" mode="widthFix" v-if="item.type == 0"></image>
                        <video :src="item.fileurlFull" v-if="item.type == 1" />
                     </view>
                     <view class="info_list_item_tu_up" @click="upload(2)" v-if="info.status == 0 || info.status == 2 || info.status == 3">
                        <u-icon name="plus" color="#222222" size="20"></u-icon>
                     </view>
                     <view class="info_list_item_tu_zw"></view>
                     <view class="info_list_item_tu_zw"></view>
@@ -106,11 +112,17 @@
               </view>
               <view class="info_list_item f">
                  <view class="info_list_item_label1">2、医疗资料</view>
                  <view class="info_list_item_tu" v-if="info && [...info.outpatientFileList, ...info.hospitalFileList, ...info.disabilityFileList].length > 0">
                     <view class="info_list_item_tu_img" v-for="(item, index) in [].concat(info.outpatientFileList).concat(info.hospitalFileList).concat(info.disabilityFileList)" :key="index">
                  <view class="info_list_item_tu" v-if="info">
                     <view class="info_list_item_tu_img" v-for="(item, index) in info.outpatientFileList" :key="index">
                        <view class="info_list_item_tu_img_dele" @click.stop="deleFile(item.id, item.objId)">
                           <image src="@/static/icon/ic_delete@2x.png" mode="widthFix"></image>
                        </view>
                        <image :src="item.fileurlFull" mode="widthFix" v-if="item.type === 0"></image>
                        <video :src="item.fileurlFull" v-if="item.type === 1"></video>
                     </view> 
                     <view class="info_list_item_tu_up" @click="upload(3)" v-if="info.status == 0 || info.status == 2 || info.status == 3">
                        <u-icon name="plus" color="#222222" size="20"></u-icon>
                     </view>
                     <view class="info_list_item_tu_zw"></view>
                     <view class="info_list_item_tu_zw"></view>
                     <view class="info_list_item_tu_zw"></view>
@@ -118,10 +130,16 @@
               </view>
               <view class="info_list_item f">
                  <view class="info_list_item_label1">3、赔付结案资料</view>
                  <view class="info_list_item_tu" v-if="info && info.compensationFileList">
                  <view class="info_list_item_tu" v-if="info">
                     <view class="info_list_item_tu_img" v-for="(item, index) in info.compensationFileList" :key="index">
                        <view class="info_list_item_tu_img_dele" @click.stop="deleFile(item.id, item.objId)">
                           <image src="@/static/icon/ic_delete@2x.png" mode="widthFix"></image>
                        </view>
                        <image :src="item.fileurlFull" mode="widthFix" v-if="item.type === 0"></image>
                        <video :src="item.fileurlFull" v-if="item.type === 0"></video>
                        <video :src="item.fileurlFull" v-if="item.type === 1"></video>
                     </view>
                     <view class="info_list_item_tu_up" @click="upload(6)" v-if="info.status == 0 || info.status == 2 || info.status == 3">
                        <u-icon name="plus" color="#222222" size="20"></u-icon>
                     </view>
                     <view class="info_list_item_tu_zw"></view>
                     <view class="info_list_item_tu_zw"></view>
@@ -157,7 +175,8 @@
                     <view class="info_list_row_info_nr" v-if="item.content">
                        <view class="info_list_row_info_nr_title" :style="{ color: info.settleClaimsLogList.length - 1 === index ? '#437CB3' : '' }">处理进展:</view>
                        <view class="info_list_row_info_nr_val">
                           {{item.content}}
                           <text>{{item.content}}</text>
                           <text v-if="item.objType === 3">医疗理赔:{{JSON.parse(item.afterContent).ylClaimAccount}}元,误工理赔:{{JSON.parse(item.afterContent).wgClaimAccount}}元,伤残理赔:{{JSON.parse(item.afterContent).scClaimAccount}}元,死亡理赔:{{JSON.parse(item.afterContent).swClaimAccount}}元,理赔总额:{{JSON.parse(item.afterContent).claimAccount}}元。</text>
                        </view>
                     </view>
                  </view>
@@ -166,28 +185,112 @@
         </view>
         <view style="width: 100%; height: calc(env(safe-area-inset-bottom) + 100rpx);" v-if="info.status == 0 || info.status == 2 || info.status == 3"></view>
         <view class="details_footer" v-if="info.status == 0 || info.status == 2 || info.status == 3">
            <u-button type="primary" shape="circle" color="#437CB3" text="补充说明" @click="openBC"></u-button>
            <view style="width: 30rpx; height: 100%;"></view>
            <u-button type="primary" shape="circle" color="#437CB3" text="编辑" @click="edit"></u-button>
         </view>
      </view>
      <u-modal
         title="补充资料"
         :show="show"
         :showCancelButton="true"
         closeOnClickOverlay
         @cancel="show = false"
         @confirm="confirm"
      >
         <u--textarea v-model="value" placeholder="请输入"></u--textarea>
      </u-modal>
   </view>
</template>
<script>
   import { mapState } from 'vuex'
   export default {
      data() {
         return {
            id: null,
            info: null,
            show: false,
            height: 'auto',
            height1: 'auto',
            height2: 'auto'
            height2: 'auto',
            value: ''
         };
      },
      onLoad(option) {
         this.id = option.id
         this.getDetails()
         uni.$on('update', (data) => {
            this.getDetails()
         })
      },
      computed: {
         ...mapState(['cookies'])
      },
      methods: {
         // 删除附件
         deleFile(id, objId) {
            this.$u.api.delFile(objId, id)
               .then(res => {
                  if (res.code === 200) {
                     this.getDetails()
                  }
               })
         },
         // 上传材料
         upload(type) {
            var that = this
            uni.chooseMedia({
               count: 1,
               maxDuration: 60,
               success(res) {
                  uni.uploadFile({
                     url: that.$baseUrl + 'public/upload',
                     filePath: res.tempFiles[0].tempFilePath,
                     name: 'file',
                     header: {
                        'doumee-auth-token': that.cookies
                     },
                     formData: {
                        'folder': 'settle'
                     },
                     success: (uploadFileRes) => {
                        let data = JSON.parse(uploadFileRes.data).data
                        console.log(JSON.parse(uploadFileRes.data).data)
                        that.$u.api.claimsUploadFile({
                           fileName: '',
                           fileType: data.type,
                           fileUrl: data.imgaddr,
                           id: that.id,
                           objType: type
                        }).then(result => {
                           that.getDetails()
                        })
                     }
                  });
               }
            })
         },
         openBC() {
            this.value = ''
            this.show = true
         },
         confirm() {
            if (!this.value) return uni.showToast({
               title: '请输入内容',
               icon: 'none'
            })
            this.$u.api.supplement({
               id: this.id,
               objType: 0,
               supplement: this.value
            }).then(res => {
               if (res.code === 200) {
                  this.show = false
                  this.getDetails()
               }
            })
         },
         edit() {
            uni.navigateTo({
               url: `/pages/new_report/new_report?id=${this.info.id}`
@@ -197,7 +300,6 @@
            this.$u.api.settleClaimsById(this.id)
               .then(res => {
                  if (res.code === 200) {
                     console.log(res)
                     this.info = res.data
                  }
               })
@@ -314,12 +416,11 @@
            bottom: 0;
            left: 0;
            z-index: 99;
            padding: 10rpx 30rpx;
            padding: 10rpx 30rpx calc(env(safe-area-inset-bottom) + 10rpx) 30rpx;
            box-sizing: border-box;
            background-color: #ffffff;
            display: flex;
            align-items: center;
            padding-bottom: env(safe-area-inset-bottom);
         }
         .box_head_infoA {
            width: 100%;
@@ -422,11 +523,19 @@
                           font-style: normal;
                        }
                        .info_list_row_info_nr_val {
                           font-weight: 400;
                           font-size: 26rpx;
                           color: #666666;
                           font-style: normal;
                           display: flex;
                           flex-direction: column;
                           margin-top: 12rpx;
                           text {
                              font-weight: 400;
                              font-size: 26rpx;
                              color: #666666;
                              font-style: normal;
                              margin-bottom: 20rpx;
                              &:last-child {
                                 margin: 0 !important;
                              }
                           }
                        }
                     }
                  }
@@ -455,14 +564,34 @@
                        width: 140rpx;
                        height: 0;
                     }
                     .info_list_item_tu_up {
                        width: 140rpx;
                        height: 140rpx;
                        border-radius: 15rpx;
                        margin-bottom: 20rpx;
                        display: flex;
                        align-items: center;
                        justify-content: center;
                        border: 1rpx solid #999999;
                     }
                     .info_list_item_tu_img {
                        width: 140rpx;
                        height: 140rpx;
                        border-radius: 15rpx;
                        margin-bottom: 20rpx;
                        display: flex;
                        align-items: center;
                        justify-content: center;
                        overflow: hidden;
                        position: relative;
                        .info_list_item_tu_img_dele {
                           width: 50rpx;
                           height: 50rpx;
                           position: absolute;
                           right: 0;
                           top: 0;
                           z-index: 9;
                        }
                        image {
                           width: 100%;
                           height: 100%;