k94314517
2025-05-26 da2f967549510050954682c0372927647257fb11
Merge remote-tracking branch 'origin/2.0.1' into 2.0.1
已添加3个文件
已修改6个文件
903 ■■■■■ 文件已修改
company/.env.development 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/.env.developmentCom 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/api/business/settleRisk.js 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/components/business/OperaSettleClaimsWindow.vue 333 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/components/business/adjustment.vue 108 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/components/business/compensationDetails.vue 227 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/components/business/makePayment.vue 113 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/components/business/paymentInformation.vue 96 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/views/business/settleClaims.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/.env.development
@@ -12,4 +12,4 @@
# VUE_APP_API = 'https://dmtest.ahapp.net/yyb_admin_api/'
# ä»»åº·
VUE_APP_API = 'http://192.168.0.143:10030/'
VUE_APP_API = 'http://192.168.0.129:10030/'
company/.env.developmentCom
@@ -9,6 +9,6 @@
# VUE_APP_API = 'https://dmtest.ahapp.net/yyb_web_api/'
VUE_APP_API = 'http://192.168.0.143:10031/'
VUE_APP_API = 'http://192.168.0.129:10031/'
# VUE_APP_API = 'https://www.yyb.red/yyb_web_api/'
company/src/api/business/settleRisk.js
@@ -90,3 +90,23 @@
export function nuclearCompensation (data) {
    return request.post('/business/settleRisk/nuclearCompensation', data)
}
// ä¿®æ”¹é‡‘额
export function updFee (data) {
    return request.post('/business/settleRisk/updFee', data)
}
// ç¡®è®¤é‡‘额
export function confirmFee (id) {
    return request.get(`/business/settleRisk/confirmFee?id=${id}`)
}
// ç»“案提交
export function payCash (data) {
    return request.post('/business/settleRisk/payCash', data)
}
// ä¿®æ”¹æ”¶æ¬¾ä¿¡æ¯
export function updReceiveInfo (data) {
    return request.post('/business/settleRisk/updReceiveInfo', data)
}
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>
                        <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="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;
company/src/components/business/adjustment.vue
@@ -2,13 +2,13 @@
    <GlobalWindow
        :title="title"
        width="100%"
        :text="`${type === 1 ? '完成理算' : '完成核赔'}`"
        :text="`${title === '修改金额' ? '提交' : type === 1 ? '完成理算' : '完成核赔'}`"
        :visible.sync="visible"
        :confirm-working="isWorking"
        @confirm="confirm"
    >
        <div class="box">
            <el-form :model="form" ref="ruleForm" label-width="150px" class="demo-ruleForm">
            <el-form :model="form" ref="form" :rules="rules" label-width="150px" class="demo-ruleForm">
                <div class="box_item">
                    <div class="box_item_desc">主要赔付项</div>
                    <div class="box_item_list">
@@ -37,6 +37,9 @@
                        <span>Â¥{{totalPrice}}</span>
                    </div>
                </div>
                <el-form-item label="修改说明" prop="describe" v-if="title === '修改金额'">
                    <el-input v-model="form.describe" placeholder="请输入" type="textarea" row="5"></el-input>
                </el-form-item>
            </el-form>
        </div>
    </GlobalWindow>
@@ -45,7 +48,7 @@
<script>
    import BaseOpera from '@/components/base/BaseOpera'
    import GlobalWindow from '@/components/common/GlobalWindow'
    import { compensation, getCompensation, nuclearCompensation } from '@/api/business/settleRisk'
    import { compensation, getCompensation, nuclearCompensation, updFee } from '@/api/business/settleRisk'
    export default {
        name: 'acceptance',
        extends: BaseOpera,
@@ -53,7 +56,13 @@
        data () {
            return {
                form: {
                    id: null
                    id: null,
                    describe: ''
                },
                rules: {
                    describe: [
                        { required: true, message: '修改说明不能为空', trigger: 'blur' }
                    ]
                },
                type: '',
                list1: [],
@@ -66,6 +75,9 @@
                this.type = type
                this.title = title
                this.form.id = id
                this.$nextTick(() => {
                    this.$refs.form.resetFields();
                })
                getCompensation({ type, id: this.form.id })
                    .then(res => {
                        res.forEach(item => {
@@ -90,42 +102,60 @@
                this.totalPrice = price
            },
            confirm() {
                let arr = [...this.list1, ...this.list2]
                for (let i = 0; i < arr.length; i++) {
                    if (!arr[i].fee && arr[i].fee !== 0) {
                        return this.$message.warning(`请先完善${arr[i].name}金额`)
                this.$refs.form.validate((valid) => {
                    if (valid) {
                        let arr = [...this.list1, ...this.list2]
                        for (let i = 0; i < arr.length; i++) {
                            if (!arr[i].fee && arr[i].fee !== 0) {
                                return this.$message.warning(`请先完善${arr[i].name}金额`)
                            }
                        }
                        this.isWorking = true
                        let compensationJson = JSON.stringify(arr)
                        if (this.title === '修改金额') {
                            updFee({ id: this.form.id, compensationJson, describe: this.form.describe })
                                .then(() => {
                                    this.visible = false
                                    this.$tip.apiSuccess('操作成功')
                                    this.$emit('success')
                                })
                                .catch(e => {
                                    this.$tip.apiFailed(e)
                                })
                                .finally(() => {
                                    this.isWorking = false
                                })
                            return
                        }
                        if (this.type === 1) {
                            compensation({ id: this.form.id, compensationJson })
                                .then(() => {
                                    this.visible = false
                                    this.$tip.apiSuccess('操作成功')
                                    this.$emit('success')
                                })
                                .catch(e => {
                                    this.$tip.apiFailed(e)
                                })
                                .finally(() => {
                                    this.isWorking = false
                                })
                        } else if (this.type === 2) {
                            nuclearCompensation({ id: this.form.id, compensationJson })
                                .then(() => {
                                    this.visible = false
                                    this.$tip.apiSuccess('操作成功')
                                    this.$emit('success')
                                })
                                .catch(e => {
                                    this.$tip.apiFailed(e)
                                })
                                .finally(() => {
                                    this.isWorking = false
                                })
                        }
                    }
                }
                this.isWorking = true
                let compensationJson = JSON.stringify(arr)
                if (this.type === 1) {
                    compensation({ id: this.form.id, compensationJson })
                        .then(() => {
                            this.visible = false
                            this.$tip.apiSuccess('操作成功')
                            this.$emit('success')
                        })
                        .catch(e => {
                            this.$tip.apiFailed(e)
                        })
                        .finally(() => {
                            this.isWorking = false
                        })
                } else if (this.type === 2) {
                    nuclearCompensation({ id: this.form.id, compensationJson })
                        .then(() => {
                            this.visible = false
                            this.$tip.apiSuccess('操作成功')
                            this.$emit('success')
                        })
                        .catch(e => {
                            this.$tip.apiFailed(e)
                        })
                        .finally(() => {
                            this.isWorking = false
                        })
                }
                });
            }
        }
    }
company/src/components/business/compensationDetails.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,227 @@
<template>
    <GlobalWindow
        :title="title"
        width="100%"
        :visible.sync="visible"
        :confirm-working="isWorking"
        @confirm="confirm"
    >
        <el-table
            :data="list"
            border
            summary-method
            style="width: 100%">
            <el-table-column
                prop="name"
                label="赔付项目"
                width="180">
            </el-table-column>
            <el-table-column
                prop="fee"
                label="赔付金额(元)"
                width="180">
            </el-table-column>
            <el-table-column
                prop="describe"
                label="费用说明">
            </el-table-column>
        </el-table>
    </GlobalWindow>
</template>
<script>
    import BaseOpera from '@/components/base/BaseOpera'
    import GlobalWindow from '@/components/common/GlobalWindow'
    export default {
        name: 'compensationDetails',
        extends: BaseOpera,
        components: { GlobalWindow },
        data () {
            return {
                list: []
            }
        },
        methods: {
            open (title, data) {
                this.title = title
                let res = JSON.parse(data)
                this.list = res.filter(item => [0,1].includes(item.type))
                this.visible = true
            }
        }
    }
</script>
<style scoped lang="scss">
    .box {
        width: 100%;
        .box_item {
            width: 100%;
            margin-bottom: 30px;
            .box_item_title {
                width: 100%;
                margin-bottom: 15px;
                span {
                    color: rgba(16,16,16,1);
                    font-size: 16px;
                    margin-right: 10px;
                }
            }
            .box_item_desc {
                width: 100%;
                padding-left: 50px;
                box-sizing: border-box;
                color: rgba(16,16,16,1);
                font-size: 14px;
                margin-bottom: 15px;
            }
            .price {
                width: 100%;
                height: 62px;
                display: flex;
                align-items: center;
                justify-content: space-between;
                border-radius: 4px;
                background-color: rgba(239,239,239,1);
                margin-top: 50px;
                padding: 0 20px;
                box-sizing: border-box;
                span {
                    &:nth-child(1) {
                        color: rgba(16,16,16,1);
                        font-size: 18px;
                    }
                    &:nth-child(2) {
                        color: rgba(255,149,2,1);
                        font-size: 22px;
                    }
                }
            }
            .button {
                width: 100%;
                display: flex;
                align-items: center;
                justify-content: end;
                margin-top: 15px;
                .button_submit {
                    width: 108px;
                    height: 38px;
                    line-height: 38px;
                    text-align: center;
                    border-radius: 4px;
                    color: rgba(255,255,255,1);
                    font-size: 14px;
                    background-color: rgba(31,99,255,1);
                }
            }
            .box_item_list {
                width: 100%;
                display: flex;
                align-items: center;
                flex-wrap: wrap;
                justify-content: space-between;
                .box_item_list_rowx {
                    width: 33.3%;
                    height: 0;
                }
                .box_item_list_row {
                    width: 33.3%;
                    .box_item_list_row_l {
                        width: 100%;
                        display: flex;
                        align-items: center;
                        flex-wrap: wrap;
                        .desc_data_list_item {
                            width: 100px;
                            height: 100px;
                            padding: 10px;
                            box-sizing: border-box;
                            border: 1px solid #e2e2e2;
                            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_dele {
                                position: absolute;
                                top: 5px;
                                right: 5px;
                                font-size: 14px;
                                cursor: pointer;
                                color: rgba(249, 86, 1, 0.996078431372549);
                            }
                            .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: 70px;
                                height: 70px;
                                display: flex;
                                align-items: center;
                                justify-content: center;
                                overflow: hidden;
                                margin-right: 10px;
                                .el-icon-folder-opened {
                                    font-size: 34px;
                                    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;
                                }
                            }
                        }
                    }
                    .box_item_list_row_title {
                        width: 100%;
                        display: flex;
                        align-items: center;
                        margin-bottom: 20px;
                        .x {
                            width: 1px;
                            height: 14px;
                            background-color: rgba(255,255,255,1);
                            border: 4px solid rgba(22,93,255,1);
                            margin-right: 10px;
                        }
                        span {
                            color: rgba(16,16,16,1);
                            font-size: 14px;
                        }
                    }
                }
            }
        }
    }
</style>
company/src/components/business/makePayment.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,113 @@
<template>
    <GlobalWindow
        :title="title"
        width="500px"
        :visible.sync="visible"
        :confirm-working="isWorking"
        @confirm="confirm"
    >
        <div class="dakuan">
            <el-form :model="form" :rules="rules" ref="form" label-width="100px" class="demo-ruleForm">
                <el-form-item label="打款说明" prop="describe">
                    <el-input v-model="form.describe" placeholder="请输入"></el-input>
                </el-form-item>
                <el-form-item label="打款凭证" prop="multifileList">
                    <div style="width: 100%; display: flex; align-items: center;">
                        <el-upload
                            :action="uploadImgUrl"
                            list-type="picture-card"
                            accept=".png,.jpg"
                            :file-list="form.multifileList"
                            :data="uploadData"
                            :on-success="handleAvatarSuccess"
                            :on-error="uploadError"
                            :before-remove="removeRow">
                            <i class="el-icon-plus"></i>
                        </el-upload>
<!--                        <upload width="100px" height="100px" :list="[]" accept=".png,.jpg,.jpeg" folder="settle" @success="claimsUploadFile" />-->
                    </div>
                </el-form-item>
            </el-form>
        </div>
    </GlobalWindow>
</template>
<script>
    import BaseOpera from '@/components/base/BaseOpera'
    import GlobalWindow from '@/components/common/GlobalWindow'
    import { payCash } from '@/api/business/settleRisk'
    export default {
        name: 'makePayment',
        extends: BaseOpera,
        components: { GlobalWindow },
        data () {
            return {
                uploadImgUrl: process.env.VUE_APP_API_PREFIX + '/public/upload',
                uploadData: {
                    folder: 'settle'
                },
                // è¡¨å•数据
                form: {
                    id: null,
                    describe: '',
                    multifileList: []
                },
                // éªŒè¯è§„则
                rules: {
                    describe: [
                        { required: true, message: '不能为空', trigger: 'blur' }
                    ]
                }
            }
        },
        methods: {
            open(title, id) {
                this.title = title
                this.form.id = id
                this.form.describe = ''
                this.form.multifileList = []
                this.visible = true
            },
            // ä¸Šä¼ å›¾ç‰‡
            handleAvatarSuccess(res) {
                this.form.multifileList.push({...res.data, fileurl: res.data.imgaddr})
            },
            uploadError() {
                this.$tip.apiFailed('上传失败')
            },
            removeRow(e) {
                this.form.multifileList.forEach((item, index) => {
                    if (item.imgaddr === e.imgaddr) {
                        this.form.multifileList.splice(index, 1)
                    }
                })
            },
            confirm() {
                this.$refs.form.validate((valid) => {
                    if (valid) {
                        this.isWorking = true
                        payCash(this.form)
                            .then(() => {
                                this.visible = false
                                this.$tip.apiSuccess('操作成功')
                                this.$emit('success')
                            })
                            .catch(e => {
                                this.$tip.apiFailed(e)
                            })
                            .finally(() => {
                                this.isWorking = false
                            })
                    }
                });
            }
        }
    }
</script>
<style lang="scss" scoped>
    .dakuan {
        width: 100%;
    }
</style>
company/src/components/business/paymentInformation.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,96 @@
<template>
    <GlobalWindow
        :title="title"
        width="500px"
        :visible.sync="visible"
        :confirm-working="isWorking"
        @confirm="confirm"
    >
        <el-form ref="form" :model="form" :rules="rules" label-width="90px" inline>
            <el-form-item label="开户银行" prop="receiveBank">
                <el-input v-model="form.receiveBank" style="width: 100%;" placeholder="请输入"></el-input>
            </el-form-item>
            <el-form-item label="账号" prop="receiveAccount">
                <el-input v-model="form.receiveAccount" placeholder="请输入"></el-input>
            </el-form-item>
            <el-form-item label="户名" prop="receiveUserName">
                <el-input v-model="form.receiveUserName" placeholder="请输入"></el-input>
            </el-form-item>
        </el-form>
    </GlobalWindow>
</template>
<script>
    import BaseOpera from '@/components/base/BaseOpera'
    import GlobalWindow from '@/components/common/GlobalWindow'
    import { updReceiveInfo } from '@/api/business/settleRisk'
    export default {
        name: 'paymentInformation',
        extends: BaseOpera,
        components: { GlobalWindow },
        data () {
            return {
                form: {
                    id: null,
                    receiveBank: '',
                    receiveAccount: '',
                    receiveUserName: ''
                },
                rules: {
                    receiveBank: [
                        { required: true, message: '不能为空', trigger: 'blur' }
                    ],
                    receiveAccount: [
                        { required: true, message: '不能为空', trigger: 'blur' }
                    ],
                    receiveUserName: [
                        { required: true, message: '不能为空', trigger: 'blur' }
                    ]
                }
            }
        },
        methods: {
            open (title, target) {
                this.title = title
                this.visible = true
                // æ–°å»º
                if (target == null) {
                    this.$nextTick(() => {
                        this.$refs.form.resetFields()
                        this.form[this.configData['field.id']] = null
                    })
                    return
                }
                // ç¼–辑
                this.$nextTick(() => {
                    for (const key in this.form) {
                        this.form[key] = target[key]
                    }
                })
            },
            confirm() {
                this.$refs.form.validate((valid) => {
                    if (valid) {
                        this.isWorking = true
                        updReceiveInfo(this.form)
                            .then(() => {
                                this.visible = false
                                this.$tip.apiSuccess('修改成功')
                                this.$emit('success')
                            })
                            .catch(e => {
                                this.$tip.apiFailed(e)
                            })
                            .finally(() => {
                                this.isWorking = false
                            })
                    }
                });
            }
        }
    }
</script>
<style lang="scss" scoped>
</style>
company/src/views/business/settleClaims.vue
@@ -90,7 +90,7 @@
                        <el-button
                            type="text"
                            @click="revoke(row.id)"
                            v-if="[1,2,3,4,5,9,7,10,11].includes(row.status) && userInfo.type === 1">
                            v-if="[1,2,3,4,5,9,7,10].includes(row.status) && userInfo.type === 1">
                            æ’¤é”€
                        </el-button>
                        <el-button type="text" @click="deleRow(row.id)" v-if="row.status === 0">删除</el-button>