MrShi
2025-05-27 90ee34919cdfd5f5552f9a6706004af198101b52
提交
已添加1个文件
已修改3个文件
274 ■■■■ 文件已修改
company/src/components/business/OperaSettleClaimsWindow.vue 146 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/components/business/compensationDetails.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/components/common/previewArea.vue 109 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/views/business/settleClaims.vue 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/components/business/OperaSettleClaimsWindow.vue
@@ -19,15 +19,7 @@
                    </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>
                <div class="box_dk" v-if="info.status === 13">
            <div class="box_dk" v-if="[13].includes(info.status)">
                    <div class="box_dk_title">
                        <i class="el-icon-success"></i>
                        <span>已打款</span>
@@ -35,23 +27,45 @@
                    <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 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">这里是打款说明</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">
                                <div class="box_dk_list_row_l_img">
                                    <img src="" alt="">
                        <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>
                <div class="box_comInfo" v-if="[10,11,12].includes(info.status)">
            <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" />
                        <PreviewArea :list="info.supplementFileList || []" />
                        </div>
                    </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 {
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"
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>
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">