20f9a687 by lihua

估值模型百分比支持大于100

1 parent f0d8be83
...@@ -647,6 +647,10 @@ const incomeCalculateData = computed(() => { //响应式不生效 ...@@ -647,6 +647,10 @@ const incomeCalculateData = computed(() => { //响应式不生效
647 let transfer = (v, need = true) => { 647 let transfer = (v, need = true) => {
648 return v ? (need ? parseFloat(v) / 100 : parseFloat(v)) : 0; 648 return v ? (need ? parseFloat(v) / 100 : parseFloat(v)) : 0;
649 } 649 }
650 /** 转换千分位为正整数 */
651 let transferQianFenWei = (v) => {
652 return typeof v == 'string' ? parseFloat(v?.replace(/,/g, '')) : parseFloat(v)
653 }
650 incomeYears.value.forEach((year, i) => { 654 incomeYears.value.forEach((year, i) => {
651 let C6 = transfer(data[5][year.field]) 655 let C6 = transfer(data[5][year.field])
652 let C7 = transfer(data[6][year.field]) 656 let C7 = transfer(data[6][year.field])
...@@ -658,10 +662,10 @@ const incomeCalculateData = computed(() => { //响应式不生效 ...@@ -658,10 +662,10 @@ const incomeCalculateData = computed(() => { //响应式不生效
658 sumC7 = sumC7 + transfer(data[6][item.field]); 662 sumC7 = sumC7 + transfer(data[6][item.field]);
659 }) 663 })
660 } 664 }
661 resultInfo['综合分成率'].push(changeNum(C6 * (1 - sumC7 + C7 / 2) * 100, 2, true)); //TODO综合分成率算法有问题 665 resultInfo['综合分成率'].push(changeNum(C6 * (1 - sumC7 + C7 / 2) * 100, 2, true));
662 let C1 = transfer(data[0][year.field], false) 666 let C1 = transfer(data[0][year.field], false)
663 let C5 = transfer(data[4][year.field]) 667 let C5 = transfer(data[4][year.field])
664 resultInfo['现金流'].push(changeNum(C1 * C5 * resultInfo['综合分成率'][i] / 100, 2, true)); 668 resultInfo['现金流'].push(changeNum(C1 * C5 * transferQianFenWei(resultInfo['综合分成率'][i]) / 100, 2, true));
665 if (i == 0) { 669 if (i == 0) {
666 let cnt = month == 12 ? 12 : (12 - month); 670 let cnt = month == 12 ? 12 : (12 - month);
667 resultInfo['折现年期'].push(changeNum(cnt / 12 / 2, 2, true)); 671 resultInfo['折现年期'].push(changeNum(cnt / 12 / 2, 2, true));
...@@ -672,7 +676,7 @@ const incomeCalculateData = computed(() => { //响应式不生效 ...@@ -672,7 +676,7 @@ const incomeCalculateData = computed(() => { //响应式不生效
672 } 676 }
673 let C10 = transfer(data[9][year.field]); 677 let C10 = transfer(data[9][year.field]);
674 resultInfo['折现因子'].push(changeNum(1 / Math.pow((1 + C10), parseFloat(resultInfo['折现年期'][i])), 2, true)); 678 resultInfo['折现因子'].push(changeNum(1 / Math.pow((1 + C10), parseFloat(resultInfo['折现年期'][i])), 2, true));
675 resultInfo['折现现值'].push(changeNum(parseFloat(resultInfo['折现因子'][i]) * parseFloat(resultInfo['现金流'][i]?.replace(/,/g, '')), 2, true)); 679 resultInfo['折现现值'].push(changeNum(parseFloat(resultInfo['折现因子'][i]) * transferQianFenWei(resultInfo['现金流'][i]), 2, true));
676 }) 680 })
677 resultInfo['数据资产估值'] = resultInfo['折现现值'].length < 2 ? resultInfo['折现现值'][0] : changeNum(resultInfo['折现现值'].reduce(function (prev, curr, idx, arr) { 681 resultInfo['数据资产估值'] = resultInfo['折现现值'].length < 2 ? resultInfo['折现现值'][0] : changeNum(resultInfo['折现现值'].reduce(function (prev, curr, idx, arr) {
678 return (typeof prev == 'string' ? parseFloat(prev?.replace(/,/g, '')) : parseFloat(prev)) + parseFloat(curr?.replace(/,/g, '')); 682 return (typeof prev == 'string' ? parseFloat(prev?.replace(/,/g, '')) : parseFloat(prev)) + parseFloat(curr?.replace(/,/g, ''));
...@@ -873,7 +877,7 @@ onMounted(async () => { ...@@ -873,7 +877,7 @@ onMounted(async () => {
873 <div v-if="scope.row.auto != true" class="input_cell"> 877 <div v-if="scope.row.auto != true" class="input_cell">
874 <el-input v-model.trim="scope.row[year.field]" placeholder="请输入" 878 <el-input v-model.trim="scope.row[year.field]" placeholder="请输入"
875 @change="(val) => inputChange(val, scope, year.field)" 879 @change="(val) => inputChange(val, scope, year.field)"
876 @input="(val) => inputEventChange(val, scope, year.field, scope.row.unit == '%' ? 100 : null)" 880 @input="(val) => inputEventChange(val, scope, year.field, null)"
877 clearable></el-input> 881 clearable></el-input>
878 </div> 882 </div>
879 <span v-else> 883 <span v-else>
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!