c063a9a1 by lihua

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

1 parent ea3da759
...@@ -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>
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!