From 50fb58286ed3b718c39a97e0987ee7561a295651 Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期五, 04 七月 2025 17:56:41 +0800
Subject: [PATCH] git ch

---
 company/src/components/enterprise/onlineReporting.vue |  147 +++++++++++++++++++++++++++++--------------------
 1 files changed, 87 insertions(+), 60 deletions(-)

diff --git a/company/src/components/enterprise/onlineReporting.vue b/company/src/components/enterprise/onlineReporting.vue
index 3ac592d..3cfe3d4 100644
--- a/company/src/components/enterprise/onlineReporting.vue
+++ b/company/src/components/enterprise/onlineReporting.vue
@@ -7,7 +7,7 @@
         :confirm-working="isWorking"
         @confirm="confirm"
     >
-        <div class="box">
+        <div class="box" id="section1">
             <div class="box_status">
                 <div class="box_status_row" v-for="(item, index) in statusList" :key="index">
                     <div :class="index <= i ? 'box_status_row_icon statusColor2 statusColor3' : 'box_status_row_icon'">
@@ -162,7 +162,7 @@
                                             <span>{{ item.name }}</span>
                                         </div>
                                     </div>
-                                    <upload width="100px" height="100px" :list="[]" accept=".png,.jpg,.jpeg,.mp4,.word,.xlsx,.xls,.pdf,.excel" folder="settle" @success="claimsUploadFile($event, 6)" />
+                                    <uploadProgress width="100px" height="100px" :list="[]" accept=".png,.jpg,.jpeg,.mp4,.word,.xlsx,.xls,.pdf,.excel" folder="settle" @success="claimsUploadFile($event, 6)" />
                                 </div>
                             </div>
                         </div>
@@ -181,7 +181,7 @@
                             </div>
                             <div class="box_desc_list_row">
                                 <el-form-item label="鎶ユ浜鸿仈绯绘柟寮�" prop="informantPhone">
-                                    <el-input v-model="form.informantPhone" placeholder="璇疯緭鍏�"></el-input>
+                                    <el-input v-model="form.informantPhone" type="number" maxlength="11" placeholder="璇疯緭鍏�"></el-input>
                                 </el-form-item>
                             </div>
                             <div class="box_desc_list_ZW"></div>
@@ -199,7 +199,11 @@
                     </div>
                     <div class="box_item">
                         <div class="box_item_title">
-                            <span>鐞嗚禂鏉愭枡</span>
+                          <div> <span>涓婁紶鐞嗚禂鏉愭枡</span></div>
+                          <div style="float: right">
+                            <el-button type="primary" v-if="insurance && insurance.lpStampTempFile && insurance.lpStampTempFile.fileurlFull"   @click="openLinkUrl(insurance.lpStampTempFile.fileurlFull)">鐩栫珷鏂囦欢妯$増</el-button>
+                            <el-button type="primary" v-if="insurance && insurance.lpFile && insurance.lpFile.fileurlFull"   @click="openLinkUrl(insurance.lpFile.fileurlFull)">鐞嗚禂鏉愭枡涓�瑙堣〃</el-button>
+                          </div>
                         </div>
                         <div class="box_item_list">
                             <div class="box_item_list_row" style="width: 100%; margin-bottom: 30px;">
@@ -209,7 +213,7 @@
                                 </div>
                                 <div class="box_item_list_row_info">
                                     <div class="label">鏂囦欢涓婁紶璇存槑锛�</div>
-                                    <div class="content">闇�涓婁紶鐨勬枃浠讹細鍔冲姩鍚堝悓澶嶅嵃浠躲�佸伐璧勬祦姘淬�佽�冨嫟璁板綍銆佽韩浠借瘉姝e弽闈€�侊紱</div>
+                                  <div v-if="insurance && insurance.lpYggxFileInfo" class="content" v-html="insurance.lpYggxFileInfo"></div>
                                 </div>
                                 <div class="box_item_list_row_l">
                                     <div class="desc_data_list_item" v-for="(item, index) in form.relationFileList" :key="index">
@@ -227,7 +231,7 @@
                                             <span>{{ item.name }}</span>
                                         </div>
                                     </div>
-                                    <upload width="100px" height="100px" :list="[]" accept=".png,.jpg,.jpeg,.mp4,.word,.xlsx,.xls,.pdf,.excel" folder="settle" @success="claimsUploadFile($event, 1)" />
+                                    <uploadProgress width="100px" height="100px" :list="[]" folder="settle" @success="claimsUploadFile($event, 1)" />
                                 </div>
                             </div>
                             <div class="box_item_list_row" style="width: 100%; margin-bottom: 30px;">
@@ -237,7 +241,7 @@
                                 </div>
                                 <div class="box_item_list_row_info">
                                     <div class="label">鏂囦欢涓婁紶璇存槑锛�</div>
-                                    <div class="content">闇�涓婁紶鐨勬枃浠讹細鍔冲姩鍚堝悓澶嶅嵃浠躲�佸伐璧勬祦姘淬�佽�冨嫟璁板綍銆佽韩浠借瘉姝e弽闈€�侊紱</div>
+                                  <div v-if="insurance && insurance.lpMzFileInfo" class="content" v-html="insurance.lpMzFileInfo"></div>
                                 </div>
                                 <div class="box_item_list_row_l">
                                     <div class="desc_data_list_item" v-for="(item, index) in form.outpatientFileList" :key="index">
@@ -255,7 +259,7 @@
                                             <span>{{ item.name }}</span>
                                         </div>
                                     </div>
-                                    <upload width="100px" height="100px" :list="[]" accept=".png,.jpg,.jpeg,.mp4,.word,.xlsx,.xls,.pdf,.excel" folder="settle" @success="claimsUploadFile($event, 2)" />
+                                    <uploadProgress width="100px" height="100px" :list="[]" folder="settle" @success="claimsUploadFile($event, 2)" />
                                 </div>
                             </div>
                             <div class="box_item_list_row" style="width: 100%; margin-bottom: 30px;">
@@ -265,7 +269,7 @@
                                 </div>
                                 <div class="box_item_list_row_info">
                                     <div class="label">鏂囦欢涓婁紶璇存槑锛�</div>
-                                    <div class="content">闇�涓婁紶鐨勬枃浠讹細鍔冲姩鍚堝悓澶嶅嵃浠躲�佸伐璧勬祦姘淬�佽�冨嫟璁板綍銆佽韩浠借瘉姝e弽闈€�侊紱</div>
+                                  <div v-if="insurance && insurance.lpZyFileInfo" class="content" v-html="insurance.lpZyFileInfo"></div>
                                 </div>
                                 <div class="box_item_list_row_l">
                                     <div class="desc_data_list_item" v-for="(item, index) in form.hospitalFileList" :key="index">
@@ -283,7 +287,7 @@
                                             <span>{{ item.name }}</span>
                                         </div>
                                     </div>
-                                    <upload width="100px" height="100px" :list="[]" accept=".png,.jpg,.jpeg,.mp4,.word,.xlsx,.xls,.pdf,.excel" folder="settle" @success="claimsUploadFile($event, 3)" />
+                                    <uploadProgress width="100px" height="100px" :list="[]" folder="settle" @success="claimsUploadFile($event, 3)" />
                                 </div>
                             </div>
                             <div class="box_item_list_row" style="width: 100%; margin-bottom: 30px;">
@@ -293,7 +297,7 @@
                                 </div>
                                 <div class="box_item_list_row_info">
                                     <div class="label">鏂囦欢涓婁紶璇存槑锛�</div>
-                                    <div class="content">闇�涓婁紶鐨勬枃浠讹細鍔冲姩鍚堝悓澶嶅嵃浠躲�佸伐璧勬祦姘淬�佽�冨嫟璁板綍銆佽韩浠借瘉姝e弽闈€�侊紱</div>
+                                  <div v-if="insurance && insurance.lpScFileInfo" class="content" v-html="insurance.lpScFileInfo"></div>
                                 </div>
                                 <div class="box_item_list_row_l">
                                     <div class="desc_data_list_item" v-for="(item, index) in form.disabilityFileList" :key="index">
@@ -311,7 +315,7 @@
                                             <span>{{ item.name }}</span>
                                         </div>
                                     </div>
-                                    <upload width="100px" height="100px" :list="[]" accept=".png,.jpg,.jpeg,.mp4,.word,.xlsx,.xls,.pdf,.excel" folder="settle" @success="claimsUploadFile($event, 4)" />
+                                    <uploadProgress width="100px" height="100px" :list="[]" folder="settle" @success="claimsUploadFile($event, 4)" />
                                 </div>
                             </div>
                             <div class="box_item_list_row" style="width: 100%; margin-bottom: 30px;">
@@ -321,7 +325,7 @@
                                 </div>
                                 <div class="box_item_list_row_info">
                                     <div class="label">鏂囦欢涓婁紶璇存槑锛�</div>
-                                    <div class="content">闇�涓婁紶鐨勬枃浠讹細鍔冲姩鍚堝悓澶嶅嵃浠躲�佸伐璧勬祦姘淬�佽�冨嫟璁板綍銆佽韩浠借瘉姝e弽闈€�侊紱</div>
+                                    <div v-if="insurance && insurance.lpYggxFileInfo" class="content" v-html="insurance.lpYggxFileInfo"></div>
                                 </div>
                                 <div class="box_item_list_row_l">
                                     <div class="desc_data_list_item" v-for="(item, index) in form.otherFileList" :key="index">
@@ -339,7 +343,7 @@
                                             <span>{{ item.name }}</span>
                                         </div>
                                     </div>
-                                    <upload width="100px" height="100px" :list="[]" accept=".png,.jpg,.jpeg,.mp4,.word,.xlsx,.xls,.pdf,.excel" folder="settle" @success="claimsUploadFile($event, 5)" />
+                                    <uploadProgress width="100px" height="100px" :list="[]" folder="settle" @success="claimsUploadFile($event, 5)" />
                                 </div>
                             </div>
                         </div>
@@ -356,17 +360,17 @@
                         </div>
                         <div class="box_desc_list">
                             <div class="box_desc_list_row">
-                                <el-form-item label="鏀舵閾惰" prop="receiveBank">
+                                <el-form-item label="鏀舵閾惰" :prop="userInfo.type === 1 ? '' : 'receiveBank'">
                                     <el-input v-model="form.receiveBank" placeholder="璇疯緭鍏ユ敹娆鹃摱琛屾敮琛屽悕绉�"></el-input>
                                 </el-form-item>
                             </div>
                             <div class="box_desc_list_row">
-                                <el-form-item label="鏀舵浜�" prop="receiveUserName">
+                                <el-form-item label="鏀舵浜�" :prop="userInfo.type === 1 ? '' : 'receiveUserName'">
                                     <el-input v-model="form.receiveUserName" placeholder="璇疯緭鍏ュ紑鎴峰鍚�"></el-input>
                                 </el-form-item>
                             </div>
                             <div class="box_desc_list_row">
-                                <el-form-item label="鏀舵璐﹀彿" prop="receiveAccount">
+                                <el-form-item label="鏀舵璐﹀彿" :prop="userInfo.type === 1 ? '' : 'receiveAccount'">
                                     <el-input v-model="form.receiveAccount" placeholder="璇疯緭鍏ラ摱琛岃处鍙�"></el-input>
                                 </el-form-item>
                             </div>
@@ -389,13 +393,13 @@
             </el-form>
             <div class="box_footer">
                 <div class="box_footer_btns" v-if="i === 0">
-                    <el-button type="primary" @click="confirm(0)">鏆傚瓨</el-button>
+                    <el-button type="primary" :loading="isWorking" @click="confirm(0)">鏆傚瓨</el-button>
                     <el-button type="primary" @click="next">涓嬩竴姝�</el-button>
                 </div>
                 <div class="box_footer_btns" v-if="i === 1">
-                    <el-button @click="i--">涓婁竴姝�</el-button>
-                    <el-button type="primary" @click="confirm(0)">鏆傚瓨</el-button>
-                    <el-button type="primary" @click="confirm(1)">鎻愪氦</el-button>
+                    <el-button @click="previousStep">涓婁竴姝�</el-button>
+                    <el-button type="primary" :loading="isWorking" @click="confirm(0)">鏆傚瓨</el-button>
+                    <el-button type="primary" :loading="isWorking" @click="confirm(1)">鎻愪氦</el-button>
                 </div>
             </div>
         </div>
@@ -410,6 +414,7 @@
 import BaseOpera from '@/components/base/BaseOpera'
 import GlobalWindow from '@/components/common/GlobalWindow'
 import upload from '@/components/common/upload'
+import uploadProgress from '@/components/common/uploadProgress'
 import { saveSettleClaims } from '@/api/business/settleRisk'
 import { findById } from '@/api/business/settleClaims'
 import { findListByDTO } from '@/api/business/member'
@@ -419,14 +424,24 @@
 import OperaInsuranceApplyDetails from '@/components/business/OperaInsuranceApplyWindow'
 import OperaSettleClaimsWindow from '@/components/business/OperaSettleClaimsWindow'
 import { mapState } from 'vuex'
+import { getById } from '@/api/business/insurance'
 export default {
   name: 'onlineReporting',
   extends: BaseOpera,
-  components: { GlobalWindow, upload, OperaSettleClaimsWindow, OperaWtbApplyShopWindow, OperaInsuranceApplyDetails },
+  components: { GlobalWindow, upload,uploadProgress, OperaSettleClaimsWindow, OperaWtbApplyShopWindow, OperaInsuranceApplyDetails },
   computed: {
     ...mapState(['userInfo'])
   },
   data () {
+      var checkPhone = (rule, value, callback) => {
+          if (value === '') {
+              callback(new Error('璇疯緭鍏�'));
+          } else if (!/^[1]\d{10}$/.test(value)) {
+              callback(new Error('鎵嬫満鍙蜂笉鍚堟硶'));
+          } else {
+              callback();
+          }
+      };
     return {
       i: 0,
       id: null,
@@ -516,16 +531,17 @@
           { required: true, message: '涓嶈兘涓虹┖' }
         ],
         informantPhone: [
-          { required: true, message: '涓嶈兘涓虹┖' }
+          { required: true, validator: checkPhone }
         ]
       },
       pickerOptions: {
-        disabledDate(time) {
-          return time.getTime() > Date.now(); // 绂佺敤鏈潵鐨勬棩鏈�
+        disabledDate (time) {
+          return time.getTime() > Date.now() // 绂佺敤鏈潵鐨勬棩鏈�
         }
       },
       area: [],
       user: [],
+      insurance: null,
       solutionList: []
     }
   },
@@ -538,6 +554,7 @@
   methods: {
     open (title, id) {
       this.title = title
+      this.continueReporting()
       this.form.area = []
       this.i = 0
       this.solutionList = []
@@ -545,6 +562,7 @@
       this.user = []
       this.getUser()
       this.getCityTree()
+      this.insurance = {}
       if (id) {
         findById(id)
           .then(res => {
@@ -560,12 +578,13 @@
                 .then(res1 => {
                   res1.forEach(item => {
                     if (item.id === res.applyDetailId) {
+                      this.getInsuranceFile(item)//鑾峰彇淇濋櫓鏂规鏂囦欢璇存槑
                       item.active = true
                       this.pickerOptions = {
                         disabledDate (time) {
                           var start = new Date(item.startTime)
                           var end = new Date(item.endTime)
-                          return ( time.getTime() < start.getTime() ||  time.getTime()>end.getTime())
+                          return (time.getTime() < start.getTime() || time.getTime() > end.getTime())
                         }
                       }
                     } else {
@@ -583,6 +602,9 @@
           this.form.informantName = this.userInfo.realname
         })
       }
+    },
+    openLinkUrl(url){
+      window.open(url)
     },
     continueReporting () {
       this.i = 0
@@ -675,6 +697,13 @@
         this.form.reportFileList.splice(index, 1)
       }
     },
+    getInsuranceFile (obj) {
+      this.insurance = null
+      getById(obj.insuranceId,1)
+        .then(res => {
+          this.insurance = res
+        })
+    },
     claimsUploadFile (file, type) {
       file.fileurl = file.imgaddr
       file.name = file.originname
@@ -696,30 +725,31 @@
     getSolutions (id) {
       const row = this.user.filter(item => item.id === id)
       this.form.idcardNo = row[0].idcardNo
-      findList({ memberId: id })
+      findList({ memberId: id, isSettleClaims: 1 })
         .then(res => {
           this.form.insuranceApplyId = ''
-          res.forEach(item=> {
-              item.active = false
+          res.forEach(item => {
+            item.active = false
           })
           this.solutionList = res
-          this.changeSolution(null,0)
+          this.changeSolution(null, 0)
         })
     },
     changeSolution (e, i) {
       this.pickerOptions = {}
-      if(this.solutionList.length < i){
+      if (this.solutionList.length < i) {
         return
       }
       this.solutionList.forEach((item, index) => {
         item.active = i === index
       })
       const obj = this.solutionList.filter(item => item.active)[0]
+      this.getInsuranceFile(obj)
       this.pickerOptions = {
         disabledDate (time) {
           var start = new Date(obj.startTime)
           var end = new Date(obj.endTime)
-          return ( time.getTime() < start.getTime() ||  time.getTime()>end.getTime())
+          return (time.getTime() < start.getTime() || time.getTime() > end.getTime())
         }
       }
       this.form.insuranceApplyId = obj.applyId
@@ -739,40 +769,37 @@
       }
     },
     confirm (saveType) {
-      this.isWorking = true
-      saveSettleClaims({ ...this.form, saveType })
-        .then(res => {
-          console.log(res)
-          if (saveType === 0) {
-            this.visible = false
-          } else {
-            this.id = res
-            this.i = 2
-          }
-          this.$emit('success')
-        }).catch(err => {
-            this.$tip.apiFailed(err)
-         })
-        .finally(() => {
-          this.isWorking = false
+        this.$refs.form.validate((valid) => {
+            if (!valid) return;
+            this.isWorking = true
+            saveSettleClaims({ ...this.form, saveType })
+                .then(res => {
+                    if (saveType === 0) {
+                        this.visible = false
+                    } else {
+                        this.id = res
+                        this.i = 2
+                    }
+                    this.$emit('success')
+                }).catch(err => {
+                this.$tip.apiFailed(err)
+            })
+                .finally(() => {
+                    this.isWorking = false
+                })
         })
     },
+      previousStep() {
+          this.i--
+          var element = document.getElementById('section1');
+          element.scrollIntoView({ behavior: 'smooth' });
+      },
     next () {
       this.$refs.form.validate((valid) => {
         if (!valid) return
         this.i++
-        // this.isWorking = true
-        // createSys(obj)
-        //     .then(() => {
-        //         this.visible = false
-        //         this.$emit('success')
-        //     })
-        //     .catch(e => {
-        //         this.$tip.apiFailed(e)
-        //     })
-        //     .finally(() => {
-        //         this.isWorking = false
-        //     })
+          var element = document.getElementById('section1');
+          element.scrollIntoView({ behavior: 'smooth' });
       })
     }
   }

--
Gitblit v1.9.3