MrShi
2025-05-26 f0c249c2fcdb016b7313655e135c74620b5097a8
company/src/components/business/OperaSettleClaimsWindow.vue
@@ -19,7 +19,80 @@
                    </div>
                </div>
            </div>
            <div class="box_desc">
            <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_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">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>
                        </div>
                    </div>
                </div>
                <div class="box_comInfo" v-if="[10,11,12].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].includes(info.status)">
                    <span class="box_price_title">赔付金额{{[11].includes(info.status) ? '待确认' : '已确认'}}</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="[9,10].includes(info.status)">
                <div class="box_desc_head">
                    <div class="box_desc_title">
                        <i class="el-icon-success"></i>
@@ -50,30 +123,36 @@
                            <i class="el-icon-warning"></i>
                            <span>风险案件</span>
                        </div>
                        <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="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>
                        </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">
@@ -278,6 +357,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,18 +375,23 @@
    addReportNum,
    addRemark,
    saveSupplementDescribe,
    updCaseType } from '@/api/business/settleRisk'
    updCaseType,
    confirmFee,
    payCash } 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 { mapState } from 'vuex'
export default {
  name: 'OperaSettleClaimsWindow',
  extends: BaseOpera,
  components: { GlobalWindow, RiskCaseReminder, CaseProgress, Acceptance, AdditionMaterial_ba, adjustment },
  components: { GlobalWindow, MakePayment, PaymentInformation, CompensationDetails, RiskCaseReminder, CaseProgress, Acceptance, AdditionMaterial_ba, adjustment },
  data () {
    return {
        show: false,
@@ -498,7 +588,21 @@
              case 3:
                  return '意外受伤'
          }
      }
      },
      confirmFeeInfo() {
          this.$confirm('是否确认赔付金额?', '提示', {
              confirmButtonText: '确定',
              cancelButtonText: '取消',
              type: 'warning'
          }).then(() => {
              confirmFee(this.id)
                  .then(res => {
                      this.getDetail()
                  })
          }).catch(() => {
          });
      },
  }
}
</script>
@@ -506,6 +610,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 +820,7 @@
            display: flex;
            align-items: start;
            justify-content: center;
            margin-bottom: 30px;
            /*margin-bottom: 30px;*/
            .box_status_row {
                width: 200px;
                display: flex;