估值模型百分比支持大于100
Showing
1 changed file
with
8 additions
and
4 deletions
| ... | @@ -648,6 +648,10 @@ const incomeCalculateData = computed(() => { //响应式不生效 | ... | @@ -648,6 +648,10 @@ const incomeCalculateData = computed(() => { //响应式不生效 |
| 648 | let transfer = (v, need = true) => { | 648 | let transfer = (v, need = true) => { |
| 649 | return v ? (need ? parseFloat(v) / 100 : parseFloat(v)) : 0; | 649 | return v ? (need ? parseFloat(v) / 100 : parseFloat(v)) : 0; |
| 650 | } | 650 | } |
| 651 | /** 转换千分位为正整数 */ | ||
| 652 | let transferQianFenWei = (v) => { | ||
| 653 | return typeof v == 'string' ? parseFloat(v?.replace(/,/g, '')) : parseFloat(v) | ||
| 654 | } | ||
| 651 | incomeYears.value.forEach((year, i) => { | 655 | incomeYears.value.forEach((year, i) => { |
| 652 | let C6 = transfer(data[5][year.field]) | 656 | let C6 = transfer(data[5][year.field]) |
| 653 | let C7 = transfer(data[6][year.field]) | 657 | let C7 = transfer(data[6][year.field]) |
| ... | @@ -659,10 +663,10 @@ const incomeCalculateData = computed(() => { //响应式不生效 | ... | @@ -659,10 +663,10 @@ const incomeCalculateData = computed(() => { //响应式不生效 |
| 659 | sumC7 = sumC7 + transfer(data[6][item.field]); | 663 | sumC7 = sumC7 + transfer(data[6][item.field]); |
| 660 | }) | 664 | }) |
| 661 | } | 665 | } |
| 662 | resultInfo['综合分成率'].push(changeNum(C6 * (1 - sumC7 + C7 / 2) * 100, 2, true)); //TODO综合分成率算法有问题 | 666 | resultInfo['综合分成率'].push(changeNum(C6 * (1 - sumC7 + C7 / 2) * 100, 2, true)); |
| 663 | let C1 = transfer(data[0][year.field], false) | 667 | let C1 = transfer(data[0][year.field], false) |
| 664 | let C5 = transfer(data[4][year.field]) | 668 | let C5 = transfer(data[4][year.field]) |
| 665 | resultInfo['现金流'].push(changeNum(C1 * C5 * resultInfo['综合分成率'][i] / 100, 2, true)); | 669 | resultInfo['现金流'].push(changeNum(C1 * C5 * transferQianFenWei(resultInfo['综合分成率'][i]) / 100, 2, true)); |
| 666 | if (i == 0) { | 670 | if (i == 0) { |
| 667 | let cnt = month == 12 ? 12 : (12 - month); | 671 | let cnt = month == 12 ? 12 : (12 - month); |
| 668 | resultInfo['折现年期'].push(changeNum(cnt / 12 / 2, 2, true)); | 672 | resultInfo['折现年期'].push(changeNum(cnt / 12 / 2, 2, true)); |
| ... | @@ -673,7 +677,7 @@ const incomeCalculateData = computed(() => { //响应式不生效 | ... | @@ -673,7 +677,7 @@ const incomeCalculateData = computed(() => { //响应式不生效 |
| 673 | } | 677 | } |
| 674 | let C10 = transfer(data[9][year.field]); | 678 | let C10 = transfer(data[9][year.field]); |
| 675 | resultInfo['折现因子'].push(changeNum(1 / Math.pow((1 + C10), parseFloat(resultInfo['折现年期'][i])), 2, true)); | 679 | resultInfo['折现因子'].push(changeNum(1 / Math.pow((1 + C10), parseFloat(resultInfo['折现年期'][i])), 2, true)); |
| 676 | resultInfo['折现现值'].push(changeNum(parseFloat(resultInfo['折现因子'][i]) * parseFloat(resultInfo['现金流'][i]?.replace(/,/g, '')), 2, true)); | 680 | resultInfo['折现现值'].push(changeNum(parseFloat(resultInfo['折现因子'][i]) * transferQianFenWei(resultInfo['现金流'][i]), 2, true)); |
| 677 | }) | 681 | }) |
| 678 | resultInfo['数据资产估值'] = resultInfo['折现现值'].length < 2 ? resultInfo['折现现值'][0] : changeNum(resultInfo['折现现值'].reduce(function (prev, curr, idx, arr) { | 682 | resultInfo['数据资产估值'] = resultInfo['折现现值'].length < 2 ? resultInfo['折现现值'][0] : changeNum(resultInfo['折现现值'].reduce(function (prev, curr, idx, arr) { |
| 679 | return (typeof prev == 'string' ? parseFloat(prev?.replace(/,/g, '')) : parseFloat(prev)) + parseFloat(curr?.replace(/,/g, '')); | 683 | return (typeof prev == 'string' ? parseFloat(prev?.replace(/,/g, '')) : parseFloat(prev)) + parseFloat(curr?.replace(/,/g, '')); |
| ... | @@ -874,7 +878,7 @@ onMounted(async () => { | ... | @@ -874,7 +878,7 @@ onMounted(async () => { |
| 874 | <div v-if="scope.row.auto != true" class="input_cell"> | 878 | <div v-if="scope.row.auto != true" class="input_cell"> |
| 875 | <el-input v-model.trim="scope.row[year.field]" placeholder="请输入" | 879 | <el-input v-model.trim="scope.row[year.field]" placeholder="请输入" |
| 876 | @change="(val) => inputChange(val, scope, year.field)" | 880 | @change="(val) => inputChange(val, scope, year.field)" |
| 877 | @input="(val) => inputEventChange(val, scope, year.field, scope.row.unit == '%' ? 100 : null)" | 881 | @input="(val) => inputEventChange(val, scope, year.field, null)" |
| 878 | clearable></el-input> | 882 | clearable></el-input> |
| 879 | </div> | 883 | </div> |
| 880 | <span v-else> | 884 | <span v-else> | ... | ... |
-
Please register or sign in to post a comment