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/OperaSettleClaimsWindow.vue | 433 ++++++++++++++++++++++++++++++++++++++++++++++--------
1 files changed, 369 insertions(+), 64 deletions(-)
diff --git a/company/src/components/business/OperaSettleClaimsWindow.vue b/company/src/components/business/OperaSettleClaimsWindow.vue
index 4d6201b..64359a7 100644
--- a/company/src/components/business/OperaSettleClaimsWindow.vue
+++ b/company/src/components/business/OperaSettleClaimsWindow.vue
@@ -19,11 +19,126 @@
</div>
</div>
</div>
- <div class="box_desc">
+ <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_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_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>
+ <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>
+ </div>
+ <div class="box_comInfo_text">
+ <span>鈥� 璧斾粯娆鹃」灏嗗湪纭鍚� 1-3 涓伐浣滄棩鍐呭埌璐�</span>
+ <span>鈥� 璇风‘璁ゆ敹娆捐处鎴蜂俊鎭噯纭棤璇�</span>
+ <span>鈥� 濡傛湁鐤戦棶璇峰強鏃惰仈绯诲鏈� 0551-77738493</span>
+ </div>
+ </div>
+ <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>
+ </div>
+ <div class="box_sinfo" v-if="[10,11,12].includes(info.status)">
+ <div class="box_sinfo_title">
+ <span>鏀舵淇℃伅</span>
+ <span @click="$refs.paymentInformation.open('淇敼鏀舵淇℃伅', {
+ id: info.id,
+ receiveBank: info.receiveBank,
+ receiveAccount: info.receiveAccount,
+ receiveUserName: info.receiveUserName
+ })">淇敼</span>
+ </div>
+ <div class="box_sinfo_row">
+ <div class="box_sinfo_row_label">寮�鎴烽摱琛岋細</div>
+ <div class="box_sinfo_row_val">{{info.receiveBank}}</div>
+ </div>
+ <div class="box_sinfo_row">
+ <div class="box_sinfo_row_label">璐﹀彿锛�</div>
+ <div class="box_sinfo_row_val">{{info.receiveAccount}}</div>
+ </div>
+ <div class="box_sinfo_row">
+ <div class="box_sinfo_row_label">鎴峰悕锛�</div>
+ <div class="box_sinfo_row_val">{{info.receiveUserName}}</div>
+ </div>
+ </div>
+ </template>
+ <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">
@@ -50,30 +165,35 @@
<i class="el-icon-warning"></i>
<span>椋庨櫓妗堜欢</span>
</div>
- <el-select v-model="info.caseType" @change="setCaseType" style="width: 100px;" placeholder="妗堜欢绫诲瀷" v-if="[9,10,11].includes(info.status)">
- <el-option label="鍖荤枟" :value="1"></el-option>
- <el-option label="浼ゆ畫" :value="2"></el-option>
- <el-option label="姝讳骸" :value="3"></el-option>
- </el-select>
+ <template v-if="userInfo.type === 0">
+ <el-select v-model="info.caseType" @change="setCaseType" style="width: 100px;" placeholder="妗堜欢绫诲瀷" v-if="[9,10,11].includes(info.status)">
+ <el-option label="鍖荤枟" :value="1"></el-option>
+ <el-option label="浼ゆ畫" :value="2"></el-option>
+ <el-option label="姝讳骸" :value="3"></el-option>
+ </el-select>
+ </template>
</div>
<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,11].includes(info.status)">鎾ら攢鎶ユ</el-button>
+ <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="$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>
<el-button type="primary" @click="register" v-if="[1,2].includes(info.status)">绔嬫</el-button>
<el-button type="primary" @click="$refs.acceptance.open('妗堜欢鍙楃悊', info.id)" v-if="[3,5].includes(info.status)">鍙楃悊</el-button>
- <el-button type="primary" @click="addRemark" v-if="![0,1,2,4,14].includes(info.status)">澶囨敞</el-button>
+ <el-button type="primary" @click="addRemark" v-if="![0,1,2,4,13,14].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="addReport(2)" v-if="[9].includes(info.status) && info.reportNumStatus === 1">缂栬緫鎶ユ鍙�</el-button>
<el-button type="primary" @click="$refs.adjustment.open('鐞嗙畻', info.id, 1)" v-if="[9].includes(info.status)">鐞嗙畻</el-button>
<el-button type="primary" @click="$refs.adjustment.open('閲嶆柊鐞嗙畻', info.id, 1)" v-if="[10].includes(info.status)">閲嶆柊鐞嗙畻</el-button>
<el-button type="primary" @click="$refs.adjustment.open('鏍歌禂', info.id, 2)" v-if="[10].includes(info.status)">鏍歌禂</el-button>
+ <el-button type="primary" @click="$refs.adjustment.open('淇敼閲戦', info.id, 2)" v-if="[11,12].includes(info.status)">淇敼閲戦</el-button>
+ <el-button type="primary" @click="$refs.makePayment.open('鎵撴', info.id)" v-if="[12].includes(info.status)">鎵撴</el-button>
<el-button type="primary" @click="supplementaryMaterials" v-if="[9].includes(info.status)">琛ュ厖鏉愭枡</el-button>
<el-button type="primary" @click="$refs.additionMaterial_ba.open('娣诲姞鏉愭枡', info.id)" v-if="[9,10].includes(info.status)">娣诲姞鏉愭枡</el-button>
</template>
- <el-button icon="el-icon-refresh-left" type="primary" circle @click="$refs.caseProgress.open('妗堜欢杩涘害', info.settleClaimsLogList)" v-if="![0,14].includes(info.status)"></el-button>
+ <el-button icon="el-icon-refresh-left" type="primary" circle @click="$refs.caseProgress.open('妗堜欢杩涘害', info.settleClaimsLogList)" v-if="![0,13,14].includes(info.status)"></el-button>
</div>
</div>
<div class="box_desc_list">
@@ -170,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>
@@ -195,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">
@@ -206,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">
@@ -217,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">
@@ -228,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">
@@ -239,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">
@@ -250,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" />
<!-- 妗堜欢杩涘害 -->
@@ -278,6 +373,12 @@
<AdditionMaterial_ba ref="additionMaterial_ba" @success="getDetail" />
<!-- 鐞嗙畻 -->
<adjustment ref="adjustment" @success="getDetail" />
+ <!-- 璧斾粯璇︽儏 -->
+ <CompensationDetails ref="compensationDetails" />
+ <!-- 淇敼鏀舵淇℃伅 -->
+ <PaymentInformation ref="paymentInformation" @success="getDetail" />
+ <!-- 鎵撴 -->
+ <MakePayment ref="makePayment" @success="getDetail" />
</GlobalWindow>
</template>
@@ -290,21 +391,25 @@
addReportNum,
addRemark,
saveSupplementDescribe,
- updCaseType } from '@/api/business/settleRisk'
+ updCaseType,
+ confirmFee } from '@/api/business/settleRisk'
import RiskCaseReminder from '@/components/business/riskCaseReminder'
import CaseProgress from '@/components/business/caseProgress'
import Acceptance from '@/components/business/acceptance'
import AdditionMaterial_ba from '@/components/business/additionMaterial_ba'
import adjustment from '@/components/business/adjustment'
+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, 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
}
@@ -498,7 +603,21 @@
case 3:
return '鎰忓鍙椾激'
}
- }
+ },
+ confirmFeeInfo() {
+ this.$confirm('鏄惁纭璧斾粯閲戦?', '鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ confirmFee(this.id)
+ .then(res => {
+ this.getDetail()
+ })
+ }).catch(() => {
+
+ });
+ },
}
}
</script>
@@ -506,6 +625,209 @@
<style lang="scss" scoped>
.box {
width: 100%;
+ .box_tui {
+ width: 100%;
+ padding: 17px 0;
+ box-sizing: border-box;
+ margin-bottom: 30px;
+ .box_tui_status {
+ padding: 3px 8px;
+ border-radius: 15px;
+ background-color: rgba(254,226,225,1);
+ color: rgba(153,27,27,1);
+ font-size: 12px;
+ }
+ .box_tui_title {
+ color: rgba(16,16,16,1);
+ font-size: 16px;
+ margin-top: 15px;
+ }
+ .box_tui_info {
+ color: rgba(154,154,154,1);
+ font-size: 14px;
+ margin-top: 10px;
+ }
+ .box_tui_row {
+ color: rgba(16,16,16,1);
+ font-size: 14px;
+ margin-top: 10px;
+ display: flex;
+ align-items: center;
+ .yuan {
+ width: 5px;
+ height: 5px;
+ border-radius: 50%;
+ margin-right: 5px;
+ background-color: rgba(153,27,27,1);
+ }
+ }
+ }
+ .box_dk {
+ width: 100%;
+ display: flex;
+ flex-direction: column;
+ margin-bottom: 30px;
+ .box_dk_title {
+ width: 100%;
+ display: flex;
+ align-items: center;
+ margin-bottom: 12px;
+ i {
+ font-size: 20px;
+ margin-right: 5px;
+ color: #34C758;
+ }
+ span {
+ color: rgba(52,199,88,1);
+ font-size: 18px;
+ }
+ }
+ .box_dk_list {
+ width: 100%;
+ display: flex;
+ flex-direction: column;
+ .box_dk_list_row {
+ width: 100%;
+ display: flex;
+ align-items: start;
+ margin-bottom: 15px;
+ &:last-child {
+ margin: 0 !important;
+ }
+ .box_dk_list_row_label {
+ flex-shrink: 0;
+ color: rgba(16,16,16,1);
+ font-size: 14px;
+ }
+ .box_dk_list_row_value {
+ flex: 1;
+ color: rgba(16,16,16,1);
+ font-size: 14px;
+ }
+ .box_dk_list_row_l {
+ flex: 1;
+ display: flex;
+ align-items: center;
+ flex-wrap: wrap;
+ .box_dk_list_row_l_img {
+ width: 80px;
+ height: 80px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ overflow: hidden;
+ margin-right: 15px;
+ margin-bottom: 15px;
+ img {
+ width: 100%;
+ height: 100%;
+ }
+ }
+ }
+ }
+ }
+ }
+ .box_sinfo {
+ width: 100%;
+ display: flex;
+ flex-direction: column;
+ margin-bottom: 30px;
+ .box_sinfo_title {
+ width: 100%;
+ display: flex;
+ align-items: center;
+ margin-bottom: 26px;
+ span {
+ &:nth-child(1) {
+ color: rgba(16,16,16,1);
+ font-size: 16px;
+ margin-right: 10px;
+ }
+ &:nth-child(2) {
+ color: rgba(22,93,255,1);
+ font-size: 14px;
+ cursor: pointer;
+ text-decoration: underline;
+ }
+ }
+ }
+ .box_sinfo_row {
+ width: 100%;
+ margin-bottom: 15px;
+ display: flex;
+ align-items: center;
+ .box_sinfo_row_label {
+ flex-shrink: 0;
+ color: rgba(154,154,154,1);
+ font-size: 14px;
+ }
+ .box_sinfo_row_val {
+ flex: 1;
+ color: rgba(16,16,16,1);
+ font-size: 14px;
+ }
+ }
+ }
+ .box_price {
+ width: 100%;
+ padding: 30px 0;
+ background-color: #ffffff;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+ margin-bottom: 30px;
+ border-bottom: 1px solid #ececec;
+ .box_price_title {
+ color: rgba(16,16,16,1);
+ font-size: 20px;
+ margin-bottom: 10px;
+ }
+ .box_price_jine {
+ color: rgba(255,162,63,1);
+ font-size: 29px;
+ margin-bottom: 10px;
+ }
+ }
+ .box_comInfo {
+ width: 100%;
+ padding: 11px 21px;
+ box-sizing: border-box;
+ background-color: rgba(240,246,254,1);
+ display: flex;
+ flex-direction: column;
+ margin-bottom: 30px;
+ .box_comInfo_title {
+ width: 100%;
+ display: flex;
+ align-items: center;
+ margin-bottom: 12px;
+ i {
+ color: #165DFF;
+ font-size: 20px;
+ margin-right: 5px;
+ }
+ span {
+ color: rgba(16,16,16,1);
+ font-size: 14px;
+ }
+ }
+ .box_comInfo_text {
+ width: 100%;
+ padding-left: 20px;
+ box-sizing: border-box;
+ display: flex;
+ flex-direction: column;
+ span {
+ color: rgba(16,16,16,1);
+ font-size: 14px;
+ margin-bottom: 10px;
+ &:last-child {
+ margin: 0 !important;
+ }
+ }
+ }
+ }
.box_status {
width: 100%;
padding: 30px 0;
@@ -513,7 +835,7 @@
display: flex;
align-items: start;
justify-content: center;
- margin-bottom: 30px;
+ /*margin-bottom: 30px;*/
.box_status_row {
width: 200px;
display: flex;
@@ -602,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 {
--
Gitblit v1.9.3