jiangping
2025-05-27 3d6a8e384d31432a23f5a8c1a3135a58cbe617b5
company/src/components/business/OperaSettleClaimsWindow.vue
@@ -22,7 +22,7 @@
            <div class="box_dk" v-if="[13].includes(info.status)">
                <div class="box_dk_title">
                    <i class="el-icon-success"></i>
                    <span>已打款</span>
                    <span style="font-weight: bold">已打款</span>
                </div>
                <div class="box_dk_list">
                    <div class="box_dk_list_row">
@@ -161,7 +161,7 @@
                    <div class="box_desc_title">
                        <span class="box_desc_title_val">报案详情</span>
                        <div class="box_desc_title_zt" v-if="info.statusName">{{info.statusName}}</div>
                        <div class="box_desc_title_tips" v-if="info.isRisk === 1">
                        <div class="box_desc_title_tips" @click="$refs.riskCaseReminder.open('风险案件提醒', info.riskContent)" v-if="info.isRisk === 1">
                            <i class="el-icon-warning"></i>
                            <span>风险案件</span>
                        </div>
@@ -183,7 +183,7 @@
                            <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,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(1)" v-if="[3,7,9].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>
@@ -193,7 +193,7 @@
                            <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,13,14].includes(info.status)"></el-button>
                        <el-button icon="el-icon-refresh-left" type="primary" title="查看案件进度" circle @click="$refs.caseProgress.open('案件进度', info.settleClaimsLogList)" v-if="![0].includes(info.status)"></el-button>
                    </div>
                </div>
                <div class="box_desc_list">
@@ -210,18 +210,18 @@
                        报案人:{{info.informantName}}
                    </div>
                    <div class="box_desc_list_row">
                        报案人联系方式:{{info.informantPhone}}
                       报案人联系方式:{{info.informantPhone}}
                    </div>
                    <div class="box_desc_list_zw"></div>
                </div>
            </div>
            <div class="box_fx" v-if="info.isRisk === 1">
            <div class="box_fx" v-if="info.isRisk === 1 && showIsRisk ===true ">
                <div class="box_fx_left">
                    <i class="el-icon-warning"></i>
                    <span class="box_fx_left_a">注意,该案件有{{info.riskContent.length}}条风险信息</span>
                    <span class="box_fx_left_b" @click="$refs.riskCaseReminder.open('风险案件提醒', info.riskContent)">查看详情</span>
                </div>
                <i class="el-icon-close" @click="info.isRisk = 0"></i>
                <i class="el-icon-close" @click="closeRiskTip"></i>
            </div>
            <div class="box_desc">
                <div class="box_desc_head">
@@ -240,7 +240,7 @@
                        出险人姓名:{{info.memberName}}
                    </div>
                    <div class="box_desc_list_row">
                        出险人身份证号:{{info.memberIdcard}}
                        出险人身份证号:{{info.idcardNo}}
                    </div>
                    <div style="width: 33%; height: 0;"></div>
                </div>
@@ -281,7 +281,10 @@
                        事故类型:{{returnType(info.type)}}
                    </div>
                    <div class="box_desc_list_row">
                        是否有医疗保险:{{returnName(info.medicalInsurance)}}
                        是否伤残:{{returnName(info.hurtType)}}
                    </div>
                    <div class="box_desc_list_row">
                        是否有医保:{{returnName(info.medicalInsurance)}}
                    </div>
                    <div class="box_desc_list_row">
                        就诊类型:{{returnInHospital(info.inHospital)}}
@@ -358,7 +361,7 @@
                        <span>补充材料</span>
                    </div>
                    <div class="box_desc_cailiao_list">
                        <PreviewArea :list="info.supplementFileList || []" />
                        <PreviewArea   :list="info.supplementFileList || []" />
                    </div>
                </div>
            </div>
@@ -387,12 +390,13 @@
import GlobalWindow from '@/components/common/GlobalWindow'
import { findById, returnSettle } from '@/api/business/settleClaims'
import {
    register,
    addReportNum,
    addRemark,
    saveSupplementDescribe,
    updCaseType,
    confirmFee } from '@/api/business/settleRisk'
  register,
  addReportNum,
  addRemark,
  saveSupplementDescribe,
  updCaseType,
  confirmFee
} from '@/api/business/settleRisk'
import RiskCaseReminder from '@/components/business/riskCaseReminder'
import CaseProgress from '@/components/business/caseProgress'
import Acceptance from '@/components/business/acceptance'
@@ -410,8 +414,9 @@
  components: { GlobalWindow, MakePayment, PreviewArea, PaymentInformation, CompensationDetails, RiskCaseReminder, CaseProgress, Acceptance, AdditionMaterial_ba, adjustment },
  data () {
    return {
        info: null,
        id: null
      info: null,
      id: null,
      showIsRisk: true
    }
  },
  computed: {
@@ -424,206 +429,244 @@
    })
  },
  methods: {
      open (title, id) {
          this.title = title
          this.id = id
    open (title, id) {
      this.title = title
      this.id = id
      this.getDetail()
    },
    closeRiskTip(){
      this.showIsRisk= false
    },
    setCaseType (e) {
      updCaseType({ id: this.id, caseType: e })
        .then(res => {
          this.getDetail()
      },
      setCaseType(e) {
          updCaseType({ id: this.id, caseType: e })
            .then(res => {
                this.getDetail()
            })
      },
      supplementaryMaterials() {
          this.$prompt('补充说明', '补充材料', {
              confirmButtonText: '提交',
              cancelButtonText: '取消',
              inputPattern: /^(?:.|\n)+$/,
              inputErrorMessage: '补充说明不能为空!',
              beforeClose: (action, instance, done) => {
                  if (action === 'confirm') {
                      instance.confirmButtonLoading = true;
                      saveSupplementDescribe({ id: this.id, describe: instance.inputValue })
                          .finally(() => {
                              done();
                              instance.confirmButtonLoading = false;
                          })
                  } else {
                      done();
                  }
              }
          }).then(({ value }) => {
              this.getDetail()
          }).catch(() => {
        })
    },
    supplementaryMaterials () {
      this.$prompt('补充说明', '补充材料', {
        confirmButtonText: '提交',
        cancelButtonText: '取消',
        inputType: 'textarea',
        inputPattern: /^(?:.|\n)+$/,
        inputErrorMessage: '补充说明不能为空!',
        beforeClose: (action, instance, done) => {
          if (action === 'confirm') {
            instance.confirmButtonLoading = true
            saveSupplementDescribe({ id: this.id, describe: instance.inputValue })
                .then((res) => {
                  done()
                })
                .catch((data) => {
                  this.$message.error(data.message)
                })
                .finally(() => {
                  instance.confirmButtonLoading = false
                })
          } else {
            done()
          }
        }
      }).then(({ value }) => {
        this.getDetail()
      }).catch(() => {
          });
      },
      addRemark() {
          this.$prompt('备注', '添加备注', {
              confirmButtonText: '添加',
              cancelButtonText: '取消',
              inputPattern: /^(?:.|\n)+$/,
              inputErrorMessage: '备注不能为空!',
              beforeClose: (action, instance, done) => {
                  if (action === 'confirm') {
                      instance.confirmButtonLoading = true;
                      addRemark({ id: this.id, describe: instance.inputValue })
                          .finally(() => {
                              done();
                              instance.confirmButtonLoading = false;
                          })
                  } else {
                      done();
                  }
              }
          }).then(({ value }) => {
              this.getDetail()
          }).catch(() => {
      })
    },
    addRemark () {
      this.$prompt('备注', '添加备注', {
        confirmButtonText: '添加',
        cancelButtonText: '取消',
        inputType: 'textarea',
        inputPattern: /^(?:.|\n)+$/,
        inputErrorMessage: '备注不能为空!',
        beforeClose: (action, instance, done) => {
          if (action === 'confirm') {
            instance.confirmButtonLoading = true
            addRemark({ id: this.id, describe: instance.inputValue })
                .then((res) => {
                  done()
                })
                .catch((data) => {
                  this.$message.error(data.message)
                })
                .finally(() => {
                  instance.confirmButtonLoading = false
                })
          } else {
            done()
          }
        }
      }).then(({ value }) => {
        this.getDetail()
      }).catch(() => {
          });
      },
      addReport(type) {
          this.$prompt(`报案号`, `${type === 1 ? '添加报案号' : '编辑报案号'}`, {
              confirmButtonText: '添加',
              cancelButtonText: '取消',
              inputPattern: /^(?:.|\n)+$/,
              inputErrorMessage: '报案号不能为空!',
              beforeClose: (action, instance, done) => {
                  if (action === 'confirm') {
                      instance.confirmButtonLoading = true;
                      addReportNum({ id: this.id, reportNum: instance.inputValue })
                        .finally(() => {
                            done();
                            instance.confirmButtonLoading = false;
                        })
                  } else {
                      done();
                  }
              }
          }).then(({ value }) => {
              this.getDetail()
          }).catch(() => {
          });
      },
      register() {
          this.$prompt('立案说明', '立案', {
              confirmButtonText: '确定',
              cancelButtonText: '取消',
              beforeClose: (action, instance, done) => {
                  if (action === 'confirm') {
                      instance.confirmButtonLoading = true;
                      register({ id: this.id, describe: instance.inputValue, registerStatus: 3 })
                          .finally(() => {
                              done();
                              instance.confirmButtonLoading = false;
                          })
                  } else {
                      done();
                  }
              }
          }).then(({ value }) => {
              this.getDetail()
          }).catch(() => {
          });
      },
      returnCase() {
          this.$prompt('退回说明', '退回', {
              confirmButtonText: '确定',
              cancelButtonText: '取消',
              inputPattern: /^(?:.|\n)+$/,
              inputErrorMessage: '退回说明不能为空!',
              beforeClose: (action, instance, done) => {
                  if (action === 'confirm') {
                      instance.confirmButtonLoading = true;
                      register({ id: this.id, describe: instance.inputValue, registerStatus: 4 })
                          .finally(() => {
                              done();
                              instance.confirmButtonLoading = false;
                          })
                  } else {
                      done();
                  }
              }
          }).then(({ value }) => {
              this.getDetail()
          }).catch(() => {
          });
      },
      getDetail() {
          findById(this.id)
              .then(res => {
                  res.riskContent = JSON.parse(res.riskContent)
                  this.info = res
                  this.visible = true
      })
    },
    addReport (type) {
      this.$prompt('报案号', `${type === 1 ? '添加报案号' : '编辑报案号'}`, {
        confirmButtonText: '添加',
        cancelButtonText: '取消',
        inputPattern: /^(?:.|\n)+$/,
        inputErrorMessage: '报案号不能为空!',
        beforeClose: (action, instance, done) => {
          if (action === 'confirm') {
            instance.confirmButtonLoading = true
            addReportNum({ id: this.id, reportNum: instance.inputValue })
              .then((res) => {
                done()
              })
      },
      // 撤销
      revoke(id) {
          this.$confirm('撤销后,案件直接结束,无法继续进行理赔操作!', '是否撤销报案?', {
              confirmButtonText: '确定撤销',
              cancelButtonText: '我再想想',
              type: 'warning'
          }).then(() => {
              returnSettle({ id: this.info.id })
                  .then(res => {
                      this.getDetail()
                  })
          }).catch(() => {
              .catch((data) => {
                this.$message.error(data.message)
              })
              .finally(() => {
                instance.confirmButtonLoading = false
              })
          } else {
            done()
          }
        }
      }).then(({ value }) => {
        this.getDetail()
      }).catch(() => {
          });
      },
      returnInHospital(type) {
          switch (type) {
              case 0:
                  return '住院'
              case 1:
                  return '门诊'
      })
    },
    register () {
      this.$prompt('立案说明', '立案', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        inputType: 'textarea',
        beforeClose: (action, instance, done) => {
          if (action === 'confirm') {
            instance.confirmButtonLoading = true
            register({ id: this.id, describe: instance.inputValue, registerStatus: 3 })
                .then((res) => {
                  done()
                })
                .catch((data) => {
                  this.$message.error(data.message)
                })
                .finally(() => {
                  instance.confirmButtonLoading = false
                })
          } else {
            done()
          }
      },
      returnName(type) {
          switch (type) {
              case 0:
                  return '是'
              case 1:
                  return '否'
          }
      },
      returnType(type) {
          switch (type) {
                case 0:
                    return '工作期间受伤'
              case 1:
                  return '上下班途中受伤'
              case 2:
                  return '非工作时间受伤'
              case 3:
                  return '意外受伤'
          }
      },
      confirmFeeInfo() {
          this.$confirm('是否确认赔付金额?', '提示', {
              confirmButtonText: '确定',
              cancelButtonText: '取消',
              type: 'warning'
          }).then(() => {
              confirmFee(this.id)
                  .then(res => {
                      this.getDetail()
                  })
          }).catch(() => {
        }
      }).then(({ value }) => {
        this.getDetail()
      }).catch(() => {
          });
      },
      })
    },
    returnCase () {
      this.$prompt('退回说明', '退回', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        inputType: 'textarea',
        inputPattern: /^(?:.|\n)+$/,
        inputErrorMessage: '退回说明不能为空!',
        beforeClose: (action, instance, done) => {
          if (action === 'confirm') {
            instance.confirmButtonLoading = true
            register({ id: this.id, describe: instance.inputValue, registerStatus: 4 })
                .then((res) => {
                  done()
                })
                .catch((data) => {
                  this.$message.error(data.message)
                })
                .finally(() => {
                  instance.confirmButtonLoading = false
                })
          } else {
            done()
          }
        }
      }).then(({ value }) => {
        this.getDetail()
      }).catch(() => {
      })
    },
    getDetail () {
      findById(this.id)
        .then(res => {
          res.riskContent = JSON.parse(res.riskContent)
          this.info = res
          this.info.showIsRisk = true
          this.visible = true
        })
    },
    // 撤销
    revoke (id) {
      this.$confirm('撤销后,案件直接结束,无法继续进行理赔操作!', '是否撤销报案?', {
        confirmButtonText: '确定撤销',
        cancelButtonText: '我再想想',
        type: 'warning'
      }).then(() => {
        returnSettle({ id: this.info.id })
          .then(res => {
            this.getDetail()
          })
      }).catch(() => {
      })
    },
    returnInHospital (type) {
      switch (type) {
      case 0:
        return '住院'
      case 1:
        return '门诊'
      }
    },
    returnName (type) {
      switch (type) {
      case 0:
        return '是'
      case 1:
        return '否'
      case 2:
        return '待确定'
      default:
        return ''
      }
    },
    returnType (type) {
      switch (type) {
      case 0:
        return '工作期间受伤'
      case 1:
        return '上下班途中受伤'
      case 2:
        return '非工作时间受伤'
      case 3:
        return '意外受伤'
      }
    },
    confirmFeeInfo () {
      this.$confirm('是否确认赔付金额?', '提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning'
      }).then(() => {
        confirmFee(this.id)
          .then(res => {
            this.getDetail()
          })
      }).catch(() => {
      })
    }
  }
}
</script>
<style lang="scss" scoped>
    .box {
        //margin-left: 30px;
        width: 100%;
        .box_tui {
            width: 100%;
@@ -987,6 +1030,7 @@
            .box_desc_head {
                width: 100%;
                display: flex;
                font-weight: bold;
                align-items: center;
                justify-content: space-between;
                margin-bottom: 26px;
@@ -1017,6 +1061,7 @@
                        margin-right: 20px;
                    }
                    .box_desc_title_tips {
                      cursor: pointer;
                        width: 84px;
                        height: 25px;
                        border-radius: 15px;