MrShi
2025-05-28 bc721423d62b0b8e8deedff6b97b5dbc8ca54a97
wx/pages/new_report/new_report.vue
@@ -1,6 +1,20 @@
<template>
   <view class="box">
      <u-modal :show="show" title="特别提醒" @confirm="show = false" confirmColor="#437CB3" confirmText="知道了" content='根据《工伤保险条例》第三章第六条规定:员工上下班路上交通事故,非本人主要责任才算工伤。如果是员工自己的主要责任,只能算意外事故,不能算作工伤。如果不是工伤,雇主则无需承担赔偿责任。比如:小明上班路上骑电瓶车摔倒了导致擦伤,没有第三责任方,所以此案算意外,不能算工伤。'></u-modal>
      <view class="box_status">
         <view class="box_status_row" v-for="(item, index) in list" :key="index">
            <view :class="i > index ? 'box_status_row_x bgColor' : 'box_status_row_x'" v-if="index !== list.length - 1"></view>
            <view class="box_status_row_num active" v-if="i === index">
               <text>{{ index + 1 }}</text>
            </view>
            <view class="box_status_row_num guo" v-else-if="i > index">
               <u-icon name="checkbox-mark" color="#437CB3" size="28"></u-icon>
            </view>
            <view class="box_status_row_num" v-else>
               <text>{{ index + 1 }}</text>
            </view>
            <view :class="i === index || i > index ? 'box_status_row_text activeFont' : 'box_status_row_text'">{{item.name}}</view>
         </view>
      </view>
      <u--form
         labelPosition="top"
         :model="model"
@@ -8,79 +22,145 @@
         labelWidth="150"
         ref="uForm"
      >
      <view class="box_hz" v-if="i === 0">
         <view class="box_list">
            <view class="box_list_Label">基本信息</view>
            <view class="box_list_from">
               <u-form-item label="出险人:" prop="memberName" borderBottom required v-if="!id">
                  <u--input v-model="model.memberName" placeholder="请选择出险人" @input="changeSearch" border="none"></u--input>
                  <scroll-view scroll-y class="box_list_data" v-if="model.memberName && columns2.length > 0">
                     <view class="box_list_data_item" v-for="(item, index) in columns2" :key="index" @click="clickItem(item)">
                        {{item.name}} - {{item.idcardNo}}
               <view class="box_list_from">
                  <u-form-item label="出险人:" prop="memberName" borderBottom required v-if="!id">
                     <u--input v-model="model.memberName" placeholder="请选择出险人" @input="changeSearch" border="none"></u--input>
                     <scroll-view scroll-y class="box_list_data" v-if="model.memberName && columns2.length > 0">
                        <view class="box_list_data_item" v-for="(item, index) in columns2" :key="index" @click="clickItem(item)">
                           {{item.name}} - {{item.idcardNo}}
                        </view>
                     </scroll-view>
                  </u-form-item>
                  <u-form-item label="证件号码:" prop="idcardNo" required>
                     <u--input v-model="model.idcardNo" maxlength="18" placeholder="请输入证件号码" border="none"></u--input>
                  </u-form-item>
                  <u-form-item label="报案人:" prop="informantName" borderBottom required>
                     <u--input v-model="model.informantName" placeholder="请输入报案人姓名" border="none"></u--input>
                  </u-form-item>
                  <u-form-item label="报案人联系方式:" prop="informantPhone" required>
                     <u--input v-model="model.informantPhone" maxlength="11" placeholder="请输入报案人联系方式" border="none"></u--input>
                  </u-form-item>
               </view>
            </view>
            <view class="box_list">
               <view class="box_list_Label">保险方案</view>
               <view class="box_list_from">
                  <u-form-item label="保险方案:" prop="solutionName" borderBottom required @click="openFA" v-if="!id">
                     <view style="width: 100%; display: flex; align-items: center; justify-content: space-between;">
                        <u--input v-model="model.solutionName" disabled disabledColor="#ffffff" placeholder="请选择保险方案" border="none"></u--input>
                        <u-icon slot="right" name="arrow-right"></u-icon>
                     </view>
                  </scroll-view>
               </u-form-item>
               <u-form-item label="保险方案:" prop="solutionName" borderBottom required @click="openFA" v-if="!id">
                  <u--input v-model="model.solutionName" disabled disabledColor="#ffffff" placeholder="请选择保险方案" border="none"></u--input>
                  <u-icon slot="right" name="arrow-right"></u-icon>
               </u-form-item>
               <u-form-item label="报案人:" prop="informantName" borderBottom required>
                  <u--input v-model="model.informantName" placeholder="请输入报案人姓名" border="none"></u--input>
               </u-form-item>
               <u-form-item label="报案人联系方式:" prop="informantPhone" required>
                  <u--input v-model="model.informantPhone" maxlength="11" placeholder="请输入报案人联系方式" border="none"></u--input>
               </u-form-item>
                     <view class="faList" v-if="scheme">
                        <text>保单号:{{scheme.applyCode || ''}}</text>
                        <text>保障期限:<template v-if="scheme.parentStartTime">{{scheme.parentStartTime}}~{{scheme.parentEndTime}}</template></text>
                        <text>投保单位:{{scheme.companyName || ''}}</text>
                        <text>派遣单位:{{scheme.duName}}</text>
                        <text>所属工种:{{scheme.workTypeName}}</text>
                     </view>
                  </u-form-item>
               </view>
            </view>
            <view class="box_list">
               <view class="box_list_Label">出险信息</view>
               <view class="box_list_from">
                  <u-form-item label="事故类型:" prop="typeName" borderBottom required @click="show2 = true">
                     <u--input v-model="model.typeName" disabled disabledColor="#ffffff" placeholder="请选择事故类型" border="none"></u--input>
                     <u-icon slot="right" name="arrow-right"></u-icon>
                  </u-form-item>
                  <u-form-item label="出险时间:" prop="happenTime" borderBottom required @click="openChuxian">
                     <u--input v-model="model.happenTime" disabled disabledColor="#ffffff" placeholder="请选择事故发生时间" border="none"></u--input>
                     <u-icon slot="right" name="arrow-right"></u-icon>
                  </u-form-item>
                  <u-form-item label="出险地区:" prop="areaInfo" borderBottom @click="show3 = true">
                     <u--input v-model="model.areaInfo" disabled disabledColor="#ffffff" placeholder="请选择事故发生地" border="none"></u--input>
                     <u-icon slot="right" name="arrow-right"></u-icon>
                  </u-form-item>
                  <u-form-item label="详细地址:" prop="address" borderBottom>
                     <u--textarea placeholder="请描述详细地址" border="none" v-model="model.address"></u--textarea>
                  </u-form-item>
                  <u-form-item label="出险经过:" prop="content" borderBottom required>
                     <u--textarea placeholder="请描述出险经过" border="none" v-model="model.content"></u--textarea>
                  </u-form-item>
                  <u-form-item label="就诊医疗机构:" prop="hospital" borderBottom>
                     <u--input v-model="model.hospital" placeholder="请输入就诊医疗机构名称" border="none"></u--input>
                  </u-form-item>
                  <u-form-item label="就诊类型:" prop="inHospital" borderBottom required>
                     <view class="list">
                        <view :class="model.inHospital === 0 ? 'list_item active' : 'list_item'" @click="model.inHospital = 0">住院</view>
                        <view :class="model.inHospital === 1 ? 'list_item active' : 'list_item'" @click="model.inHospital = 1">门诊</view>
                     </view>
                  </u-form-item>
                  <u-form-item label="是否伤残:" prop="hurtType" borderBottom required>
                     <view class="list">
                        <view :class="model.hurtType === 0 ? 'list_item active' : 'list_item'" @click="model.hurtType = 0">是</view>
                        <view :class="model.hurtType === 1 ? 'list_item active' : 'list_item'" @click="model.hurtType = 1">否</view>
                        <view :class="model.hurtType === 1 ? 'list_item active' : 'list_item'" @click="model.hurtType = 1">待确定</view>
                     </view>
                  </u-form-item>
                  <u-form-item label="是否有医保:" prop="medicalInsurance" borderBottom required>
                     <view class="list">
                        <view :class="model.medicalInsurance === 0 ? 'list_item active' : 'list_item'" @click="model.medicalInsurance = 0">是</view>
                        <view :class="model.medicalInsurance === 1 ? 'list_item active' : 'list_item'" @click="model.medicalInsurance = 1">否</view>
                     </view>
                  </u-form-item>
                  <u-form-item label="事故视频/图片:" prop="reportFileList" v-if="!id">
                     <view style="width: 100%; height: 15rpx;"></view>
                     <view class="meade">
                        <view class="meade_content" v-for="(item,index) in model.reportFileList" :key="index">
                           <image class="dele" src="@/static/icon/ic_delete@2x.png" mode="widthFix" @click="deletePic(index, 6)"></image>
                           <image class="image" :src="item.url" mode="widthFix" v-if="item.type === 0"></image>
                           <video class="video" :src="item.url" controls v-if="item.type === 1"></video>
                        </view>
                        <view class="meade_upload" @click="upload(6)">
                           <u-icon name="plus" color="#999999" size="20"></u-icon>
                           <text>点击上传</text>
                        </view>
                        <view class="meade_zw"></view>
                        <view class="meade_zw"></view>
                        <view class="meade_zw"></view>
                     </view>
                  </u-form-item>
               </view>
            </view>
         </view>
         <view class="box_list">
            <view class="box_list_Label">事故信息</view>
            <view class="box_list_from">
               <u-form-item label="就诊医疗机构:" prop="hospital" borderBottom v-if="!id">
                  <u--input v-model="model.hospital" placeholder="请输入就诊医疗机构名称" border="none"></u--input>
               </u-form-item>
               <u-form-item label="事故时间:" prop="happenTime" borderBottom required v-if="!id" @click="show1 = true">
                  <u--input v-model="model.happenTime" disabled disabledColor="#ffffff" placeholder="请选择事故发生时间" border="none"></u--input>
                  <u-icon slot="right" name="arrow-right"></u-icon>
               </u-form-item>
               <u-form-item label="事故类型:" prop="typeName" borderBottom required @click="show2 = true">
                  <u--input v-model="model.typeName" disabled disabledColor="#ffffff" placeholder="请选择事故类型" border="none"></u--input>
                  <u-icon slot="right" name="arrow-right"></u-icon>
               </u-form-item>
               <u-form-item label="是否住院:" prop="name" borderBottom required>
                  <view class="list">
                     <view :class="model.inHospital === 0 ? 'list_item active' : 'list_item'" @click="model.inHospital = 0">是</view>
                     <view :class="model.inHospital === 1 ? 'list_item active' : 'list_item'" @click="model.inHospital = 1">否</view>
         <!-- 上传文件 -->
         <view class="box_up" v-if="i === 1">
            <view class="box_up_head">
               <view class="box_up_head_title">
                  <u-icon name="error-circle-fill" color="#2979ff" size="22"></u-icon>
                  <text>重要提示</text>
               </view>
               <view class="box_up_head_info">
                  <text>· 不同保险产品理赔材料有所不同</text>
                  <text>· 上传材料前注意使用盖章文件模版和查看理赔材料一览表</text>
               </view>
            </view>
            <view class="box_up_title">
               <text>上传理赔材料</text>
               <view class="box_up_title_downlod">
                  <text>下载示例</text>
                  <image src="/static/icon/ic_download@2x.png" mode="widthFix"></image>
               </view>
            </view>
            <view class="box_up_list">
               <view class="box_up_list_row">
                  <view class="box_up_list_row_title">
                     <text>员工关系证明材料</text>
                     <view class="box_up_list_row_title_icon" @click="openInfo(1)">
                        <image src="/static/icon/ic_shuoming@2x.png" mode="widthFix"></image>
                        <text>上传说明</text>
                     </view>
                  </view>
               </u-form-item>
               <u-form-item label="是否有医疗保险:" prop="name" borderBottom required>
                  <view class="list">
                     <view :class="model.medicalInsurance === 0 ? 'list_item active' : 'list_item'" @click="model.medicalInsurance = 0">是</view>
                     <view :class="model.medicalInsurance === 1 ? 'list_item active' : 'list_item'" @click="model.medicalInsurance = 1">否</view>
                  </view>
               </u-form-item>
               <u-form-item label="出险地区:" prop="areaInfo" borderBottom @click="show3 = true">
                  <u--input v-model="model.areaInfo" disabled disabledColor="#ffffff" placeholder="请选择事故发生地" border="none"></u--input>
                  <u-icon slot="right" name="arrow-right"></u-icon>
               </u-form-item>
               <u-form-item label="事故描述:" prop="content" borderBottom required v-if="!id">
                  <u--textarea placeholder="请描述事故经过" border="none" v-model="model.content"></u--textarea>
               </u-form-item>
               <u-form-item label="事故视频/图片:" prop="name" v-if="!id">
                  <view style="width: 100%; height: 15rpx;"></view>
                  <!-- <u-upload
                     :fileList="fileList"
                     @afterRead="afterRead"
                     @delete="deletePic"
                     multiple
                     :maxCount="10"
                     accept="media"
                  ></u-upload> -->
                  <view class="meade">
                     <view class="meade_content" v-for="(item,index) in model.reportFileList" :key="index">
                        <image class="dele" src="@/static/icon/ic_delete@2x.png" mode="widthFix" @click="deletePic(index)"></image>
                     <view class="meade_content" v-for="(item,index) in model.relationFileList" :key="index">
                        <image class="dele" src="@/static/icon/ic_delete@2x.png" mode="widthFix" @click="deletePic(index, 1)"></image>
                        <image class="image" :src="item.url" mode="widthFix" v-if="item.type === 0"></image>
                        <video class="video" :src="item.url" controls v-if="item.type === 1"></video>
                     </view>
                     <view class="meade_upload" @click="upload">
                     <view class="meade_upload" @click="upload(1)">
                        <u-icon name="plus" color="#999999" size="20"></u-icon>
                        <text>点击上传</text>
                     </view>
@@ -88,16 +168,164 @@
                     <view class="meade_zw"></view>
                     <view class="meade_zw"></view>
                  </view>
               </u-form-item>
               </view>
               <view class="box_up_list_row">
                  <view class="box_up_list_row_title">
                     <text>门诊</text>
                     <view class="box_up_list_row_title_icon">
                        <image src="/static/icon/ic_shuoming@2x.png" mode="widthFix"></image>
                        <text>上传说明</text>
                     </view>
                  </view>
                  <view class="meade">
                     <view class="meade_content" v-for="(item,index) in model.outpatientFileList" :key="index">
                        <image class="dele" src="@/static/icon/ic_delete@2x.png" mode="widthFix" @click="deletePic(index, 2)"></image>
                        <image class="image" :src="item.url" mode="widthFix" v-if="item.type === 0"></image>
                        <video class="video" :src="item.url" controls v-if="item.type === 1"></video>
                     </view>
                     <view class="meade_upload" @click="upload(2)">
                        <u-icon name="plus" color="#999999" size="20"></u-icon>
                        <text>点击上传</text>
                     </view>
                     <view class="meade_zw"></view>
                     <view class="meade_zw"></view>
                     <view class="meade_zw"></view>
                  </view>
               </view>
               <view class="box_up_list_row">
                  <view class="box_up_list_row_title">
                     <text>住院</text>
                     <view class="box_up_list_row_title_icon">
                        <image src="/static/icon/ic_shuoming@2x.png" mode="widthFix"></image>
                        <text>上传说明</text>
                     </view>
                  </view>
                  <view class="meade">
                     <view class="meade_content" v-for="(item,index) in model.hospitalFileList" :key="index">
                        <image class="dele" src="@/static/icon/ic_delete@2x.png" mode="widthFix" @click="deletePic(index, 3)"></image>
                        <image class="image" :src="item.url" mode="widthFix" v-if="item.type === 0"></image>
                        <video class="video" :src="item.url" controls v-if="item.type === 1"></video>
                     </view>
                     <view class="meade_upload" @click="upload(3)">
                        <u-icon name="plus" color="#999999" size="20"></u-icon>
                        <text>点击上传</text>
                     </view>
                     <view class="meade_zw"></view>
                     <view class="meade_zw"></view>
                     <view class="meade_zw"></view>
                  </view>
               </view>
               <view class="box_up_list_row">
                  <view class="box_up_list_row_title">
                     <text>伤残</text>
                     <view class="box_up_list_row_title_icon">
                        <image src="/static/icon/ic_shuoming@2x.png" mode="widthFix"></image>
                        <text>上传说明</text>
                     </view>
                  </view>
                  <view class="meade">
                     <view class="meade_content" v-for="(item,index) in model.disabilityFileList" :key="index">
                        <image class="dele" src="@/static/icon/ic_delete@2x.png" mode="widthFix" @click="deletePic(index, 4)"></image>
                        <image class="image" :src="item.url" mode="widthFix" v-if="item.type === 0"></image>
                        <video class="video" :src="item.url" controls v-if="item.type === 1"></video>
                     </view>
                     <view class="meade_upload" @click="upload(4)">
                        <u-icon name="plus" color="#999999" size="20"></u-icon>
                        <text>点击上传</text>
                     </view>
                     <view class="meade_zw"></view>
                     <view class="meade_zw"></view>
                     <view class="meade_zw"></view>
                  </view>
               </view>
               <view class="box_up_list_row">
                  <view class="box_up_list_row_title">
                     <text>其他</text>
                     <view class="box_up_list_row_title_icon">
                        <image src="/static/icon/ic_shuoming@2x.png" mode="widthFix"></image>
                        <text>上传说明</text>
                     </view>
                  </view>
                  <view class="meade">
                     <view class="meade_content" v-for="(item,index) in model.otherFileList" :key="index">
                        <image class="dele" src="@/static/icon/ic_delete@2x.png" mode="widthFix" @click="deletePic(index, 5)"></image>
                        <image class="image" :src="item.url" mode="widthFix" v-if="item.type === 0"></image>
                        <video class="video" :src="item.url" controls v-if="item.type === 1"></video>
                     </view>
                     <view class="meade_upload" @click="upload(5)">
                        <u-icon name="plus" color="#999999" size="20"></u-icon>
                        <text>点击上传</text>
                     </view>
                     <view class="meade_zw"></view>
                     <view class="meade_zw"></view>
                     <view class="meade_zw"></view>
                  </view>
               </view>
            </view>
            <view class="box_up_hz">
               <view class="box_list">
                  <view class="box_list_Label">收款信息</view>
                  <view class="box_list_from">
                     <u-form-item label="收款银行:" prop="receiveBank" borderBottom required>
                        <u--input v-model="model.receiveBank" placeholder="请输入" border="none"></u--input>
                     </u-form-item>
                     <u-form-item label="收款人:" prop="receiveUserName" borderBottom required>
                        <u--input v-model="model.receiveUserName" placeholder="请输入" border="none"></u--input>
                     </u-form-item>
                     <u-form-item label="收款账号:" prop="receiveAccount" borderBottom required>
                        <u--input v-model="model.receiveAccount" placeholder="请输入" border="none"></u--input>
                     </u-form-item>
                  </view>
               </view>
            </view>
         </view>
         <!-- 完成 -->
         <view class="box_success" v-if="i === 2">
            <view class="box_success_icon">
               <image src="/static/icon/ic_success@2x.png" mode="widthFix"></image>
            </view>
            <view class="box_success_title">提交成功</view>
            <view class="box_success_info">等待立案</view>
            <view class="box_success_btns">
               <u-button type="primary" shape="circle" plain color="#999999" text="继续报案" @click="jixu"></u-button>
               <view style="width: 30rpx; height: 100%;"></view>
               <u-button type="primary" shape="circle" plain color="#437CB3" text="查看详情" @click="jump"></u-button>
            </view>
         </view>
      </u--form>
      <view style="width: 100%; height: calc(88rpx + env(safe-area-inset-bottom));"></view>
      <!-- 提交按钮 -->
      <view class="box_footer">
         <u-button type="primary" shape="circle" color="#437CB3" text="提交报案" @click="submit"></u-button>
         <view class="box_footer_btns" v-if="i === 0">
            <view class="box_footer_btns_1">
               <u-button type="primary" shape="circle" plain color="#437CB3" text="暂存" @click="submit(0)"></u-button>
            </view>
            <view style="width: 20rpx; height: 100%;"></view>
            <u-button type="primary" shape="circle" color="#437CB3" text="下一步" @click="next"></u-button>
         </view>
         <view class="box_footer_btns" v-if="i === 1">
            <view class="box_footer_btns_1">
               <u-button type="primary" shape="circle" plain color="#437CB3" text="暂存" @click="submit(0)"></u-button>
            </view>
            <view style="width: 30rpx; height: 100%;"></view>
            <view class="box_footer_btns_1">
               <u-button type="primary" shape="circle" plain color="#437CB3" text="上一步" @click="i--"></u-button>
            </view>
            <view style="width: 30rpx; height: 100%;"></view>
            <u-button type="primary" shape="circle" color="#437CB3" text="提交报案" @click="submit(1)"></u-button>
         </view>
         <view style="width: 100%; height: env(safe-area-inset-bottom);"></view>
      </view>
      <!-- 事故时间 -->
      <u-datetime-picker :show="show1" v-model="date" mode="datetime" :defaultIndex="[11]" @confirm="confirm" @cancel="show1 = false"></u-datetime-picker>
      <u-datetime-picker
         :show="show1"
         v-model="date"
         mode="datetime"
         :minDate="minDate"
         :maxDate="maxDate"
         :defaultIndex="[11]"
         @confirm="confirm"
         @cancel="show1 = false" />
      <!-- 事故类型 -->
      <u-picker :show="show2" keyName="name" :columns="columns" @confirm="confirm1" @cancel="show2 = false"></u-picker>
      <!-- 省市区 -->
@@ -106,6 +334,18 @@
      <u-picker :show="show4" keyName="label" :columns="columns2" @confirm="confirm3" @cancel="show4 = false"></u-picker>
      <!-- 保险方案 -->
      <u-picker :show="show5" keyName="solutionName" :columns="columns3" @confirm="confirm4" @cancel="show5 = false"></u-picker>
      <!-- 弹窗提醒 -->
      <u-modal :show="show" title="无法完成报案" content='该出险人无有效保单 请重新选择'></u-modal>
      <!-- 上传说明 -->
      <u-popup :show="show6" closeable mode="bottom">
         <view class="info">
            <view class="info_title">上传说明</view>
            <view class="info_content">需上传的文件:劳动合同复印件、工资流水、</view>
            <view class="info_btn">
               <u-button shape="circle" style="height: 100%;" text="我知道了" color="#437CB3" @click="show6 = false"></u-button>
            </view>
         </view>
      </u-popup>
   </view>
</template>
@@ -114,13 +354,17 @@
      data() {
         return {
            id: null,
            i: 1,
            show: false,
            show1: false,
            show2: false,
            show3: false,
            show4: false,
            show5: false,
            show6: false,
            date: Number(new Date()),
            minDate: '',
            maxDate: '',
            columns: [
               [
                  { name: '工作期间受伤', id: 0 },
@@ -129,6 +373,12 @@
                  { name: '意外受伤', id: 3 }
               ]
            ],
            list: [
               { name: '填写出险信息' },
               { name: '上传理赔材料' },
               { name: '完成报案' },
            ],
            scheme: null,
            columns1: [],
            columns2: [],
            columns3: [],
@@ -153,9 +403,41 @@
               content: '',
               areaId: '',
               areaInfo: '',
               reportFileList: []
               reportFileList: [],
               idcardNo: '',
               hurtType: 0,
               address: '',
               receiveBank: '',
               receiveUserName: '',
               receiveAccount: '',
               applyDetailId: '',
               insuranceApplyId: '',
               relationFileList: [],
               outpatientFileList: [],
               hospitalFileList: [],
               disabilityFileList: [],
               otherFileList: [],
            },
            rules: {
               'receiveAccount': {
                  type: 'string',
                  required: true,
                  message: '请填写收款账号',
                  trigger: ['blur']
               },
               'receiveUserName': {
                  type: 'string',
                  required: true,
                  message: '请填写收款人',
                  trigger: ['blur']
               },
               'receiveBank': {
                  type: 'string',
                  required: true,
                  message: '请填写收款银行',
                  trigger: ['blur']
               },
               'memberName': {
                  type: 'string',
                  required: true,
@@ -197,6 +479,18 @@
                  required: true,
                  message: '请输入事故描述',
                  trigger: ['blur']
               },
               'idcardNo': {
                  type: 'string',
                  required: true,
                  message: '请输入证件号码',
                  trigger: ['blur']
               },
               'typeName': {
                  type: 'string',
                  required: true,
                  message: '请输入事故类型',
                  trigger: ['blur']
               }
            },
            fileList: []
@@ -213,11 +507,55 @@
            this.getUser()
            return
         }
         this.show = true
         this.getArea()
         this.getUser()
         this.model.informantName = this.$store.state.userInfo.realname
      },
      methods: {
         jixu() {
            uni.navigateTo({
               url: `/pages/report_details/report_details?id=${this.id}`
            })
         },
         jixu() {
            this.model = {
               memberId: '',
               memberName: '',
               solutionId: '',
               solutionName: '',
               informantName: '',
               informantPhone: '',
               hospital: '',
               happenTime: '',
               type: '',
               duId: '',
               duName: '',
               worktypeId: '',
               worktypeName: '',
               typeName: '',
               inHospital: 0,
               medicalInsurance: 0,
               content: '',
               areaId: '',
               areaInfo: '',
               reportFileList: [],
               idcardNo: '',
               hurtType: 0,
               address: '',
               receiveBank: '',
               receiveUserName: '',
               receiveAccount: '',
               applyDetailId: '',
               insuranceApplyId: '',
               relationFileList: [],
               outpatientFileList: [],
               hospitalFileList: [],
               disabilityFileList: [],
               otherFileList: []
            }
            this.i = 0
         },
         clickItem(item) {
            this.model.memberName = item.name
            this.model.memberId = item.id
@@ -226,6 +564,16 @@
         // 搜索
         changeSearch(name) {
            this.columns2 = []
            this.scheme = null
            this.columns3 = []
            this.model.solutionId = ''
            this.model.solutionName = ''
            this.model.duId = ''
            this.model.duName = ''
            this.model.worktypeId = ''
            this.model.worktypeName = ''
            this.model.applyDetailId = ''
            this.model.insuranceApplyId = ''
            this.$u.api.memberFindListByDTO({
               name
            }).then(res => {
@@ -270,31 +618,27 @@
                  }
               })
         },
         // 提交报案
         submit() {
         next() {
            this.$refs.uForm.validate().then(res => {
               if (this.id) {
                  this.$u.api.settleClaimsUpdateById({ id: this.id, ...this.model })
                     .then(res => {
                        if (res.code === 200) {
                           uni.showToast({ title: '提交成功', icon: 'success' })
                           uni.$emit('update')
                           setTimeout(() => {
                              uni.navigateBack({ delta: 1 });
                           }, 1500)
               this.i++
            }).catch(errors => {
            })
         },
         // 提交报案
         submit(saveType) {
            this.$refs.uForm.validate().then(res => {
               this.$u.api.saveSettleClaims({ ...this.model, saveType })
                  .then(res => {
                     if (res.code === 200) {
                        this.id = res.data
                        if (saveType === 0) {
                           uni.navigateBack({ delta: 1 });
                        } else {
                           this.i++
                        }
                     })
               } else {
                  this.$u.api.settleClaimsCreate(this.model)
                     .then(res => {
                        if (res.code === 200) {
                           uni.showToast({ title: '提交成功', icon: 'success' })
                           setTimeout(() => {
                              uni.navigateBack({ delta: 1 });
                           }, 1500)
                        }
                     })
               }
                     }
                  })
            }).catch(errors => {
               
            })
@@ -304,8 +648,7 @@
               title: '请先选择出险人',
               icon: 'none'
            })
            this.$u.api.memberInsuranceFindList({
               status: 1,
            this.$u.api.findList({
               memberId: this.model.memberId
            }).then(res => {
               if (res.code === 200) {
@@ -353,7 +696,18 @@
                  }
               })
         },
         upload() {
         openChuxian() {
            if (!this.model.solutionId) return uni.showToast({
               title: '请先选择方案',
               icon: 'none'
            })
            this.show1 = true
         },
         dateToTimestamp(dateStr) {
             const date = new Date(dateStr);
             return date.getTime();
         },
         upload(type) {
            var that = this
            uni.chooseMedia({
               count: 9,
@@ -361,10 +715,7 @@
               sourceType: ['album', 'camera'],
               camera: 'back',
               success(res) {
                  uni.showLoading({
                     title: '上传中',
                     mask: true
                  });
                  uni.showLoading({ title: '上传中', mask: true });
                  for (let i = 0; i < res.tempFiles.length; i++) {
                     uni.uploadFile({
                        url: `${that.$baseUrl}public/upload`,
@@ -378,14 +729,50 @@
                        },
                        success: (uploadFileRes) => {
                           let res = JSON.parse(uploadFileRes.data)
                           console.log(res)
                           that.fileList.push({ ...res.data })
                           that.model.reportFileList.push({
                              fileurl: res.data.imgaddr,
                              name: res.data.originname,
                              type: res.data.type,
                              url: res.data.url
                           })
                           if (type === 6) {
                              that.model.reportFileList.push({
                                 fileurl: res.data.imgaddr,
                                 name: res.data.originname,
                                 type: res.data.type,
                                 url: res.data.url
                              })
                           } else if (type === 1) {
                              that.model.relationFileList.push({
                                 fileurl: res.data.imgaddr,
                                 name: res.data.originname,
                                 type: res.data.type,
                                 url: res.data.url
                              })
                           } else if (type === 2) {
                              that.model.outpatientFileList.push({
                                 fileurl: res.data.imgaddr,
                                 name: res.data.originname,
                                 type: res.data.type,
                                 url: res.data.url
                              })
                           } else if (type === 3) {
                              that.model.hospitalFileList.push({
                                 fileurl: res.data.imgaddr,
                                 name: res.data.originname,
                                 type: res.data.type,
                                 url: res.data.url
                              })
                           } else if (type === 4) {
                              that.model.disabilityFileList.push({
                                 fileurl: res.data.imgaddr,
                                 name: res.data.originname,
                                 type: res.data.type,
                                 url: res.data.url
                              })
                           } else if (type === 5) {
                              that.model.otherFileList.push({
                                 fileurl: res.data.imgaddr,
                                 name: res.data.originname,
                                 type: res.data.type,
                                 url: res.data.url
                              })
                           }
                        },
                        complete() {
                           if (i === res.tempFiles.length - 1) {
@@ -429,8 +816,20 @@
               });
            }
         },
         deletePic(index) {
            this.model.reportFileList.splice(index, 1)
         deletePic(index, type) {
            if (type === 6) {
               this.model.reportFileList.splice(index, 1)
            } else if (type === 1) {
               this.model.relationFileList.splice(index, 1)
            } else if (type === 2) {
               this.model.outpatientFileList.splice(index, 1)
            } else if (type === 3) {
               this.model.hospitalFileList.splice(index, 1)
            } else if (type === 4) {
               this.model.disabilityFileList.splice(index, 1)
            } else if (type === 5) {
               this.model.otherFileList.splice(index, 1)
            }
         },
         getTreeName(list, id){
            let _this = this
@@ -448,13 +847,24 @@
               }
            }
         },
         openInfo(type) {
            if (type === 1) {
               this.show6 = true
            }
         },
         confirm4(e) {
            this.minDate = this.dateToTimestamp(e.value[0].parentStartTime)
            this.maxDate = this.dateToTimestamp(e.value[0].parentEndTime)
            this.date = this.dateToTimestamp(e.value[0].parentStartTime)
            this.model.solutionId = e.value[0].solutionId
            this.model.solutionName = e.value[0].solutionName
            this.model.duId = e.value[0].duId
            this.model.duName = e.value[0].duName
            this.model.worktypeId = e.value[0].worktypeId
            this.model.worktypeName = e.value[0].worktypeName
            this.model.applyDetailId = e.value[0].id
            this.model.insuranceApplyId = e.value[0].applyId
            this.scheme = e.value[0]
            this.show5 = false
         },
         confirm3(e) {
@@ -466,6 +876,8 @@
            this.model.duName = ''
            this.model.worktypeId = ''
            this.model.worktypeName = ''
            this.model.applyDetailId = ''
            this.model.insuranceApplyId = ''
            this.show4 = false
         },
         confirm2(e) {
@@ -497,124 +909,465 @@
<style lang="scss" scoped>
   .box {
      width: 100%;
      padding: 20rpx 30rpx;
      box-sizing: border-box;
      .box_footer {
         width: 100%;
         height: 88rpx;
         margin-top: 40rpx;
      }
      .box_list {
      .info {
         width: 100%;
         padding: 30rpx;
         border-radius: 16rpx;
         box-sizing: border-box;
         background-color: #ffffff;
         margin-bottom: 20rpx;
         &:last-child {
            margin: 0 !important;
         }
         .box_list_Label {
            font-weight: 500;
            font-size: 32rpx;
            color: #222222;
            font-style: normal;
         }
         .box_list_from /deep/ {
         .info_title {
            width: 100%;
            margin-top: 30rpx;
            .u-textarea {
               padding: 9px 0 !important;
            }
            .box_list_data {
            text-align: center;
            font-weight: 500;
            font-size: 30rpx;
            color: #222222;
         }
         .info_content {
            width: 100%;
            font-weight: 400;
            font-size: 26rpx;
            color: #333333;
            margin-top: 40rpx;
         }
         .info_btn {
            width: 100%;
            height: 88rpx;
            margin-top: 80rpx;
         }
      }
      .box_success {
         width: 100%;
         margin-top: 80rpx;
         display: flex;
         flex-direction: column;
         align-items: center;
         justify-content: center;
         .box_success_icon {
            width: 180rpx;
            height: 180rpx;
            image {
               width: 100%;
               max-height: 400rpx;
               margin-top: 10rpx;
               .box_list_data_item {
                  width: 100%;
                  height: 80rpx;
                  padding: 0 20rpx;
                  box-sizing: border-box;
                  line-height: 80rpx;
                  border-bottom: 1px solid #dfdfdf;
                  &:last-child {
                     border: none;
                  }
               }
               height: 100%;
            }
            .meade {
         }
         .box_success_title {
            font-weight: 500;
            font-size: 36rpx;
            color: #220000;
            margin-top: 32rpx;
         }
         .box_success_info {
            font-weight: 400;
            font-size: 26rpx;
            color: #999999;
            margin-top: 20rpx;
         }
         .box_success_btns {
            display: flex;
            align-items: center;
            margin-top: 76rpx;
         }
      }
      .box_up {
         width: 100%;
         .box_up_head {
            width: 100%;
            padding: 36rpx 30rpx;
            box-sizing: border-box;
            background: rgba(255,151,29,0.1);
            .box_up_head_title {
               width: 100%;
               display: flex;
               align-items: center;
               justify-content: space-around;
               flex-wrap: wrap;
               .meade_zw {
                  width: 140rpx;
                  height: 0;
               margin-bottom: 16rpx;
               text {
                  font-weight: 500;
                  font-size: 30rpx;
                  color: #222222;
                  margin-left: 8rpx;
               }
               .meade_content {
                  width: 140rpx;
                  height: 140rpx;
            }
            .box_up_head_info {
               width: 100%;
               display: flex;
               flex-direction: column;
               text {
                  font-weight: 400;
                  font-size: 26rpx;
                  color: #222222;
               }
            }
         }
         .box_up_title {
            width: 100%;
            height: 104rpx;
            padding: 0 30rpx;
            box-sizing: border-box;
            display: flex;
            align-items: center;
            justify-content: space-between;
            text {
               font-weight: 500;
               font-size: 32rpx;
               color: #222222;
            }
            .box_up_title_downlod {
               display: flex;
               align-items: center;
               text {
                  font-weight: 400;
                  font-size: 26rpx;
                  color: #437CB3;
                  margin-right: 10rpx;
               }
               image {
                  width: 28rpx;
                  height: 24rpx;
               }
            }
         }
         .box_up_list {
            width: 100%;
            padding: 0 30rpx;
            box-sizing: border-box;
            .box_up_list_row {
               width: 100%;
               padding: 30rpx;
               border-radius: 16rpx;
               box-sizing: border-box;
               background-color: #ffffff;
               margin-bottom: 20rpx;
               &:last-child {
                  margin: 0;
               }
               .box_up_list_row_title {
                  width: 100%;
                  display: flex;
                  align-items: center;
                  justify-content: center;
                  overflow: hidden;
                  position: relative;
                  .video {
                     width: 100%;
                  }
                  .dele {
                     width: 50rpx;
                     height: 50rpx;
                     position: absolute;
                     top: 0;
                     right: 0;
                     z-index: 9;
                  }
                  .image {
                     width: 100%;
                  }
               }
               .meade_upload {
                  width: 140rpx;
                  height: 140rpx;
                  background: #FFFFFF;
                  border-radius: 8rpx;
                  border: 1rpx solid #E5E5E5;
                  display: flex;
                  flex-direction: column;
                  align-items: center;
                  justify-content: center;
                  justify-content: space-between;
                  margin-bottom: 30rpx;
                  text {
                     font-weight: 400;
                     font-size: 24rpx;
                     color: #666666;
                     font-style: normal;
                     margin-top: 5rpx;
                     font-weight: 500;
                     font-size: 32rpx;
                     color: #222222;
                  }
                  .box_up_list_row_title_icon {
                     display: flex;
                     align-items: center;
                     image {
                        width: 28rpx;
                        height: 28rpx;
                        margin-right: 8rpx;
                     }
                     text {
                        font-weight: 400;
                        font-size: 26rpx;
                        color: #437CB3;
                     }
                  }
               }
               .meade {
                  width: 100%;
                  display: flex;
                  align-items: center;
                  justify-content: space-around;
                  flex-wrap: wrap;
                  .meade_zw {
                     width: 140rpx;
                     height: 0;
                  }
                  .meade_content {
                     width: 140rpx;
                     height: 140rpx;
                     display: flex;
                     align-items: center;
                     justify-content: center;
                     overflow: hidden;
                     position: relative;
                     .video {
                        width: 100%;
                     }
                     .dele {
                        width: 50rpx;
                        height: 50rpx;
                        position: absolute;
                        top: 0;
                        right: 0;
                        z-index: 9;
                     }
                     .image {
                        width: 100%;
                     }
                  }
                  .meade_upload {
                     width: 140rpx;
                     height: 140rpx;
                     background: #FFFFFF;
                     border-radius: 8rpx;
                     border: 1rpx solid #E5E5E5;
                     display: flex;
                     flex-direction: column;
                     align-items: center;
                     justify-content: center;
                     text {
                        font-weight: 400;
                        font-size: 24rpx;
                        color: #666666;
                        font-style: normal;
                        margin-top: 5rpx;
                     }
                  }
               }
            }
            .list {
         }
         .box_up_hz {
            width: 100%;
            padding: 30rpx;
            box-sizing: border-box;
            .box_list {
               width: 100%;
               display: flex;
               align-content: center;
               margin-top: 24rpx;
               .active {
                  background: #437CB3 !important;
               padding: 30rpx;
               box-sizing: border-box;
               border-radius: 16rpx;
               box-sizing: border-box;
               background-color: #ffffff;
               margin-bottom: 20rpx;
               &:last-child {
                  margin: 0 !important;
               }
               .box_list_Label {
                  font-weight: 500;
                  font-size: 32rpx;
                  color: #222222;
                  font-style: normal;
               }
               .box_list_from {
                  width: 100%;
                  margin-top: 30rpx;
               }
            }
         }
      }
      .box_status {
         width: 100%;
         height: 176rpx;
         background: #FFFFFF;
         display: flex;
         align-items: center;
         justify-content: space-between;
         .box_status_row {
            width: 100%;
            height: 100%;
            display: flex;
            align-items: center;
            justify-content: center;
            flex-direction: column;
            position: relative;
            .bgColor {
               border-bottom: 3rpx dashed #437CB3 !important;
            }
            .box_status_row_x {
               position: absolute;
               right: -100rpx;
               top: 60rpx;
               width: 100%;
               height: 5rpx;
               border-bottom: 3rpx dashed #D2D2D2;
            }
            .active {
               background: #437CB3 !important;
               text {
                  color: #FFFFFF !important;
               }
               .list_item {
                  width: 92rpx;
                  height: 64rpx;
                  line-height: 64rpx;
                  text-align: center;
                  background: #F7F7F7;
                  border-radius: 4rpx;
                  font-weight: 400;
                  font-size: 28rpx;
                  color: #333333;
                  font-style: normal;
                  margin-right: 20rpx;
            }
            .activeFont {
               color: #437CB3 !important;
            }
            .guo {
               background: #FFFFFF !important;
               border: 2rpx solid #437CB3 !important;
               box-sizing: border-box;
            }
            .box_status_row_num {
               width: 64rpx;
               height: 64rpx;
               display: flex;
               align-items: center;
               justify-content: center;
               border-radius: 50%;
               background: #E5E5E5;
               position: relative;
               z-index: 9;
               text {
                  font-weight: 500;
                  font-size: 32rpx;
                  color: #666666;
               }
            }
            .box_status_row_text {
               font-weight: 400;
               font-size: 26rpx;
               color: #666666;
               margin-top: 16rpx;
            }
         }
      }
      .box_footer {
         width: 100%;
         height: calc(108rpx + env(safe-area-inset-bottom));
         margin-top: 40rpx;
         position: fixed;
         z-index: 9;
         bottom: 0;
         left: 0;
         background-color: #ffffff;
         .box_footer_btns {
            width: 100%;
            box-sizing: border-box;
            padding: 10rpx 30rpx;
            display: flex;
            align-items: center;
            justify-content: space-between;
            .box_footer_btns_1 {
               width: 350rpx;
               height: 100%;
            }
         }
      }
      .box_hz {
         width: 100%;
         padding: 30rpx;
         box-sizing: border-box;
         background-color: #f7f7f7;
         .box_list {
            width: 100%;
            padding: 30rpx;
            border-radius: 16rpx;
            box-sizing: border-box;
            background-color: #ffffff;
            margin-bottom: 20rpx;
            &:last-child {
               margin: 0 !important;
            }
            .box_list_Label {
               font-weight: 500;
               font-size: 32rpx;
               color: #222222;
               font-style: normal;
            }
            .box_list_from /deep/ {
               width: 100%;
               margin-top: 30rpx;
               .faList {
                  width: 100%;
                  padding: 20rpx;
                  box-sizing: border-box;
                  margin-top: 20rpx;
                  background: rgba(67,124,179,0.1);
                  border-radius: 8rpx;
                  display: flex;
                  flex-direction: column;
                  text {
                     font-weight: 400;
                     font-size: 24rpx;
                     color: #333333;
                     margin-bottom: 12rpx;
                     &:last-child {
                        margin: 0 !important;
                     }
                  }
               }
               .u-textarea {
                  padding: 9px 0 !important;
               }
               .box_list_data {
                  width: 100%;
                  max-height: 400rpx;
                  margin-top: 10rpx;
                  .box_list_data_item {
                     width: 100%;
                     height: 80rpx;
                     padding: 0 20rpx;
                     box-sizing: border-box;
                     line-height: 80rpx;
                     border-bottom: 1px solid #dfdfdf;
                     &:last-child {
                        border: none;
                     }
                  }
               }
               .meade {
                  width: 100%;
                  display: flex;
                  align-items: center;
                  justify-content: space-around;
                  flex-wrap: wrap;
                  .meade_zw {
                     width: 140rpx;
                     height: 0;
                  }
                  .meade_content {
                     width: 140rpx;
                     height: 140rpx;
                     display: flex;
                     align-items: center;
                     justify-content: center;
                     overflow: hidden;
                     position: relative;
                     .video {
                        width: 100%;
                     }
                     .dele {
                        width: 50rpx;
                        height: 50rpx;
                        position: absolute;
                        top: 0;
                        right: 0;
                        z-index: 9;
                     }
                     .image {
                        width: 100%;
                     }
                  }
                  .meade_upload {
                     width: 140rpx;
                     height: 140rpx;
                     background: #FFFFFF;
                     border-radius: 8rpx;
                     border: 1rpx solid #E5E5E5;
                     display: flex;
                     flex-direction: column;
                     align-items: center;
                     justify-content: center;
                     text {
                        font-weight: 400;
                        font-size: 24rpx;
                        color: #666666;
                        font-style: normal;
                        margin-top: 5rpx;
                     }
                  }
               }
               .list {
                  width: 100%;
                  display: flex;
                  align-content: center;
                  margin-top: 24rpx;
                  .active {
                     background: #437CB3 !important;
                     color: #FFFFFF !important;
                  }
                  .list_item {
                     width: 92rpx;
                     height: 64rpx;
                     line-height: 64rpx;
                     text-align: center;
                     background: #F7F7F7;
                     border-radius: 4rpx;
                     font-weight: 400;
                     font-size: 28rpx;
                     color: #333333;
                     font-style: normal;
                     margin-right: 20rpx;
                  }
               }
            }
         }