From 90ee34919cdfd5f5552f9a6706004af198101b52 Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期二, 27 五月 2025 09:06:02 +0800
Subject: [PATCH] 提交
---
company/src/components/business/compensationDetails.vue | 1
company/src/views/business/settleClaims.vue | 18 +++
company/src/components/common/previewArea.vue | 109 +++++++++++++++++++++
company/src/components/business/OperaSettleClaimsWindow.vue | 170 ++++++++++++++++-----------------
4 files changed, 209 insertions(+), 89 deletions(-)
diff --git a/company/src/components/business/OperaSettleClaimsWindow.vue b/company/src/components/business/OperaSettleClaimsWindow.vue
index 922b4f5..64359a7 100644
--- a/company/src/components/business/OperaSettleClaimsWindow.vue
+++ b/company/src/components/business/OperaSettleClaimsWindow.vue
@@ -19,39 +19,53 @@
</div>
</div>
</div>
- <template v-if="userInfo.type === 1">
- <div class="box_tui">
- <span class="box_tui_status">宸查��鍥�</span>
- <div class="box_tui_title">閫�鍥炶鏄�</div>
- <div class="box_tui_info">鏃堕棿锛�2025-03-11 12:23</div>
- <div class="box_tui_info">浜哄憳锛氬钩鍙扮悊璧斾汉鍛�-寮犱笁-18876784433</div>
- <div class="box_tui_row"><div class="yuan"></div>浣忛櫌鐥呭巻鏉愭枡涓嶅畬鏁达紝璇疯ˉ鍏�2025骞�1鏈�1鏃ヨ嚦2鏈�1鏃ユ棩鏈熼棿鐨勪綇闄㈣褰�</div>
+ <div class="box_dk" v-if="[13].includes(info.status)">
+ <div class="box_dk_title">
+ <i class="el-icon-success"></i>
+ <span>宸叉墦娆�</span>
</div>
- <div class="box_dk" v-if="info.status === 13">
- <div class="box_dk_title">
- <i class="el-icon-success"></i>
- <span>宸叉墦娆�</span>
+ <div class="box_dk_list">
+ <div class="box_dk_list_row">
+ <div class="box_dk_list_row_label">鎵撴鏃堕棿锛�</div>
+ <div class="box_dk_list_row_value">{{info.refuseSettleClaimsLog.createDate}}</div>
</div>
- <div class="box_dk_list">
- <div class="box_dk_list_row">
- <div class="box_dk_list_row_label">鎵撴鏃堕棿锛�</div>
- <div class="box_dk_list_row_value">2025-06-08 09:52</div>
- </div>
- <div class="box_dk_list_row">
- <div class="box_dk_list_row_label">鎵撴璇存槑锛�</div>
- <div class="box_dk_list_row_value">杩欓噷鏄墦娆捐鏄�</div>
- </div>
- <div class="box_dk_list_row">
- <div class="box_dk_list_row_label">鎵撴鍑瘉锛�</div>
- <div class="box_dk_list_row_l">
- <div class="box_dk_list_row_l_img">
- <img src="" alt="">
- </div>
+ <div class="box_dk_list_row">
+ <div class="box_dk_list_row_label">鎵撴璇存槑锛�</div>
+ <div class="box_dk_list_row_value">{{info.refuseSettleClaimsLog.content}}</div>
+ </div>
+ <div class="box_dk_list_row">
+ <div class="box_dk_list_row_label">鎵撴鍑瘉锛�</div>
+ <div class="box_dk_list_row_l" v-if="info.payFileList">
+ <div class="box_dk_list_row_l_img" v-for="(item, index) in info.payFileList" :key="index">
+ <img :src="item.fileurlFull" alt="">
</div>
</div>
</div>
</div>
- <div class="box_comInfo" v-if="[10,11,12].includes(info.status)">
+ </div>
+ <template v-if="userInfo.type === 1">
+ <div class="box_tui" v-if="[9].includes(info.status) && info.waitSupplement === 1">
+ <span class="box_tui_status" style="background-color: rgba(255,162,63,0.15); color: #FFA23F;">鏉愭枡琛ュ厖</span>
+ <div class="box_tui_title">琛ュ厖璇存槑</div>
+ <div class="box_tui_info">鏃堕棿锛歿{info.refuseSettleClaimsLog.createDate}}</div>
+ <div class="box_tui_info">浜哄憳锛氬钩鍙扮悊璧斾汉鍛�-{{info.refuseSettleClaimsLog.creatorName}}</div>
+ <div class="box_tui_row"><div class="yuan"></div>{{info.refuseSettleClaimsLog.content}}</div>
+ </div>
+ <div class="box_tui" v-if="[6].includes(info.status)">
+ <span class="box_tui_status">宸叉嫆缁�</span>
+ <div class="box_tui_title">鎷掔粷鍘熷洜</div>
+ <div class="box_tui_info">鏃堕棿锛歿{info.refuseSettleClaimsLog.createDate}}</div>
+ <div class="box_tui_info">浜哄憳锛氬钩鍙扮悊璧斾汉鍛�-{{info.refuseSettleClaimsLog.creatorName}}</div>
+ <div class="box_tui_row"><div class="yuan"></div>{{info.refuseSettleClaimsLog.content}}</div>
+ </div>
+ <div class="box_tui" v-if="[4].includes(info.status)">
+ <span class="box_tui_status">宸查��鍥�</span>
+ <div class="box_tui_title">閫�鍥炶鏄�</div>
+ <div class="box_tui_info">鏃堕棿锛歿{info.refuseSettleClaimsLog.createDate}}</div>
+ <div class="box_tui_info">浜哄憳锛氬钩鍙扮悊璧斾汉鍛�-{{info.refuseSettleClaimsLog.creatorName}}</div>
+ <div class="box_tui_row"><div class="yuan"></div>{{info.refuseSettleClaimsLog.content}}</div>
+ </div>
+ <div class="box_comInfo" v-if="[10,11,12,13].includes(info.status)">
<div class="box_comInfo_title">
<i class="el-icon-info"></i>
<span>閲嶈鎻愮ず</span>
@@ -62,8 +76,10 @@
<span>鈥� 濡傛湁鐤戦棶璇峰強鏃惰仈绯诲鏈� 0551-77738493</span>
</div>
</div>
- <div class="box_price" v-if="[10,11,12].includes(info.status)">
- <span class="box_price_title">璧斾粯閲戦{{[11].includes(info.status) ? '寰呯‘璁�' : '宸茬‘璁�'}}</span>
+ <div class="box_price" v-if="[10,11,12,13].includes(info.status)">
+ <span class="box_price_title" v-if="[11].includes(info.status) && info.feeUpdate === 1">璧斾粯閲戦宸插彉鏇�</span>
+ <span class="box_price_title" v-else-if="[11].includes(info.status) && info.feeUpdate === 0">璧斾粯閲戦宸茬‘璁�</span>
+ <span class="box_price_title" v-else>璧斾粯閲戦宸茬‘璁�</span>
<span class="box_price_jine">楼{{info.hpAccount + info.hpOtherAccount}}</span>
<el-button type="text" style="margin-bottom: 5px;" @click="$refs.compensationDetails.open('璧斾粯璇︽儏', info.hpAccountContent)">鏌ョ湅璧斾粯璇︽儏</el-button>
<el-button type="primary" @click="confirmFeeInfo" v-if="[11].includes(info.status)">纭</el-button>
@@ -92,11 +108,37 @@
</div>
</div>
</template>
- <div class="box_desc" v-if="[9,10].includes(info.status)">
+ <div class="box_desc" v-if="[11,12,13].includes(info.status) && userInfo.type === 0">
+ <div class="box_desc_head">
+ <div class="box_desc_title" v-if="[11].includes(info.status)">
+ <i class="el-icon-success" style="color: #FF9502;"></i>
+ <span class="box_desc_title_val" style="color: #FF9502;">鏍歌禂寰呯‘璁�</span>
+ </div>
+ <div class="box_desc_title" v-else>
+ <i class="el-icon-success" style="color: #34C758;"></i>
+ <span class="box_desc_title_val" style="color: #34C758;">鏍歌禂宸茬‘璁�</span>
+ </div>
+ </div>
+ <div class="box_desc_ls">
+ <span>鏍歌禂璧斾粯閲戦鍚堣锛�</span>
+ <span>楼{{info.hpAccount + info.hpOtherAccount}}</span>
+ </div>
+ <div class="box_desc_lslist">
+ <div class="box_desc_lslist_title">璧斾粯璇︽儏</div>
+ <div class="box_desc_lslist_l">
+ <div class="box_desc_lslist_l_row" v-for="(item, index) in JSON.parse(info.hpAccountContent).filter(row => row.type === 0)" :key="index">
+ <span>{{item.name}}</span>
+ <span>{{item.fee}}</span>
+ <span>{{item.describe}}</span>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="box_desc" v-if="[10,11,12,13].includes(info.status) && userInfo.type === 0">
<div class="box_desc_head">
<div class="box_desc_title">
<i class="el-icon-success"></i>
- <span class="box_desc_title_val">鐞嗙畻瀹屾垚</span>
+ <span class="box_desc_title_val" style="color: #34C758;">鐞嗙畻瀹屾垚</span>
</div>
</div>
<div class="box_desc_ls">
@@ -134,8 +176,7 @@
<div class="box_desc_btns">
<template v-if="userInfo.type === 1">
<el-button type="danger" @click="revoke()" v-if="[1,2,3,4,5,9,7,10].includes(info.status)">鎾ら攢鎶ユ</el-button>
- <el-button type="primary" @click="addReport(1)" v-if="[3].includes(info.status) && info.reportNumStatus === 0">娣诲姞鎶ユ鍙�</el-button>
- <el-button type="primary" @click="$refs.additionMaterial_ba.open('琛ュ厖鏉愭枡', info.id)" v-if="[3].includes(info.status)">琛ュ厖鏉愭枡</el-button>
+ <el-button type="primary" @click="$refs.additionMaterial_ba.open('琛ュ厖鏉愭枡', info.id)" v-if="[9].includes(info.status) && info.waitSupplement === 1">琛ュ厖鏉愭枡</el-button>
</template>
<template v-if="userInfo.type === 0">
<el-button type="danger" @click="returnCase" v-if="[1,2].includes(info.status)">閫�鍥�</el-button>
@@ -249,9 +290,7 @@
<div class="box_desc_list_img">
<span>浜嬫晠瑙嗛/鐓х墖锛�</span>
<div class="box_desc_list_img_files">
- <div class="box_desc_list_img_files_row" v-for="(item, index) in info.reportFileList" :key="index">
- <img :src="item.fileurlFull" alt="img" />
- </div>
+ <PreviewArea :list="info.reportFileList || []" />
</div>
</div>
</div>
@@ -274,9 +313,7 @@
<span>鍛樺伐鍏崇郴璇佹槑鏉愭枡</span>
</div>
<div class="box_desc_cailiao_list">
- <div class="box_desc_cailiao_list_img" v-for="(item, index) in info.relationFileList" :key="index">
- <img :src="item.fileurlFull" alt="img" />
- </div>
+ <PreviewArea :list="info.relationFileList || []" />
</div>
</div>
<div class="box_desc_cailiao">
@@ -285,9 +322,7 @@
<span>闂ㄨ瘖</span>
</div>
<div class="box_desc_cailiao_list">
- <div class="box_desc_cailiao_list_img" v-for="(item, index) in info.outpatientFileList" :key="index">
- <img :src="item.fileurlFull" alt="img" />
- </div>
+ <PreviewArea :list="info.outpatientFileList || []" />
</div>
</div>
<div class="box_desc_cailiao">
@@ -296,9 +331,7 @@
<span>浣忛櫌</span>
</div>
<div class="box_desc_cailiao_list">
- <div class="box_desc_cailiao_list_img" v-for="(item, index) in info.hospitalFileList" :key="index">
- <img :src="item.fileurlFull" alt="img" />
- </div>
+ <PreviewArea :list="info.hospitalFileList || []" />
</div>
</div>
<div class="box_desc_cailiao">
@@ -307,9 +340,7 @@
<span>浼ゆ畫</span>
</div>
<div class="box_desc_cailiao_list">
- <div class="box_desc_cailiao_list_img" v-for="(item, index) in info.disabilityFileList" :key="index">
- <img :src="item.fileurlFull" alt="img" />
- </div>
+ <PreviewArea :list="info.disabilityFileList || []" />
</div>
</div>
<div class="box_desc_cailiao">
@@ -318,9 +349,7 @@
<span>鍏朵粬鏉愭枡</span>
</div>
<div class="box_desc_cailiao_list">
- <div class="box_desc_cailiao_list_img" v-for="(item, index) in info.otherFileList" :key="index">
- <img :src="item.fileurlFull" alt="img" />
- </div>
+ <PreviewArea :list="info.otherFileList || []" />
</div>
</div>
<div class="box_desc_cailiao">
@@ -329,24 +358,11 @@
<span>琛ュ厖鏉愭枡</span>
</div>
<div class="box_desc_cailiao_list">
- <div class="box_desc_cailiao_list_img" v-for="(item, index) in info.supplementFileList" :key="index">
- <img :src="item.fileurlFull" alt="img" />
- </div>
+ <PreviewArea :list="info.supplementFileList || []" />
</div>
</div>
</div>
</div>
- <!-- 閫�鍥� -->
- <el-dialog
- title="閫�鍥�"
- :visible.sync="show"
- width="500px">
- <span>杩欐槸涓�娈典俊鎭�</span>
- <span slot="footer" class="dialog-footer">
- <el-button @click="show = false">鍙栨秷</el-button>
- <el-button type="primary" @click="show = false">纭畾閫�鍥�</el-button>
- </span>
- </el-dialog>
<!-- 椋庨櫓妗堜欢鎻愰啋 -->
<RiskCaseReminder ref="riskCaseReminder" />
<!-- 妗堜欢杩涘害 -->
@@ -376,8 +392,7 @@
addRemark,
saveSupplementDescribe,
updCaseType,
- confirmFee,
- payCash } from '@/api/business/settleRisk'
+ confirmFee } from '@/api/business/settleRisk'
import RiskCaseReminder from '@/components/business/riskCaseReminder'
import CaseProgress from '@/components/business/caseProgress'
import Acceptance from '@/components/business/acceptance'
@@ -386,15 +401,15 @@
import CompensationDetails from '@/components/business/compensationDetails'
import PaymentInformation from '@/components/business/paymentInformation'
import MakePayment from '@/components/business/makePayment'
+import PreviewArea from '@/components/common/previewArea'
import { mapState } from 'vuex'
export default {
name: 'OperaSettleClaimsWindow',
extends: BaseOpera,
- components: { GlobalWindow, MakePayment, PaymentInformation, CompensationDetails, RiskCaseReminder, CaseProgress, Acceptance, AdditionMaterial_ba, adjustment },
+ components: { GlobalWindow, MakePayment, PreviewArea, PaymentInformation, CompensationDetails, RiskCaseReminder, CaseProgress, Acceptance, AdditionMaterial_ba, adjustment },
data () {
return {
- show: false,
info: null,
id: null
}
@@ -909,23 +924,6 @@
display: flex;
align-items: center;
flex-wrap: wrap;
- .box_desc_cailiao_list_img {
- width: 100px;
- height: 100px;
- display: flex;
- align-items: center;
- justify-content: center;
- overflow: hidden;
- margin-right: 15px;
- background-color: #E5E5E5;
- &:last-child {
- margin: 0;
- }
- img {
- width: 100%;
- height: 100%;
- }
- }
}
}
.box_desc_ls {
diff --git a/company/src/components/business/compensationDetails.vue b/company/src/components/business/compensationDetails.vue
index 469a6d8..fc95f47 100644
--- a/company/src/components/business/compensationDetails.vue
+++ b/company/src/components/business/compensationDetails.vue
@@ -2,6 +2,7 @@
<GlobalWindow
:title="title"
width="100%"
+ :withFooter="false"
:visible.sync="visible"
:confirm-working="isWorking"
@confirm="confirm"
diff --git a/company/src/components/common/previewArea.vue b/company/src/components/common/previewArea.vue
new file mode 100644
index 0000000..5eb4874
--- /dev/null
+++ b/company/src/components/common/previewArea.vue
@@ -0,0 +1,109 @@
+<template>
+ <div class="box_item_list_row_l">
+ <div class="desc_data_list_item" v-for="(item, index) in list" :key="index">
+ <div class="desc_data_list_item_img" v-if="item.type === 0">
+ <el-image
+ style="width: 100%; height: 100%"
+ :src="item.fileurlFull"
+ :preview-src-list="[item.fileurlFull]">
+ </el-image>
+ </div>
+ <div class="desc_data_list_item_img" v-if="item.type === 1">
+ <video controls :src="item.fileurlFull" />
+ </div>
+ <div class="desc_data_list_item_img" v-if="item.type === 2" @click="openFile(item.fileurlFull)">
+ <i class="el-icon-folder-opened"></i>
+ </div>
+<!-- <div class="desc_data_list_item_info">-->
+<!-- <span>{{ item.name }}</span>-->
+<!-- </div>-->
+ </div>
+ </div>
+</template>
+
+<script>
+ export default {
+ name: "previewArea",
+ props: {
+ list: {
+ type: Array,
+ default: ()=> []
+ }
+ },
+ methods: {
+ openFile(url) {
+ window.open(url)
+ }
+ }
+ }
+</script>
+
+<style lang="scss" scoped>
+ .box_item_list_row_l {
+ width: 100%;
+ display: flex;
+ align-items: center;
+ flex-wrap: wrap;
+ .desc_data_list_item {
+ width: 100px;
+ height: 100px;
+ cursor: pointer;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+ position: relative;
+ margin-bottom: 10px;
+ margin-left: 10px;
+ &:first-child {
+ margin-left: 0 !important;
+ }
+ .desc_data_list_item_upload {
+ flex: 1;
+ height: 80px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ }
+ .desc_data_list_item_img {
+ flex-shrink: 0;
+ width: 100%;
+ height: 100%;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ overflow: hidden;
+ margin-right: 10px;
+ .el-icon-folder-opened {
+ font-size: 40px;
+ color: #666666;
+ }
+ .el-icon-plus {
+ font-size: 26px;
+ color: #ffffff;
+ }
+ img {
+ width: 100%;
+ }
+ video {
+ width: 100%;
+ }
+ }
+ .desc_data_list_item_info {
+ width: 100%;
+ display: flex;
+ flex-direction: column;
+ justify-content: space-between;
+ word-break: break-all;
+ span {
+ width: 100%;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ font-size: 14px;
+ color: black;
+ }
+ }
+ }
+ }
+</style>
diff --git a/company/src/views/business/settleClaims.vue b/company/src/views/business/settleClaims.vue
index 7707daa..a08142d 100644
--- a/company/src/views/business/settleClaims.vue
+++ b/company/src/views/business/settleClaims.vue
@@ -30,9 +30,21 @@
</el-form-item>
<el-form-item label="妗堜欢鐘舵��" prop="status">
<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="4"></el-option>
+ <el-option label="鏆傚瓨涓�" value="0"></el-option>
+ <el-option label="宸叉姤妗�" value="1"></el-option>
+ <el-option label="寰呯珛妗�" value="2"></el-option>
+ <el-option label="宸茬珛妗�" value="3"></el-option>
+ <el-option label="绔嬫閫�鍥�" value="4"></el-option>
+ <el-option label="寰呭彈鐞�" value="5"></el-option>
+ <el-option label="鎷掔粷鍙楃悊" value="6"></el-option>
+ <el-option label="鍟嗚寰呭鎵�" value="7"></el-option>
+ <el-option label="鍟嗚瀹℃壒鎷掔粷" value="8"></el-option>
+ <el-option label="宸插彈鐞�" value="9"></el-option>
+ <el-option label="寰呮牳璧�" value="10"></el-option>
+ <el-option label="宸叉牳璧�" value="11"></el-option>
+ <el-option label="寰呯粨妗�" value="12"></el-option>
+ <el-option label="宸茬粨妗�" value="13"></el-option>
+ <el-option label="宸叉挙妗�" value="14"></el-option>
</el-select>
</el-form-item>
<el-form-item label="娲鹃仯鍗曚綅" prop="duName">
--
Gitblit v1.9.3