<template> <div class="benefits"> <!-- <div> <div class="text-r"> <a-button type="danger" class="save-btn"> <Icon name="ssiadd" :size="14" />新增 </a-button> <a-table :pagination="false" :columns="benefitColumns" :data-source="benefitData" > <template slot="operation" slot-scope="text, record"> <a-button v-if="record.isEdit" type="link"> 保存 </a-button> <a-button v-else type="link"> 修改 </a-button> <a-button type="link" class="success">新增</a-button> <a-popconfirm title="你确定要关闭吗?" ok-text="确定" cancel-text="取消" > <a-button type="link" class="danger">删除</a-button> </a-popconfirm> </template> </a-table> </div> </div> --> <!-- <a-collapse v-model="activeKeys" expand-icon-position="right" :bordered="false"> <a-collapse-panel v-for="item in benefitData" :key="item.benefitCode" :header="item.benefitCode + ' ' +item.benefitDesc"> <div> <a-row class="policy_line" :gutter="10"> <a-col :span="6">事先授权:</a-col> <a-col :span="6">等待期:{{ item.waitingPeriod }}</a-col> <a-col :span="6">年限额:</a-col> <a-col :span="6">赔付比例:</a-col> </a-row> </div> <condition :formData="{ ...item, conditionType: '01' }" /> </a-collapse-panel> </a-collapse> --> <a-row v-for="(item, index) in benefitData" :key="item.benefitCode" class="policy_line" :gutter="10"> <a-col :span="12">{{item.benefitDesc}}</a-col> <a-col :span="12" class="border-r"> <a-row :gutter="10"> <a-col :span="8">{{item.benefitConditionDesc}}</a-col> <a-col :span="8" class="border-r" v-if="showRemainingQuota(item)"> <a-row v-if="item.isEditRemainingQuota"> <a-col :span="14"> <a-input v-model="remainingQuotaForm[item.benefitCode]" placeholder="请输入剩余金额"></a-input> </a-col> <a-col :span="10"> <a-button type="link" @click="saveRemainingQuota(item, index)">保存</a-button> <a-button type="link" @click="editRemainingQuota(item, index)">取消</a-button> </a-col> </a-row> <p v-else @dblclick="editRemainingQuota(item, index)" title="双击可编辑剩余金额">剩余{{item.remainingQuota}}元</p> </a-col> <a-col :span="8">{{item.modifierDate}}</a-col> </a-row> </a-col> </a-row> </div> </template> <script> export default { props: { formData: { type: Object, required: true, }, }, components: { }, data() { return { benefitData: [], activeKeys: "", remainingQuotaForm: {} }; }, mounted() { this._getBenefitData(); }, methods: { showRemainingQuota(item){ return item.remainingQuota || item.remainingQuota === 0; }, // 编辑剩余金额的打开与取消 editRemainingQuota(data, index) { const val = data.isEditRemainingQuota if (! val) { this.remainingQuotaForm[data.benefitCode] = data.remainingQuota; } this.$set(this.benefitData[index], 'isEditRemainingQuota', !val) }, // 剩余金额保存 saveRemainingQuota(data, index) { const { benefitCode, corpCode, coverageCode, patientId, payorCode, planCode } = data; const remainingQuota = this.remainingQuotaForm[benefitCode] if (! remainingQuota) { this.$message.error('剩余金额不能为空') return false; } if (! /^\d+$|^\d*\.\d+$/g.test(remainingQuota)) { this.$message.error('剩余金额应该为数字') return false; } const params = { benefitCode, corpCode, coverageCode, patientId, payorCode, planCode, remainingQuota, quotaType: '01' // 额度类型(01:福利额度 02:责任额度 03:计划额度) } this.$apis.SETREMAININGQUOTA(params).then(res => { if(res.returnCode === '0000') { this.$message.success(res.returnMsg || '保存成功') this.editRemainingQuota(data, index) // 转换编辑状态 this.benefitData[index].remainingQuota = remainingQuota // 直接赋值, 就不请求数据初始化了 } else { this.$message.error(res.returnMsg || '保存失败') } }) }, _getBenefitData() { const { corpCode, coverageCode, payorCode, planCode } = this.formData; const data = { corpCode, coverageCode, payorCode, planCode, patientId: this.formData.id }; this.$apis.GETBENEFITSHOWLIST(data).then((res) => { this.benefitData = res.content || []; }); }, }, }; </script> <style lang="less" scoped> .benefits { .pa(0, 0, 10, 0); background-color: #fff; .save-btn { .mg-t(20); .mg-b(10); .icon-class { .mg-r(10); } } } .policy_line { display: flex; align-items: center; .pa(0, 30, 0, 30); min-height: 60px; line-height: 1.5; border-bottom: 1px solid #f8fafb; .border-r{ border-right: 1px solid #f8fafb; } } </style>