From 4555d41a66b83c8eb61bd99faf473985aeffda1f Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期四, 01 二月 2024 09:11:20 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 company/src/api/business/member.js                             |    5 
 company/src/components/enterprise/onlineReporting.vue          |  395 +++++++++++++++++++
 company/src/api/business/applyChange.js                        |    5 
 company/src/components/enterprise/selectSolutions.vue          |  113 +++++
 company/src/api/system/common.js                               |    7 
 company/src/components/enterprise/supplementaryExplanation.vue |   76 +++
 company/src/api/business/settleClaims.js                       |   11 
 company/src/views/business/settleClaims.vue                    |   18 
 company/src/components/common/upload.vue                       |  140 +++++++
 company/src/utils/request.js                                   |    3 
 company/src/views/enterprise/add_subtract.vue                  |    3 
 company/src/components/business/OperaSettleClaimsWindow.vue    |  388 +++++++++++--------
 12 files changed, 987 insertions(+), 177 deletions(-)

diff --git a/company/src/api/business/applyChange.js b/company/src/api/business/applyChange.js
index 2b43541..c179688 100644
--- a/company/src/api/business/applyChange.js
+++ b/company/src/api/business/applyChange.js
@@ -21,3 +21,8 @@
 export function getChangeCountCyclePriceVO (data) {
     return request.post('/business/applyChange/getChangeCountCyclePriceVO', data)
 }
+
+// 鍒楄〃鏌ヨ
+export function findList (data) {
+    return request.post('/business/applyDetail/findList', data)
+}
diff --git a/company/src/api/business/member.js b/company/src/api/business/member.js
index a5c98dc..af5e1ba 100644
--- a/company/src/api/business/member.js
+++ b/company/src/api/business/member.js
@@ -21,3 +21,8 @@
 export function importExcel (data) {
     return request.post('/business/member/importExcel', data)
 }
+
+// 鍒楄〃鏌ヨ
+export function findList (data) {
+    return request.post('/business/memberInsurance/findList', data)
+}
diff --git a/company/src/api/business/settleClaims.js b/company/src/api/business/settleClaims.js
index 4ecc1a7..17b41d7 100644
--- a/company/src/api/business/settleClaims.js
+++ b/company/src/api/business/settleClaims.js
@@ -56,6 +56,17 @@
 export function findById (id) {
     return request.get(`business/settleClaims/${id}`)
 }
+
 export function delFile (id,fileId) {
     return request.get(`business/settleClaims/delFile/${id}/${fileId}`)
 }
+
+// 鏂板缓
+export function create (data) {
+    return request.post('/business/settleClaims/create', data)
+}
+
+// 琛ュ厖璇存槑
+export function supplement (data) {
+    return request.post('/business/settleClaims/supplement', data)
+}
diff --git a/company/src/api/system/common.js b/company/src/api/system/common.js
index 53d23a4..75d801c 100644
--- a/company/src/api/system/common.js
+++ b/company/src/api/system/common.js
@@ -45,4 +45,9 @@
 // 涓婁紶鎺ュ彛
 export function upload (data) {
   return request.post('/public/upload', data)
-}
\ No newline at end of file
+}
+
+// 鍖哄煙鏍戝垪琛�
+export function findTreeList (data) {
+  return request.post('/business/areas/findTreeList', data)
+}
diff --git a/company/src/components/business/OperaSettleClaimsWindow.vue b/company/src/components/business/OperaSettleClaimsWindow.vue
index aff8aac..dfb5f0a 100644
--- a/company/src/components/business/OperaSettleClaimsWindow.vue
+++ b/company/src/components/business/OperaSettleClaimsWindow.vue
@@ -12,18 +12,24 @@
                     <span class="desc_label_left_title">
                         鎶ユ璇︽儏
                     </span>
-                    <span class="desc_label_left_time">
+                    <span class="desc_label_left_time" :style="contrast(model.createDate, model.baoxianEndTime) ? 'rgba(249, 86, 1, 0.996)' : 'black'">
                         鎶ユ鏃ユ湡锛歿{ model.createDate }}
                     </span>
                     <span class="desc_label_left_code">
-                        鎶ユ鍙凤細{{ model.reportNum }}
+                        鎶ユ鍙凤細{{ model.reportNum || '-' }}
                     </span>
                 </div>
                 <div class="desc_label_right">
-                    <el-button type="primary"  v-if="model.status !=1 && model.status !=4" @click="$refs.operaInsuranceApplyCheckWindow.open('娣诲姞鎶ユ鍙�',model,remarkLogList,1)">娣诲姞鎶ユ鍙�</el-button>
-                    <el-button type="primary"  v-if="model.status !=1 && model.status !=4"  @click="$refs.operaInsuranceApplyCheckWindow.open('鐞嗚禂澶勭悊',model,remarkLogList,2)">鐞嗚禂澶勭悊</el-button>
-                    <el-button type="primary" v-if="model.status !=1 && model.status !=4"  @click="$refs.operaInsuranceApplyCheckWindow.open('缁撴鎻愪氦',model,remarkLogList,4)">缁撴鎻愪氦</el-button>
-                    <el-button type="danger"  v-if="model.status !=1 && model.status !=4" @click="$refs.operaInsuranceApplyCheckWindow.open('鎾ら攢鐢宠',model,remarkLogList,3)">鎾ら攢鐢宠</el-button>
+                    <template v-if="userInfo.type === 0">
+                        <el-button type="primary" v-if="model.status !=1 && model.status !=4" @click="$refs.operaInsuranceApplyCheckWindow.open('娣诲姞鎶ユ鍙�',model,remarkLogList,1)">娣诲姞鎶ユ鍙�</el-button>
+                        <el-button type="primary" v-if="model.status !=1 && model.status !=4"  @click="$refs.operaInsuranceApplyCheckWindow.open('鐞嗚禂澶勭悊',model,remarkLogList,2)">鐞嗚禂澶勭悊</el-button>
+                        <el-button type="primary" v-if="model.status !=1 && model.status !=4"  @click="$refs.operaInsuranceApplyCheckWindow.open('缁撴鎻愪氦',model,remarkLogList,4)">缁撴鎻愪氦</el-button>
+                        <el-button type="danger" v-if="model.status !=1 && model.status !=4" @click="$refs.operaInsuranceApplyCheckWindow.open('鎾ら攢鐢宠',model,remarkLogList,3)">鎾ら攢鐢宠</el-button>
+                    </template>
+                    <template v-else>
+                        <el-button type="primary" @click="edit" v-if="model.status === 0">淇敼淇℃伅</el-button>
+                        <el-button type="primary" @click="$refs.supplementaryExplanation.open('琛ュ厖璇存槑', model.id)" v-if="model.status === 0">琛ュ厖璇存槑</el-button>
+                    </template>
                 </div>
             </div>
             <div class="desc_list">
@@ -47,7 +53,7 @@
                     <div class="desc_list_item_label">
                         浜嬫晠鍙戠敓鏃堕棿锛�
                     </div>
-                    <div class="desc_list_item_val">
+                    <div class="desc_list_item_val" :style="contrast24(model.createDate, model.baoxianStartTime) ? 'rgba(249, 86, 1, 0.996)' : 'black'">
                       {{ model.createDate }}
                     </div>
                 </div>
@@ -56,7 +62,7 @@
                         鎵�灞炰繚鍗曞彿锛�
                     </div>
                     <div class="desc_list_item_val" style="cursor: pointer; color: rgba(39, 157, 255, 0.968627450980392);">
-                      {{ model.applyCode }}
+                      {{ model.applyCode || '-' }}
                         <el-button v-if="model.baoxiandanFile && model.baoxiandanFile.fileurlFull" type="primary" style="margin-left: 10px;" @click="openBaoxiandan">鏌ョ湅淇濋櫓鍗�</el-button>
                     </div>
                 </div>
@@ -152,9 +158,10 @@
                     <div class="desc_list_item_label">
                         鎶ユ瑙嗛锛�
                     </div>
-                    <div v-if="model.reportFileList && model.reportFileList.length>0" class="desc_list_item_videos">
-                        <div class="desc_list_item_imgs_video"   v-for="(item, index) in reportFileList" :key="index">
-                            <video src="${item.fileurlFull}"></video>
+                    <div class="desc_list_item_videos" v-if="model.reportFileList && model.reportFileList.length > 0">
+                        <div class="desc_list_item_imgs_video" v-for="(item, index) in model.reportFileList" :key="index">
+                            <img :src="item.fileurlFull" v-if="item.type === 2" />
+                            <video controls autoplay :src="item.fileurlFull" v-if="item.type === 1"></video>
                         </div>
                     </div>
                     <div v-else class="desc_list_item_videos">-</div>
@@ -171,19 +178,24 @@
                     </span>
                 </div>
                 <div class="desc_label_right">
-                    <el-button type="primary"  v-if="model.status !=1 && model.status !=4"  @click="$refs.operaInsuranceApplyCheckWindow.open('澶囨敞鏍囩',model,remarkLogList,5)">澶囨敞鏍囩</el-button>
-                    <el-button type="primary"  v-if="model.status !=1 && model.status !=4" @click="submit(0)">璧勬枡纭</el-button>
+                    <template v-if="userInfo.type === 0">
+                        <el-button type="primary"  v-if="model.status !=1 && model.status !=4"  @click="$refs.operaInsuranceApplyCheckWindow.open('澶囨敞鏍囩',model,remarkLogList,5)">澶囨敞鏍囩</el-button>
+                        <el-button type="primary"  v-if="model.status !=1 && model.status !=4" @click="submit(0)">璧勬枡纭</el-button>
+                    </template>
                     <el-button type="primary"  @click="submit(1)">璧勬枡涓嬭浇</el-button>
                 </div>
             </div>
             <div class="desc_data">
                 <div class="desc_data_label">1. 鍛樺伐鍏崇郴璇佹槑璧勬枡</div>
                 <div class="desc_data_list">
-                    <template v-if="model.relationFileList && model.relationFileList">
+                    <template v-if="model.relationFileList && model.relationFileList.length > 0">
                       <div class="desc_data_list_item" v-for="(item, index) in model.relationFileList" :key="index">
                         <div class="desc_data_list_item_dele" @click="delFile(item.id)">鍒犻櫎</div>
-                        <div class="desc_data_list_item_img" v-if="item.type ==0 && item.fileurlFull!=null">
+                        <div class="desc_data_list_item_img" v-if="item.type == 0 && item.fileurlFull != null">
                           <img :src="item.fileurlFull" />
+                        </div>
+                        <div class="desc_data_list_item_img" v-if="item.type == 1 && item.fileurlFull != null">
+                            <video controls :src="item.fileurlFull" />
                         </div>
                         <div class="desc_data_list_item_info">
                           <span>{{ item.name }}</span>
@@ -192,33 +204,37 @@
                         </div>
                       </div>
                     </template>
-                    <div class="desc_data_list_item">
-                      <UploadFileCommon :uploadData="{ folder: 'settle' }" :file="file1" @uploadSuccess="file1Uploaded()" />
-                      <div class="desc_data_list_item_upload">
-                            <el-button type="primary">涓婁紶</el-button>
-                            <el-button>鍙栨秷</el-button>
-                        </div>
-                    </div>
-                    <div class="desc_data_list_item1"></div>
-                    <div class="desc_data_list_item1"></div>
+                    <upload width="100px" height="100px" :list="[]" accept=".png,.jpg,.jpeg,.mp4,.word,.xlsx,.xls,.pdf,.excel" folder="settle" @success="claimsUploadFile($event, 2)" />
+<!--                    <div class="desc_data_list_item">-->
+<!--                      <UploadFileCommon :uploadData="{ folder: 'settle' }" />-->
+<!--                      <div class="desc_data_list_item_upload">-->
+<!--                            <el-button type="primary">涓婁紶</el-button>-->
+<!--                            <el-button>鍙栨秷</el-button>-->
+<!--                        </div>-->
+<!--                    </div>-->
+<!--                    <div class="desc_data_list_item1"></div>-->
+<!--                    <div class="desc_data_list_item1"></div>-->
                 </div>
             </div>
             <div class="desc_data">
                 <div class="desc_data_label">2. 鍖荤枟璧勬枡</div>
                 <div class="desc_data_cate">
-                    <el-tabs v-model="activeName"  @tab-click="handleClick">
+                    <el-tabs v-model="activeName" @tab-click="handleClick">
                         <el-tab-pane label="闂ㄨ瘖" name="first"></el-tab-pane>
                         <el-tab-pane label="浣忛櫌璧勬枡" name="second"></el-tab-pane>
                         <el-tab-pane label="浼ゆ畫" name="third"></el-tab-pane>
                     </el-tabs>
                 </div>
-                <div class="desc_data_list" v-if="activeName=='first'">
+                <div class="desc_data_list" v-if="activeName === 'first'">
                   <template v-if="model.outpatientFileList && model.outpatientFileList">
                     <div class="desc_data_list_item" v-for="(item, index) in model.outpatientFileList" :key="index">
                       <div class="desc_data_list_item_dele" @click="delFile(item.id)">鍒犻櫎</div>
-                      <div class="desc_data_list_item_img" v-if="item.type ==0 && item.fileurlFull!=null">
-                        <img :src="item.fileurlFull" />
-                      </div>
+                        <div class="desc_data_list_item_img" v-if="item.type == 0 && item.fileurlFull != null">
+                            <img :src="item.fileurlFull" />
+                        </div>
+                        <div class="desc_data_list_item_img" v-if="item.type == 1 && item.fileurlFull != null">
+                            <video controls :src="item.fileurlFull" />
+                        </div>
                       <div class="desc_data_list_item_info">
                         <span>{{ item.name }}</span>
                         <span>鎿嶄綔鍛�-{{ item.creatorName }}</span>
@@ -226,25 +242,29 @@
                       </div>
                     </div>
                   </template>
-                    <div class="desc_data_list_item">
-                        <div class="desc_data_list_item_img" style="cursor: pointer; background: #8c939d;">
-                            <i class="el-icon-plus"></i>
-                        </div>
-                        <div class="desc_data_list_item_upload">
-                            <el-button type="primary">涓婁紶</el-button>
-                            <el-button>鍙栨秷</el-button>
-                        </div>
-                    </div>
-                    <div class="desc_data_list_item1"></div>
-                    <div class="desc_data_list_item1"></div>
+                    <upload width="100px" height="100px" :list="[]" accept=".png,.jpg,.jpeg,.mp4,.word,.xlsx,.xls,.pdf,.excel" folder="settle" @success="claimsUploadFile($event, 3)" />
+<!--                    <div class="desc_data_list_item">-->
+<!--                        <div class="desc_data_list_item_img" style="cursor: pointer; background: #8c939d;">-->
+<!--                            <i class="el-icon-plus"></i>-->
+<!--                        </div>-->
+<!--                        <div class="desc_data_list_item_upload">-->
+<!--                            <el-button type="primary">涓婁紶</el-button>-->
+<!--                            <el-button>鍙栨秷</el-button>-->
+<!--                        </div>-->
+<!--                    </div>-->
+<!--                    <div class="desc_data_list_item1"></div>-->
+<!--                    <div class="desc_data_list_item1"></div>-->
                 </div>
-                <div class="desc_data_list" v-if="activeName=='second'">
-                  <template v-if="model.outpatientFileList && model.outpatientFileList">
-                    <div class="desc_data_list_item" v-for="(item, index) in model.outpatientFileList" :key="index">
+                <div class="desc_data_list" v-else-if="activeName === 'second'">
+                  <template v-if="model.hospitalFileList && model.hospitalFileList">
+                    <div class="desc_data_list_item" v-for="(item, index) in model.hospitalFileList" :key="index">
                       <div class="desc_data_list_item_dele" @click="delFile(item.id)">鍒犻櫎</div>
-                      <div class="desc_data_list_item_img" v-if="item.type ==0 && item.fileurlFull!=null">
-                        <img :src="item.fileurlFull" />
-                      </div>
+                        <div class="desc_data_list_item_img" v-if="item.type == 0 && item.fileurlFull != null">
+                            <img :src="item.fileurlFull" />
+                        </div>
+                        <div class="desc_data_list_item_img" v-if="item.type == 1 && item.fileurlFull != null">
+                            <video controls :src="item.fileurlFull" />
+                        </div>
                       <div class="desc_data_list_item_info">
                         <span>{{ item.name }}</span>
                         <span>鎿嶄綔鍛�-{{ item.creatorName }}</span>
@@ -252,25 +272,29 @@
                       </div>
                     </div>
                   </template>
-                    <div class="desc_data_list_item">
-                        <div class="desc_data_list_item_img" style="cursor: pointer; background: #8c939d;">
-                            <i class="el-icon-plus"></i>
-                        </div>
-                        <div class="desc_data_list_item_upload">
-                            <el-button type="primary">涓婁紶</el-button>
-                            <el-button>鍙栨秷</el-button>
-                        </div>
-                    </div>
-                    <div class="desc_data_list_item1"></div>
-                    <div class="desc_data_list_item1"></div>
+                    <upload width="100px" height="100px" :list="[]" accept=".png,.jpg,.jpeg,.mp4,.word,.xlsx,.xls,.pdf,.excel" folder="settle" @success="claimsUploadFile($event, 4)" />
+<!--                    <div class="desc_data_list_item">-->
+<!--                        <div class="desc_data_list_item_img" style="cursor: pointer; background: #8c939d;">-->
+<!--                            <i class="el-icon-plus"></i>-->
+<!--                        </div>-->
+<!--                        <div class="desc_data_list_item_upload">-->
+<!--                            <el-button type="primary">涓婁紶</el-button>-->
+<!--                            <el-button>鍙栨秷</el-button>-->
+<!--                        </div>-->
+<!--                    </div>-->
+<!--                    <div class="desc_data_list_item1"></div>-->
+<!--                    <div class="desc_data_list_item1"></div>-->
                 </div>
-                <div class="desc_data_list" v-if="activeName=='third'">
-                  <template v-if="model.outpatientFileList && model.outpatientFileList">
-                    <div class="desc_data_list_item" v-for="(item, index) in model.outpatientFileList" :key="index">
+                <div class="desc_data_list" v-else-if="activeName === 'third'">
+                  <template v-if="model.disabilityFileList && model.disabilityFileList">
+                    <div class="desc_data_list_item" v-for="(item, index) in model.disabilityFileList" :key="index">
                       <div class="desc_data_list_item_dele" @click="delFile(item.id)">鍒犻櫎</div>
-                      <div class="desc_data_list_item_img" v-if="item.type ==0 && item.fileurlFull!=null">
-                        <img :src="item.fileurlFull" />
-                      </div>
+                        <div class="desc_data_list_item_img" v-if="item.type == 0 && item.fileurlFull != null">
+                            <img :src="item.fileurlFull" />
+                        </div>
+                        <div class="desc_data_list_item_img" v-if="item.type == 1 && item.fileurlFull != null">
+                            <video controls :src="item.fileurlFull" />
+                        </div>
                       <div class="desc_data_list_item_info">
                         <span>{{ item.name }}</span>
                         <span>鎿嶄綔鍛�-{{ item.creatorName }}</span>
@@ -278,18 +302,19 @@
                       </div>
                     </div>
                   </template>
-                    <div class="desc_data_list_item">
-                      <UploadFileCommon :uploadData="{ folder: 'apply',fileType:'.pdf' }" :fileList="form.fileList1" @uploadSuccess="baoxianFileUploaded" />
-<!--                      <div class="desc_data_list_item_img" style="cursor: pointer; background: #8c939d;">
-                            <i class="el-icon-plus"></i>
-                        </div>-->
-                        <div class="desc_data_list_item_upload">
-                            <el-button type="primary">涓婁紶</el-button>
-                            <el-button>鍙栨秷</el-button>
-                        </div>
-                    </div>
-                    <div class="desc_data_list_item1"></div>
-                    <div class="desc_data_list_item1"></div>
+                    <upload width="100px" height="100px" :list="[]" accept=".png,.jpg,.jpeg,.mp4,.word,.xlsx,.xls,.pdf,.excel" folder="settle" @success="claimsUploadFile($event, 5)" />
+<!--                    <div class="desc_data_list_item">-->
+<!--                      <UploadFileCommon :uploadData="{ folder: 'apply',fileType:'.pdf' }" :fileList="form.fileList1" @uploadSuccess="baoxianFileUploaded" />-->
+<!--&lt;!&ndash;                      <div class="desc_data_list_item_img" style="cursor: pointer; background: #8c939d;">-->
+<!--                            <i class="el-icon-plus"></i>-->
+<!--                        </div>&ndash;&gt;-->
+<!--                        <div class="desc_data_list_item_upload">-->
+<!--                            <el-button type="primary">涓婁紶</el-button>-->
+<!--                            <el-button>鍙栨秷</el-button>-->
+<!--                        </div>-->
+<!--                    </div>-->
+<!--                    <div class="desc_data_list_item1"></div>-->
+<!--                    <div class="desc_data_list_item1"></div>-->
                 </div>
             </div>
             <div class="desc_data">
@@ -298,9 +323,12 @@
                   <template v-if="model.compensationFileList && model.compensationFileList">
                     <div class="desc_data_list_item" v-for="(item, index) in model.compensationFileList" :key="index">
                       <div class="desc_data_list_item_dele" @click="delFile(item.id)">鍒犻櫎</div>
-                      <div class="desc_data_list_item_img" v-if="item.type ==0 && item.fileurlFull!=null">
-                        <img :src="item.fileurlFull" />
-                      </div>
+                        <div class="desc_data_list_item_img" v-if="item.type == 0 && item.fileurlFull != null">
+                            <img :src="item.fileurlFull" />
+                        </div>
+                        <div class="desc_data_list_item_img" v-if="item.type == 1 && item.fileurlFull != null">
+                            <video controls :src="item.fileurlFull" />
+                        </div>
                       <div class="desc_data_list_item_info">
                         <span>{{ item.name }}</span>
                         <span>鎿嶄綔鍛�-{{ item.creatorName }}</span>
@@ -308,17 +336,18 @@
                       </div>
                     </div>
                   </template>
-                    <div class="desc_data_list_item">
-                        <div class="desc_data_list_item_img" style="cursor: pointer; background: #8c939d;">
-                            <i class="el-icon-plus"></i>
-                        </div>
-                        <div class="desc_data_list_item_upload">
-                            <el-button type="primary">涓婁紶</el-button>
-                            <el-button>鍙栨秷</el-button>
-                        </div>
-                    </div>
-                    <div class="desc_data_list_item1"></div>
-                    <div class="desc_data_list_item1"></div>
+                    <upload width="100px" height="100px" :list="[]" accept=".png,.jpg,.jpeg,.mp4,.word,.xlsx,.xls,.pdf,.excel" folder="settle" @success="claimsUploadFile($event, 6)" />
+<!--                    <div class="desc_data_list_item">-->
+<!--                        <div class="desc_data_list_item_img" style="cursor: pointer; background: #8c939d;">-->
+<!--                            <i class="el-icon-plus"></i>-->
+<!--                        </div>-->
+<!--                        <div class="desc_data_list_item_upload">-->
+<!--                            <el-button type="primary">涓婁紶</el-button>-->
+<!--                            <el-button>鍙栨秷</el-button>-->
+<!--                        </div>-->
+<!--                    </div>-->
+<!--                    <div class="desc_data_list_item1"></div>-->
+<!--                    <div class="desc_data_list_item1"></div>-->
                 </div>
             </div>
             <div class="desc_label">
@@ -371,6 +400,10 @@
         <el-button @click="visible=false">杩斿洖</el-button>
       </template>
       <OperaSettleClaimsCheckWindow ref="operaInsuranceApplyCheckWindow"  @success="callback" />
+        <!--    鍦ㄧ嚎鎶ユ    -->
+        <onlineReporting ref="onlineReporting" @success="callback" />
+        <!--    琛ュ厖璇存槑    -->
+        <supplementaryExplanation ref="supplementaryExplanation" @success="callback" />
     </GlobalWindow>
 </template>
 
@@ -380,32 +413,27 @@
     import BaseOpera from '@/components/base/BaseOpera'
     import GlobalWindow from '@/components/common/GlobalWindow'
     import OperaSettleClaimsCheckWindow from '@/components/business/OperaSettleClaimsCheckWindow'
+    import onlineReporting from '@/components/enterprise/onlineReporting'
+    import supplementaryExplanation from '@/components/enterprise/supplementaryExplanation'
+    import upload from '@/components/common/upload'
     import {confirmFile, findById,exportFiles,claimsUploadFile,delFile} from '@/api/business/settleClaims'
+    import { mapState } from 'vuex'
     export default {
         name: 'OperaSettleClaimsWindow',
         extends: BaseOpera,
-        components: { GlobalWindow, OperaSettleClaimsCheckWindow,UploadFileCommon },
+        components: { GlobalWindow, OperaSettleClaimsCheckWindow,UploadFileCommon, onlineReporting, supplementaryExplanation, upload },
         data () {
             return {
-              doneFileDate:null,
-              remarkLogList:[],
-                // 琛ㄥ崟鏁版嵁
-                form: {
-                    id: null,
-                },
-              model:{},
-                // 楠岃瘉瑙勫垯
-                rules: {
-                },
-                activeName: 'first',
-                reverse: true,
-                 file1:null,
-                 file2:null,
-                 file3:null,
-                 file4:null,
-                 file5:null,
-                 file6:null
+              doneFileDate: null,
+              remarkLogList: [],
+              list: [],
+              model: {},
+              activeName: 'first',
+              reverse: true
             }
+        },
+        computed: {
+            ...mapState(['userInfo'])
         },
         created () {
             this.config({
@@ -415,84 +443,95 @@
         },
         methods: {
           open(title,target){
-            this.model ={}
+            this.model = {}
             this.model = target
-            this.title=title
-            this.visible=true
-            this.doneFileDate=null
-            this.remarkLogList=[]
-            this. file1=null
-            this.file2 = null
-            this.file3 = null
-            this.file4 = null
-            this.file5 = null
-            this.file6 = null
+            this.title = title
+            this.visible = true
+            this.doneFileDate = null
+            this.remarkLogList = []
             this.getDetail()
           },
+            // 鍒ゆ柇涓や釜鏃堕棿涔嬮棿鐩稿樊鏄惁
+            contrast24(time1, time2) {
+              if (time1 && time2) {
+                  let a = new Date(time1)
+                  let b = new Date(time2)
+                  let timeDiff = Math.abs(a.getTime() - b.getTime());
+                  return Math.ceil(timeDiff / (3600 * 1000)) <= 24;
+              } else {
+                  return false
+              }
+            },
+            contrast(time1, time2) {
+              if (time1 && time2) {
+                  let a = new Date(time1).getTime()
+                  let b = new Date(time2).getTime()
+                  return a > b
+              } else {
+                  return false
+              }
+            },
+            edit() {
+              let obj = JSON.parse(JSON.stringify(this.model))
+                obj.areaId = obj.areaId.split(',').map(item => Number(item))
+              this.$refs.onlineReporting.open('淇敼淇℃伅', obj)
+            },
           openBaoxiandan(){
             window.open(this.model.baoxiandanFile.fileurlFull);
           },
           delFile(id){
             this.$dialog.messageConfirm('纭鍒犻櫎璇ラ檮浠跺悧锛屼竴鏃﹀垹闄ゆ棤娉曟挙鍥烇紵')
                 .then(() => {
-                  // this.isWorking = true
-                  delFile(this.model.id,id).then(response => {
-                        that.getDetail()
-                      }).catch(err => {
-                    this.$tip.apiFailed(err)
-                  })
+                    delFile(this.model.id, id).then(response => {
+                        this.getDetail()
+                    }).catch(err => {
+                        this.$tip.apiFailed(err)
+                    })
                 })
           },
           getDetail(){
             findById( this.model.id)
                 .then(res => {
-              this.model = res
-              this.remarkLogList=[]
-              var logList = this.model.settleClaimsLogList
-              if(logList){
-                logList.forEach(item => {
-                   if( item.objType==2){
-                     this.doneFileDate = item.createDate
-                   }
-                  if(item.objType==7){
-                    this.remarkLogList.push(item)
+                  this.model = res
+                  this.remarkLogList = []
+                  var logList = this.model.settleClaimsLogList
+                  if (logList) {
+                    logList.forEach(item => {
+                       if (item.objType == 2) {
+                         this.doneFileDate = item.createDate
+                       }
+                      if (item.objType==7) {
+                        this.remarkLogList.push(item)
+                      }
+                    })
                   }
+                }).catch(err => {
 
                 })
-              }
-            }).catch(err => {
-            })
           },
-            handleClick(tab, event) {
-                console.log(tab, event);
+            handleClick(tab) {
+                this.activeName = tab.name
             },
           callback(){
             this.getDetail()
             this.$emit('success')
           },
-          claimsUploadFile(type) {
-            var param = {}
-            if(type == 2){
-              param =  this.file2
-            }else if(type == 3){
-              param =  this.file3
-            }else if(type == 4){
-              param =  this.file4
-            }else if(type == 5){
-              param =  this.file5
-            }else if(type == 6){
-              param =  this.file6
-            }
-             claimsUploadFile(param)
-                    .then(response => {
-                      that.getDetail()
-                    }).catch(err => {
-                  this.$tip.apiFailed(err)
+          claimsUploadFile(e, objType) {
+                claimsUploadFile({
+                    id: this.model.id,
+                    objType,
+                    fileUrl: e.imgaddr,
+                    fileName: e.originname,
+                    fileType: e.type
+                }).then(response => {
+                    this.getDetail()
+                }).catch(err => {
+                    this.$tip.apiFailed(err)
                 })
-              },
+            },
             submit(type) {
-              var that =this
-              if(type ==0){
+              var that = this
+              if (type == 0) {
                 this.$dialog.messageConfirm('鐞嗚禂鏉愭枡鏀堕泦瀹屾垚锛岃鍙婃椂鎻愪氦淇濋櫓鍏徃锛�')
                     .then(() => {
                       // this.isWorking = true
@@ -503,7 +542,7 @@
                         this.$tip.apiFailed(err)
                       })
                     })
-              }else if(type==1){
+              }else if(type == 1){
                 //璧勬枡涓嬭浇
                 this.$dialog.exportConfirm('纭杩涜璧勬枡涓嬭浇鍚楋紵')
                     .then(() => {
@@ -521,10 +560,8 @@
                     .catch(() => {
                     })
               }
-
             }
         }
-
     }
 </script>
 <style>
@@ -617,7 +654,8 @@
                 }
                 .desc_label_left_time {
                     font-size: 14px;
-                    color: rgba(249, 86, 1, 0.996);
+                    color: black;
+                    /*color: rgba(249, 86, 1, 0.996);*/
                     margin-left: 10px;
                 }
                 .desc_label_left_code {
@@ -658,13 +696,20 @@
                     align-items: center;
                     flex-wrap: wrap;
                     .desc_list_item_imgs_video {
-                        width: 150px;
-                        height: 150px;
+                        width: 120px;
+                        height: 120px;
                         background: black;
                         margin-right: 10px;
+                        display: flex;
+                        align-items: center;
+                        justify-content: center;
+                        overflow: hidden;
                         video {
                             width: 100%;
                             height: 100%;
+                        }
+                        img {
+                            width: 100%;
                         }
                     }
                 }
@@ -696,7 +741,6 @@
                 display: flex;
                 align-items: center;
                 flex-wrap: wrap;
-                justify-content: space-between;
                 .desc_data_list_item1 {
                     width: 24.5%;
                 }
@@ -710,6 +754,10 @@
                     justify-content: space-between;
                     position: relative;
                     margin-bottom: 10px;
+                    margin-right: 20px;
+                    &:last-child {
+                        margin-right: 0 !important;
+                    }
                     .desc_data_list_item_dele {
                         position: absolute;
                         top: 10px;
@@ -733,6 +781,7 @@
                         align-items: center;
                         justify-content: center;
                         overflow: hidden;
+                        margin-right: 10px;
                         .el-icon-plus {
                             font-size: 26px;
                             color: #ffffff;
@@ -741,6 +790,9 @@
                             width: 100%;
                             height: 100%;
                         }
+                        video {
+                            width: 100%;
+                        }
                     }
                     .desc_data_list_item_info {
                         flex: 1;
diff --git a/company/src/components/common/upload.vue b/company/src/components/common/upload.vue
new file mode 100644
index 0000000..dd63282
--- /dev/null
+++ b/company/src/components/common/upload.vue
@@ -0,0 +1,140 @@
+<template>
+    <div class="file">
+        <div class="file_list">
+            <div class="file_list_item" :style="{width: width, height: height}" v-for="(item, index) in list" :key="index">
+                <div class="dele" @click="deleItem(index)">
+                    <i class="el-icon-close"></i>
+                </div>
+                <img :src="item.url" v-if="fileType(item.url) === 'img'" />
+                <video controls autoplay :src="item.url" v-else></video>
+            </div>
+            <div class="file_list_item" :style="{width: width, height: height, cursor: 'pointer'}" @click="$refs.file.click()">
+                <i class="el-icon-plus"></i>
+            </div>
+        </div>
+        <input type="file" ref="file" :accept="accept" @change="getFile" />
+    </div>
+</template>
+
+<script>
+    import axios from 'axios';
+    export default {
+        props: {
+            width: {
+                type: String,
+                default: '90px'
+            },
+            height: {
+                type: String,
+                default: '90px'
+            },
+            list: {
+                type: Array,
+                default: []
+            },
+            accept: {
+                type: String,
+                default: ''
+            },
+            folder: {
+                type: String,
+                default: ''
+            }
+        },
+        data() {
+            return {
+                uploadImgUrl: process.env.VUE_APP_API_PREFIX + '/public/upload'
+            }
+        },
+
+        methods: {
+            fileType(url) {
+                if (url.indexOf('.mp4') !== -1) {
+                    return 'video'
+                } else {
+                    return 'img'
+                }
+            },
+            getFile(e) {
+                if (e.target && e.target.files.length > 0) {
+                    const formdate = new FormData()
+                    formdate.append('file', e.target.files[0])
+                    formdate.append('folder', this.folder)
+                    axios.post(this.uploadImgUrl, formdate)
+                        .then(res => {
+                            this.$emit('success', res.data.data)
+                        })
+                        .catch(e => {
+                            this.$message.error(e)
+                        })
+                        .finally(() => {
+                            this.$refs.file.value = null
+                        })
+                }
+            },
+            deleItem(index) {
+                this.$emit('dele', index)
+            }
+        }
+    }
+</script>
+
+<style lang="scss" scoped>
+    .file {
+        /*width: 100%;*/
+        /*height: 90px;*/
+        margin: 10px 0;
+        input {
+            opacity: 0;
+        }
+        .file_list {
+            width: 100%;
+            height: 100%;
+            display: flex;
+            align-items: center;
+            flex-wrap: wrap;
+            .file_list_item {
+                display: flex;
+                flex-direction: column;
+                align-items: center;
+                justify-content: center;
+                overflow: hidden;
+                border-radius: 5px;
+                border: 1px solid #d5d5d5;
+                margin-left: 15px;
+                position: relative;
+                &:first-child {
+                    margin: 0 !important;
+                }
+                .dele {
+                    position: absolute;
+                    right: 0;
+                    top: 0;
+                    width: 20px;
+                    height: 20px;
+                    background: red;
+                    display: flex;
+                    align-items: center;
+                    justify-content: center;
+                    cursor: pointer;
+                    .el-icon-close {
+                        color: #ffffff;
+                        font-size: 19px;
+                    }
+                }
+                .el-icon-plus {
+                    font-size: 30px;
+                    color: black;
+                }
+                img {
+                    width: 100%;
+                }
+                video {
+                    width: 100%;
+                    height: 100%;
+                }
+            }
+        }
+    }
+</style>
+
diff --git a/company/src/components/enterprise/onlineReporting.vue b/company/src/components/enterprise/onlineReporting.vue
new file mode 100644
index 0000000..4943c63
--- /dev/null
+++ b/company/src/components/enterprise/onlineReporting.vue
@@ -0,0 +1,395 @@
+<template>
+    <GlobalWindow
+        :title="title"
+        width="100%"
+        :visible.sync="visible"
+        :confirm-working="isWorking"
+        @confirm="confirm"
+    >
+        <el-form :model="form" ref="form" :rules="rules">
+            <el-form-item label="鍑洪櫓浜哄鍚�" prop="memberId" v-if="!form.id">
+                <el-select v-model="form.memberId" filterable @change="getSolutions" placeholder="璇烽�夋嫨">
+                    <el-option
+                        v-for="item in user"
+                        :key="item.id"
+                        :label="item.name + ' - ' + item.idcardNo"
+                        :value="item.id">
+                    </el-option>
+                </el-select>
+            </el-form-item>
+            <el-form-item label="淇濋櫓鏂规" prop="solutionId" v-if="!form.id">
+                <div style="display: flex; align-items: center;">
+                    <span>{{form.solutionName}}</span>
+                    <el-button type="primary" @click="openS" style="margin-left: 10px;">閫夋嫨鏂规</el-button>
+                </div>
+            </el-form-item>
+            <el-form-item label="娲鹃仯鍗曚綅" prop="duId" v-if="form.duName && !form.id">
+                <span>{{form.duName}}</span>
+            </el-form-item>
+            <el-form-item label="鎵�灞炲伐绉�" prop="worktypeId" v-if="form.worktypeName && !form.id">
+                <span>{{form.worktypeName}}</span>
+            </el-form-item>
+            <el-form-item label="浜嬫晠鍙戠敓鏃堕棿" prop="happenTime" v-if="!form.id">
+                <el-date-picker
+                    v-model="form.happenTime"
+                    type="datetime"
+                    format="yyyy-MM-dd hh:mm:ss"
+                    value-format="yyyy-MM-dd hh:mm:ss"
+                    placeholder="閫夋嫨鏃ユ湡鏃堕棿">
+                </el-date-picker>
+            </el-form-item>
+            <el-form-item label="灏辫瘖鍖荤枟鏈烘瀯" prop="hospital" v-if="!form.id">
+                <el-input v-model="form.hospital" placeholder="璇疯緭鍏�"></el-input>
+            </el-form-item>
+            <el-form-item label="鍑洪櫓鍦板尯" prop="areaId">
+                <el-cascader
+                v-model="form.areaId"
+                :options="area"
+                :props="{ value: 'id', label: 'name', children: 'childAreasList' }"
+                @change="handleChange" />
+            </el-form-item>
+            <el-form-item label="浜嬫晠绫诲瀷" prop="type">
+                <el-radio-group v-model="form.type">
+                    <el-radio :label="0">宸ヤ綔鏈熼棿鍙椾激</el-radio>
+                    <el-radio :label="1">涓婁笅鐝�斾腑鍙椾激</el-radio>
+                    <el-radio :label="2">闈炲伐浣滄椂闂村彈浼�</el-radio>
+                    <el-radio :label="3">鎰忓鍙椾激</el-radio>
+                </el-radio-group>
+            </el-form-item>
+            <el-form-item label="鏄惁浣忛櫌" prop="inHospital">
+                <el-radio-group v-model="form.inHospital">
+                    <el-radio :label="0">鏄�</el-radio>
+                    <el-radio :label="1">鍚�</el-radio>
+                </el-radio-group>
+            </el-form-item>
+            <el-form-item label="鏄惁鏈夊尰鐤椾繚闄�" prop="medicalInsurance">
+                <el-radio-group v-model="form.medicalInsurance">
+                    <el-radio :label="0">鏄�</el-radio>
+                    <el-radio :label="1">鍚�</el-radio>
+                </el-radio-group>
+            </el-form-item>
+            <el-form-item label="浜嬫晠鎻忚堪" prop="content">
+                <el-input type="textarea" :rows="5" placeholder="璇疯緭鍏ュ唴瀹�" v-model="form.content"></el-input>
+            </el-form-item>
+            <el-form-item label="涓婁紶浜嬫晠瑙嗛/鐓х墖" prop="list" v-if="!form.id">
+                <upload :list="form.list" :accept="'.mp4,.jpg,.png,.jpeg'" folder="settle" @dele="deleFile" @success="getData" />
+            </el-form-item>
+            <el-form-item label="鎶ユ浜哄鍚�" prop="informantName">
+                <el-input v-model="form.informantName" placeholder="璇疯緭鍏�"></el-input>
+            </el-form-item>
+            <el-form-item label="鎶ユ浜鸿仈绯绘柟寮�" prop="informantPhone">
+                <el-input maxlength="11" v-model="form.informantPhone" placeholder="璇疯緭鍏�"></el-input>
+            </el-form-item>
+        </el-form>
+        <!--    寮圭獥鎻愰啋    -->
+        <el-dialog
+            title="娓╅Θ鎻愮ず"
+            :modal="false"
+            :close-on-click-modal="false"
+            :show-close="false"
+            :visible.sync="centerDialogVisible"
+            width="50%"
+            center>
+            <div class="fuwenben">
+                    灏婃暚鐨勫鎴凤細
+
+                棣栧厛鎰熻阿鎮ㄥ浜庢垜浠殑淇′换涓庢敮鎸侊紝鎴戜滑寰堣崳骞告垚涓鸿吹鍙哥殑淇濋櫓鍜ㄨ鏈嶅姟鍟嗭紒
+
+                閴翠簬杩戞湡鍑虹幇涓埆瀹㈡埛瀛樺湪锛氬綋澶╂姇淇濆綋澶╁嚭闄╋紙鍗冲厛鍑哄伐浼ゆ垨鎰忓銆佸啀杩涜鎶曚繚鎿嶄綔锛夌殑涓埆璇堥獥淇濋櫓閲戠殑妗堜緥锛岄敊璇娇鐢ㄢ�滃嵆鏃剁敓鏁堚�濇潯娆俱�傞拡瀵规绉嶆儏鍐垫湰鍏徃閮戦噸鍛婄煡鍚勪綅瀹㈡埛:
+
+                1.璇堥獥淇濋櫓閲戠殑琛屼负灞炰簬杩濇硶琛屼负,涓�鏃﹀彂鐜�,鏈叕鍙稿皢鎻愪氦鍏畨鏈哄叧澶勭悊骞朵繚鐣欒拷绌舵硶寰嬭矗浠伙紱
+
+                2.涓轰簡椤哄埄鐞嗚禂缁撴,鎸夌収淇濋櫓鍏徃鐨勭悊璧斿鏌ヨ姹�,褰撳ぉ鎶曚繚褰撳ぉ鍑洪櫓闇�瑕佹彁渚涘嚭闄╃洃鎺ц棰戞垨鑰呰兘浣愯瘉鍏蜂綋鏃堕棿鐐圭殑浠讳綍璇佹嵁锛�
+
+                3.璇锋偍娣卞埢鐞嗚В淇濋櫓涓�滃瀹炲憡鐭モ�濈殑鎶曚繚浜轰箟鍔★紝鎴戜滑鑷村姏浜庝负鎮ㄨ浆绉荤敤宸ラ闄╁拰娉曞緥椋庨櫓銆備絾杩欎竴鍒囩殑鍓嶆彁鏄細鍚堣鍚堟硶鍚堢悊銆�
+
+                闄勪欢涓�锛�
+
+                銆婁腑鍗庝汉姘戝叡鍜屽浗鍒戞硶銆嬬涓�鐧句節鍗佸叓鏉� 銆愪繚闄╄瘓楠楃姜銆戞湁涓嬪垪鎯呭舰涔嬩竴锛岃繘琛屼繚闄╄瘓楠楁椿鍔紝鏁伴杈冨ぇ鐨勶紝澶勪簲骞翠互涓嬫湁鏈熷緬鍒戞垨鑰呮嫎褰癸紝 骞跺涓�涓囧厓浠ヤ笂鍗佷竾鍏冧互涓嬬綒閲戯紱鏁伴宸ㄥぇ鎴栬�呮湁鍏朵粬涓ラ噸鎯呰妭鐨勶紝澶勪簲骞翠互涓婂崄骞翠互涓嬫湁鏈熷緬鍒戯紝骞跺浜屼竾鍏冧互涓婁簩鍗佷竾鍏冧互涓嬬綒閲戯紱鏁伴鐗瑰埆宸ㄥぇ鎴栬�呮湁鍏朵粬鐗瑰埆涓ラ噸鎯呰妭鐨勶紝澶勫崄骞翠互涓婃湁鏈熷緬 鍒戯紝骞跺浜屼竾鍏冧互涓婁簩鍗佷竾鍏冧互涓嬬綒閲戞垨鑰呮病鏀惰储浜э細
+
+                锛堜竴锛夋姇淇濅汉鏁呮剰铏氭瀯淇濋櫓鏍囩殑锛岄獥鍙栦繚闄╅噾鐨勶紱
+
+                锛堜簩锛夋姇淇濅汉銆佽淇濋櫓浜烘垨鑰呭彈鐩婁汉瀵瑰彂鐢熺殑淇濋櫓浜嬫晠缂栭�犺櫄鍋囩殑鍘熷洜鎴栬�呭じ澶ф崯澶辩殑绋嬪害锛岄獥鍙栦繚闄╅噾鐨勶紱
+
+                锛堜笁锛夋姇淇濅汉銆佽淇濋櫓浜烘垨鑰呭彈鐩婁汉缂栭�犳湭鏇惧彂鐢熺殑淇濋櫓浜嬫晠锛岄獥鍙栦繚闄╅噾鐨勶紱
+
+                锛堝洓锛夋姇淇濅汉銆佽淇濋櫓浜烘晠鎰忛�犳垚璐骇鎹熷け鐨勪繚闄╀簨鏁咃紝楠楀彇淇濋櫓閲戠殑锛�
+
+                锛堜簲锛夋姇淇濅汉銆佸彈鐩婁汉鏁呮剰閫犳垚琚繚闄╀汉姝讳骸銆佷激娈嬫垨鑰呯柧鐥咃紝楠楀彇淇濋櫓閲戠殑銆�
+
+                鏈夊墠娆剧鍥涢」銆佺浜旈」鎵�鍒楄涓猴紝鍚屾椂鏋勬垚鍏朵粬鐘姜鐨勶紝渚濈収鏁扮姜骞剁綒鐨勮瀹氬缃氥�� 鍗曚綅鐘涓�娆剧姜鐨勶紝瀵瑰崟浣嶅垽澶勭綒閲戯紝骞跺鍏剁洿鎺ヨ礋璐g殑涓荤浜哄憳鍜� 鍏朵粬鐩存帴璐d换浜哄憳锛屽浜斿勾浠ヤ笅鏈夋湡寰掑垜鎴栬�呮嫎褰癸紱鏁伴宸ㄥぇ鎴栬�呮湁 鍏朵粬涓ラ噸鎯呰妭鐨勶紝澶勪簲骞翠互涓婂崄骞翠互涓嬫湁鏈熷緬鍒戯紱鏁伴鐗瑰埆宸ㄥぇ鎴栬�� 鏈夊叾浠栫壒鍒弗閲嶆儏鑺傜殑锛屽鍗佸勾浠ヤ笂鏈夋湡寰掑垜銆� 淇濋櫓浜嬫晠鐨勯壌瀹氫汉銆佽瘉鏄庝汉銆佽储浜ц瘎浼颁汉鏁呮剰鎻愪緵铏氬亣鐨勮瘉鏄庢枃浠讹紝涓轰粬浜鸿瘓楠楁彁渚涙潯浠剁殑锛屼互淇濋櫓璇堥獥鐨勫叡鐘澶勩��
+
+                闄勪欢浜岋細
+
+                銆婁腑鍗庝汉姘戝叡鍜屽浗淇濋櫓娉曘�嬬浜屽崄涓冩潯 鏈彂鐢熶繚闄╀簨鏁咃紝琚繚闄╀汉鎴栬�呭彈鐩婁汉璋庣О鍙戠敓浜嗕繚闄╀簨鏁咃紝鍚戜繚闄╀汉鎻愬嚭璧斿伩鎴栬�呯粰浠樹繚闄╅噾璇锋眰鐨勶紝淇濋櫓浜烘湁鏉冭В闄ゅ悎鍚岋紝骞朵笉閫�杩樹繚闄╄垂銆�
+
+                鎶曚繚浜恒�佽淇濋櫓浜烘晠鎰忓埗閫犱繚闄╀簨鏁呯殑锛屼繚闄╀汉鏈夋潈瑙i櫎鍚堝悓锛屼笉鎵挎媴璧斿伩鎴栬�呯粰浠樹繚闄╅噾鐨勮矗浠伙紱闄ゆ湰娉曠鍥涘崄涓夋潯瑙勫畾澶栵紝涓嶉��杩樹繚闄╄垂銆�
+
+                淇濋櫓浜嬫晠鍙戠敓鍚庯紝鎶曚繚浜恒�佽淇濋櫓浜烘垨鑰呭彈鐩婁汉浠ヤ吉閫犮�佸彉閫犵殑鏈夊叧璇佹槑銆佽祫鏂欐垨鑰呭叾浠栬瘉鎹紝缂栭�犺櫄鍋囩殑浜嬫晠鍘熷洜鎴栬�呭じ澶ф崯澶辩▼搴︾殑锛屼繚闄╀汉瀵瑰叾铏氭姤鐨勯儴鍒嗕笉鎵挎媴璧斿伩鎴栬�呯粰浠樹繚闄╅噾鐨勮矗浠汇��
+
+                鎶曚繚浜恒�佽淇濋櫓浜烘垨鑰呭彈鐩婁汉鏈夊墠涓夋瑙勫畾琛屼负涔嬩竴锛岃嚧浣夸繚闄� 浜烘敮浠樹繚闄╅噾鎴栬�呮敮鍑鸿垂鐢ㄧ殑锛屽簲褰撴挙閿�鎴栬�呰禂鍋裤��
+            </div>
+            <span slot="footer" class="dialog-footer">
+                <el-button type="primary" @click="centerDialogVisible = false">鎴戝凡鐭ユ檽</el-button>
+            </span>
+        </el-dialog>
+        <!--    閫夋嫨淇濋櫓鏂规    -->
+        <selectSolutions ref="selectSolutions" @success="getVal" />
+    </GlobalWindow>
+</template>
+
+<script>
+    import BaseOpera from '@/components/base/BaseOpera'
+    import GlobalWindow from '@/components/common/GlobalWindow'
+    import upload from '@/components/common/upload'
+    import selectSolutions from '@/components/enterprise/selectSolutions'
+    import { findListByDTO } from '@/api/business/member'
+    import { findList } from '@/api/business/applyChange'
+    import { findTreeList } from '@/api/system/common'
+    import { create, updateById } from '@/api/business/settleClaims'
+    export default {
+        name: 'onlineReporting',
+        extends: BaseOpera,
+        components: { GlobalWindow, upload, selectSolutions },
+        data () {
+            return {
+                form: {
+                    id: null,
+                    insuranceApplyId: '',
+                    memberId: '',
+                    solutionId: '',
+                    solutionName: '',
+                    duId: '',
+                    duName: '',
+                    worktypeId: '',
+                    worktypeName: '',
+                    happenTime: '',
+                    hospital: '',
+                    areaId: '',
+                    areaInfo: '',
+                    type: 0,
+                    inHospital: 0,
+                    medicalInsurance: 0,
+                    content: '',
+                    informantName: '',
+                    informantPhone: '',
+                    list: [],
+                    reportFileList: []
+                },
+                rules: {
+                    memberId: [
+                        { required: true, message: '璇烽�夋嫨鍑洪櫓浜�' }
+                    ],
+                    solutionId: [
+                        { required: true, message: '璇烽�夋嫨淇濋櫓鏂规' }
+                    ],
+                    duId: [
+                        { required: true, message: '璇烽�夋嫨娲鹃仯鍗曚綅' }
+                    ],
+                    worktypeId: [
+                        { required: true, message: '璇烽�夋嫨鎵�灞炲伐绉�' }
+                    ],
+                    happenTime: [
+                        { required: true, message: '璇烽�夋嫨浜嬫晠鍙戠敓鏃堕棿' }
+                    ],
+                    type: [
+                        { required: true, message: '璇烽�夋嫨浜嬫晠绫诲瀷' }
+                    ],
+                    inHospital: [
+                        { required: true, message: '璇烽�夋嫨鏄惁浣忛櫌' }
+                    ],
+                    medicalInsurance: [
+                        { required: true, message: '璇烽�夋嫨鏄惁鏈夊尰鐤椾繚闄�' }
+                    ],
+                    content: [
+                        { required: true, message: '璇疯緭鍏ヤ簨鏁呮弿杩�' }
+                    ],
+                    informantName: [
+                        { required: true, message: '璇疯緭鍏ユ姤妗堜汉濮撳悕' }
+                    ],
+                    informantPhone: [
+                        { required: true, message: '璇疯緭鍏ユ姤妗堜汉鑱旂郴鏂瑰紡' }
+                    ]
+                },
+                centerDialogVisible: false,
+                user: [],
+                options: [],
+                area: []
+            }
+        },
+        created () {
+            this.config({
+                api: '/business/settleClaims',
+                'field.id': 'id'
+            })
+        },
+        methods: {
+            open (title, target) {
+                this.title = title
+                this.visible = true
+                this.form.list = []
+                this.form.reportFileList = []
+                this.getUser()
+                this.getArea()
+                // 鏂板缓
+                if (target == null) {
+                    this.$nextTick(() => {
+                        this.$refs.form.resetFields()
+                        this.form[this.configData['field.id']] = null
+                        setTimeout(() => {
+                            this.centerDialogVisible = true
+                        }, 300)
+                    })
+                    return
+                }
+                // 缂栬緫
+                this.$nextTick(() => {
+                    for (const key in this.form) {
+                        this.form[key] = target[key]
+                    }
+                })
+            },
+            handleTreeData(data) {
+                for (var i = 0; i < data.length; i++) {
+                    if (data[i].childAreasList.length < 1) {
+                        data[i].childAreasList = undefined; // 鐪嬪悗绔繑鐨勬槸child瀛楁杩樻槸children瀛楁锛岃嚜琛屾敼鍙�
+                    } else {
+                        this.handleTreeData(data[i].childAreasList) // children鑻ヤ笉涓虹┖鏁扮粍锛屽垯缁х画 閫掑綊璋冪敤 鏈柟娉�
+                    }
+                }
+                return data;
+            },
+            __confirmEdit () {
+                this.$refs.form.validate((valid) => {
+                    if (!valid) {
+                        return
+                    }
+                    // 璋冪敤鏂板缓鎺ュ彛
+                    this.isWorking = true
+                    let obj = JSON.parse(JSON.stringify(this.form))
+                    obj.areaId = obj.areaId.join(',')
+                    updateById(obj)
+                        .then(() => {
+                            this.visible = false
+                            this.$tip.apiSuccess('淇敼鎴愬姛')
+                            this.$emit('success')
+                        })
+                        .catch(e => {
+                            this.$tip.apiFailed(e)
+                        })
+                        .finally(() => {
+                            this.isWorking = false
+                        })
+                })
+            },
+            __confirmCreate () {
+                this.$refs.form.validate((valid) => {
+                    if (!valid) {
+                        return
+                    }
+                    // 璋冪敤鏂板缓鎺ュ彛
+                    this.isWorking = true
+                    let obj = JSON.parse(JSON.stringify(this.form))
+                    obj.areaId = obj.areaId.join(',')
+                    create(obj)
+                        .then(() => {
+                            this.visible = false
+                            this.$tip.apiSuccess('鏂板缓鎴愬姛')
+                            this.$emit('success')
+                        })
+                        .catch(e => {
+                            this.$tip.apiFailed(e)
+                        })
+                        .finally(() => {
+                            this.isWorking = false
+                        })
+                })
+            },
+            // 鏌ヨ鍖哄煙鏁版嵁
+            getArea() {
+                findTreeList({})
+                    .then(res => {
+                        this.area = this.handleTreeData(res)
+                    })
+            },
+            getVal(e) {
+                this.form.insuranceApplyId = e.applyId
+                this.form.solutionId = e.solutionId
+                this.form.solutionName = e.solutionName
+                this.form.duId = e.duId
+                this.form.duName = e.duName
+                this.form.worktypeId = e.worktypeId
+                this.form.worktypeName = e.worktypeName
+            },
+            openS() {
+                if (!this.form.memberId) {
+                    this.$message.warning('璇峰厛閫夋嫨鍑洪櫓浜�')
+                    return
+                }
+                this.$refs.selectSolutions.open('閫夋嫨淇濋櫓鏂规', this.form.memberId)
+            },
+            getUser() {
+                findListByDTO({})
+                    .then(res => {
+                        this.user = res
+                    })
+            },
+            getSolutions(id) {
+                findList({ memberId: id })
+                    .then(res => {
+                        this.form.solutionId = ''
+                        this.form.worktypeId = ''
+                        this.form.duId = ''
+                        this.options = res
+                    })
+            },
+            getTreeName(list, id){
+                let _this = this
+                for (let i = 0; i < list.length; i++) {
+                    let a = list[i]
+                    if (a.id === id) {
+                        return a.name
+                    } else {
+                        if (a.childAreasList && a.childAreasList.length > 0) {
+                            let res = _this.getTreeName(a.childAreasList, id)
+                            if (res) {
+                                return res
+                            }
+                        }
+                    }
+                }
+            },
+            handleChange(value) {
+                let info = ''
+                value.forEach(item => {
+                    info += this.getTreeName(this.area, item)
+                })
+                this.form.areaInfo = info
+            },
+            getData(data) {
+                this.form.list.push(data)
+                this.form.reportFileList.push({
+                    fileurl: data.imgaddr,
+                    name: data.originname,
+                    type: data.type
+                })
+            },
+            deleFile(index) {
+                this.form.reportFileList.splice(index, 1)
+                this.form.list.splice(index, 1)
+            }
+        }
+    }
+</script>
+
+<style lang="scss" scoped>
+    .fuwenben {
+        width: 100%;
+        height: 400px;
+        font-size: 16px;
+        color: black;
+        overflow-y: scroll;
+        word-break: break-all;
+        overflow-wrap: break-word;
+    }
+</style>
diff --git a/company/src/components/enterprise/selectSolutions.vue b/company/src/components/enterprise/selectSolutions.vue
new file mode 100644
index 0000000..49d664e
--- /dev/null
+++ b/company/src/components/enterprise/selectSolutions.vue
@@ -0,0 +1,113 @@
+<template>
+    <GlobalWindow
+        :title="title"
+        width="100%"
+        :visible.sync="visible"
+        :confirm-working="isWorking"
+        @confirm="confirm"
+    >
+        <el-table
+            :data="list"
+            border
+            ref="table"
+            @selection-change="handleSelectionChange"
+            style="width: 100%">
+            <el-table-column
+                type="selection"
+                width="55">
+            </el-table-column>
+            <el-table-column label="搴忓彿" width="80px">
+                <template slot-scope="scope">
+                    <span>{{scope.$index + 1}}</span>
+                </template>
+            </el-table-column>
+            <el-table-column
+                prop="solutionName"
+                label="淇濋櫓鏂规">
+            </el-table-column>
+            <el-table-column
+                prop="bdCode"
+                label="淇濆崟鍙�">
+            </el-table-column>
+            <el-table-column
+                prop="applyChangeId"
+                label="鎵瑰崟鍙�">
+            </el-table-column>
+            <el-table-column
+                prop="duName"
+                label="娲鹃仯鍗曚綅">
+            </el-table-column>
+            <el-table-column
+                prop="worktypeName"
+                label="鎵�灞炲伐绉�">
+            </el-table-column>
+            <el-table-column
+                prop="startTime"
+                label="淇濋櫓鐢熸晥璧锋湡">
+            </el-table-column>
+            <el-table-column
+                prop="endTime"
+                label="淇濋櫓鐢熸晥姝㈡湡">
+            </el-table-column>
+        </el-table>
+    </GlobalWindow>
+</template>
+
+<script>
+    import BaseOpera from '@/components/base/BaseOpera'
+    import GlobalWindow from '@/components/common/GlobalWindow'
+    import { findList } from '@/api/business/member'
+    export default {
+        name: 'selectSolutions',
+        extends: BaseOpera,
+        components: { GlobalWindow },
+        data () {
+            return {
+                id: null,
+                list: [],
+                seleData: []
+            }
+        },
+        created () {
+            this.config({
+                api: '/business/dispatchUnit',
+                'field.id': 'id'
+            })
+        },
+        methods: {
+            open (title, id) {
+                this.list = []
+                this.seleData = []
+                this.id = id
+                this.title = title
+                this.visible = true
+                this.getList()
+            },
+            confirm() {
+                this.$emit('success', this.seleData[0])
+                this.visible = false
+            },
+            handleSelectionChange (rows) {
+                if (rows.length > 1) {
+                    this.$refs.table.clearSelection()
+                    this.$refs.table.toggleRowSelection(rows.pop())
+                }
+                this.seleData = rows
+                console.log(this.seleData)
+            },
+            getList() {
+                findList({
+                    memberId: this.id
+                }).then(res => {
+                    this.list = res
+                })
+            }
+        }
+    }
+</script>
+
+<style lang="scss" scoped>
+    .el-checkbox::v-deep {
+        display: none;
+    }
+</style>
diff --git a/company/src/components/enterprise/supplementaryExplanation.vue b/company/src/components/enterprise/supplementaryExplanation.vue
new file mode 100644
index 0000000..047e872
--- /dev/null
+++ b/company/src/components/enterprise/supplementaryExplanation.vue
@@ -0,0 +1,76 @@
+<template>
+    <GlobalWindow
+        :title="title"
+        width="40%"
+        :visible.sync="visible"
+        :confirm-working="isWorking"
+        @confirm="confirm"
+    >
+        <el-form :model="form" :rules="rules" ref="form" label-width="100px" class="demo-ruleForm">
+            <el-form-item label="琛ュ厖璇存槑" prop="supplement">
+                <el-input type="textarea" :rows="5" placeholder="璇疯緭鍏�" v-model="form.supplement"></el-input>
+            </el-form-item>
+        </el-form>
+    </GlobalWindow>
+</template>
+
+<script>
+    import BaseOpera from '@/components/base/BaseOpera'
+    import GlobalWindow from '@/components/common/GlobalWindow'
+    import { supplement } from '@/api/business/settleClaims'
+    export default {
+        name: 'supplementaryExplanation',
+        extends: BaseOpera,
+        components: { GlobalWindow },
+        data () {
+            return {
+                form: {
+                    id: null,
+                    supplement: ''
+                },
+                rules: {
+                    supplement: [
+                        { required: true, message: '璇疯緭鍏ヨˉ鍏呰鏄�' }
+                    ]
+                }
+            }
+        },
+        methods: {
+            open (title, id) {
+                this.title = title
+                this.form.id = id
+                this.form.supplement = ''
+                this.visible = true
+            },
+            confirm() {
+                this.$refs.form.validate((valid) => {
+                    if (!valid) {
+                        return
+                    }
+                    // 璋冪敤鏂板缓鎺ュ彛
+                    this.isWorking = true
+                    supplement({
+                        objType: 0,
+                        supplement: this.form.supplement,
+                        id: this.form.id,
+
+                    }).then(() => {
+                        this.visible = false
+                        this.$tip.apiSuccess('淇敼鎴愬姛')
+                        this.$emit('success')
+                    })
+                    .catch(e => {
+                        this.$tip.apiFailed(e)
+                    })
+                    .finally(() => {
+                        this.isWorking = false
+                    })
+                })
+            }
+        }
+    }
+</script>
+
+<style lang="scss" scoped>
+
+</style>
diff --git a/company/src/utils/request.js b/company/src/utils/request.js
index 9821bd0..2673a72 100644
--- a/company/src/utils/request.js
+++ b/company/src/utils/request.js
@@ -3,7 +3,7 @@
 import pkg from '../../package'
 import { trim } from './util'
 import cache from '../plugins/cache'
-import { Message } from 'element-ui'
+import { Message, Loading } from 'element-ui'
 
 axios.defaults.headers.common['Content-Type'] = 'application/json;charset=UTF-8'
 const axiosInstance = axios.create({
@@ -41,7 +41,6 @@
 
 // 鏂板缓鍝嶅簲鎷︽埅鍣�
 axiosInstance.interceptors.response.use((response) => {
-  
   // console.log(response.status)
   // debugger
   // 璇锋眰澶辫触
diff --git a/company/src/views/business/settleClaims.vue b/company/src/views/business/settleClaims.vue
index ff71af1..480ee90 100644
--- a/company/src/views/business/settleClaims.vue
+++ b/company/src/views/business/settleClaims.vue
@@ -9,7 +9,7 @@
                 <el-input v-model="searchForm.memberIdcardNo" placeholder="璇疯緭鍏�" @keypress.enter.native="search"></el-input>
             </el-form-item>
             <el-form-item label="鎶ユ鍗曚綅" prop="companyId" v-if="userInfo.type === 0">
-                <el-select v-model="searchForm.companyId" placeholder="璇烽�夋嫨" @keypress.enter.native="search">
+                <el-select v-model="searchForm.companyId" placeholder="璇烽�夋嫨" @change="search">
                     <el-option
                         v-for="item in companyList"
                         :key="item.id"
@@ -19,7 +19,7 @@
                 </el-select>
             </el-form-item>
             <el-form-item label="淇濋櫓鏂规" prop="baseSolutionId">
-                <el-select v-model="searchForm.baseSolutionId" placeholder="璇烽�夋嫨" @keypress.enter.native="search">
+                <el-select v-model="searchForm.baseSolutionId" placeholder="璇烽�夋嫨" @change="search">
                     <el-option
                         v-for="item in solutionList"
                         :key="item.id"
@@ -29,7 +29,7 @@
                 </el-select>
             </el-form-item>
             <el-form-item label="妗堜欢鐘舵��" prop="status">
-                <el-select v-model="searchForm.status" placeholder="璇烽�夋嫨" @keypress.enter.native="search">
+                <el-select v-model="searchForm.status" placeholder="璇烽�夋嫨" @change="search">
                     <el-option label="澶勭悊涓�" value="0"></el-option>
                     <el-option label="宸叉挙妗�" value="1"></el-option>
                     <el-option label="宸茬粨妗�" value="2"></el-option>
@@ -45,6 +45,9 @@
         </el-form>
         <!-- 琛ㄦ牸鍜屽垎椤� -->
         <template v-slot:table-wrap>
+            <ul class="toolbar" v-if="userInfo.type === 1">
+                <li><el-button type="primary" @click="$refs.onlineReporting.open('鎻愪氦鎶ユ')">鍦ㄧ嚎鎶ユ</el-button></li>
+            </ul>
             <el-table
                 v-loading="isWorking.search"
                 :data="tableData.list"
@@ -78,7 +81,7 @@
                     fixed="right"
                 >
                     <template slot-scope="{row}">
-                        <el-button type="text" @click="$refs.operaSettleClaimsWindow.open('鎶ユ鐞嗚禂鐢宠琛�', row)" icon="el-icon-view" v-permissions="['business:settleclaims:update']">鏌ョ湅璇︽儏</el-button>
+                        <el-button type="text" @click="$refs.operaSettleClaimsWindow.open('鎶ユ璇︽儏', row)" v-permissions="['business:settleclaims:update']">鏌ョ湅璇︽儏</el-button>
                     </template>
                 </el-table-column>
             </el-table>
@@ -89,8 +92,10 @@
             >
             </pagination>
         </template>
-        <!-- 鏂板缓/淇敼 -->
+        <!-- 璇︽儏 -->
         <OperaSettleClaimsWindow ref="operaSettleClaimsWindow" @success="handlePageChange"/>
+        <!--    鍦ㄧ嚎鎶ユ    -->
+        <onlineReporting ref="onlineReporting" @success="handlePageChange" />
     </TableLayout>
 </template>
 
@@ -99,13 +104,14 @@
     import TableLayout from '@/layouts/TableLayout'
     import Pagination from '@/components/common/Pagination'
     import OperaSettleClaimsWindow from '@/components/business/OperaSettleClaimsWindow'
+    import onlineReporting from '@/components/enterprise/onlineReporting'
     import {all as solutionAll} from '@/api/business/solutions'
     import {pageAll as companyAll} from '@/api/business/company'
     import { mapState } from 'vuex'
     export default {
         name: 'SettleClaims',
         extends: BaseTable,
-        components: { TableLayout, Pagination, OperaSettleClaimsWindow },
+        components: { TableLayout, Pagination, OperaSettleClaimsWindow, onlineReporting },
         data () {
             return {
                 // 鎼滅储
diff --git a/company/src/views/enterprise/add_subtract.vue b/company/src/views/enterprise/add_subtract.vue
index 43dcd66..9f45503 100644
--- a/company/src/views/enterprise/add_subtract.vue
+++ b/company/src/views/enterprise/add_subtract.vue
@@ -42,9 +42,12 @@
         </el-form>
         <!-- 琛ㄦ牸鍜屽垎椤� -->
         <template v-slot:table-wrap>
+<<<<<<< HEAD
+=======
             <ul class="toolbar" v-permissions="['business:applychange:create']">
                 <li><el-button type="primary" @click="$refs.operaApplyChangeWindow.open('鏂板缓')" v-permissions="['business:applychange:create']">鏂板缓</el-button></li>
             </ul>
+>>>>>>> 48eb5dc61ac07d232632b13d040006128ed5cceb
             <el-table
                 v-loading="isWorking.search"
                 :data="tableData.list"

--
Gitblit v1.9.3