fix
Showing
2 changed files
with
55 additions
and
22 deletions
| ... | @@ -1464,7 +1464,7 @@ const panelChange = (scope, row) => { | ... | @@ -1464,7 +1464,7 @@ const panelChange = (scope, row) => { |
| 1464 | @visible-change="(vis) => visibleChange(vis, item)" /> | 1464 | @visible-change="(vis) => visibleChange(vis, item)" /> |
| 1465 | <el-date-picker :class="[item.col, { is_block: item.block }]" v-else-if="item.type == 'date-month'" | 1465 | <el-date-picker :class="[item.col, { is_block: item.block }]" v-else-if="item.type == 'date-month'" |
| 1466 | v-model="formInline[item.field]" type="month" :format="item.format ?? 'YYYY-MM'" :value-format="item.valueFormat ?? 'YYYY-MM'" | 1466 | v-model="formInline[item.field]" type="month" :format="item.format ?? 'YYYY-MM'" :value-format="item.valueFormat ?? 'YYYY-MM'" |
| 1467 | :placeholder="item.placeholder" :unlink-panels="item.unlink ?? false" :shortcuts="item.shortcuts ?? []" | 1467 | :placeholder="item.placeholder" :unlink-panels="item.unlink ?? false" :shortcuts="item.shortcuts ?? []" :clearable="item.clearable ?? true" |
| 1468 | :default-value="item.defaultDate" :disabled="item.disabled ?? false" :disabled-date="item.disabledDate" | 1468 | :default-value="item.defaultDate" :disabled="item.disabled ?? false" :disabled-date="item.disabledDate" |
| 1469 | :popper-class="item.popperClass" @change="(val) => inputChange(val, item)" | 1469 | :popper-class="item.popperClass" @change="(val) => inputChange(val, item)" |
| 1470 | @panel-change="(date, mode) => panelChange({ date, mode }, item)" | 1470 | @panel-change="(date, mode) => panelChange({ date, mode }, item)" | ... | ... |
| ... | @@ -62,7 +62,7 @@ const valuateFormItems: any = ref([ | ... | @@ -62,7 +62,7 @@ const valuateFormItems: any = ref([ |
| 62 | placeholder: "请选择", | 62 | placeholder: "请选择", |
| 63 | format: 'YYYY-MM-DD', | 63 | format: 'YYYY-MM-DD', |
| 64 | valueFormat: 'YYYY-MM-DD', | 64 | valueFormat: 'YYYY-MM-DD', |
| 65 | clearable: true, | 65 | clearable: false, |
| 66 | required: true, | 66 | required: true, |
| 67 | style: { width: 'calc(33.33% - 70px)', 'margin-right': '8px' }, | 67 | style: { width: 'calc(33.33% - 70px)', 'margin-right': '8px' }, |
| 68 | popperClass: 'date-month-popper', | 68 | popperClass: 'date-month-popper', |
| ... | @@ -128,7 +128,7 @@ const valuateFormItems: any = ref([ | ... | @@ -128,7 +128,7 @@ const valuateFormItems: any = ref([ |
| 128 | ]); | 128 | ]); |
| 129 | 129 | ||
| 130 | const valuateFormRules = ref({ | 130 | const valuateFormRules = ref({ |
| 131 | // damGuid: [required('请选择数据产品名称')], | 131 | damGuid: [required('请选择数据产品名称')], |
| 132 | evaluateBaseDate: [required('请选择基准日')], | 132 | evaluateBaseDate: [required('请选择基准日')], |
| 133 | evaluateMethod: [required('请选择评估方法')], | 133 | evaluateMethod: [required('请选择评估方法')], |
| 134 | useYears: [{ type: 'number', min: 1, max: 10, message: "请填写年限1~10", trigger: "change", },] | 134 | useYears: [{ type: 'number', min: 1, max: 10, message: "请填写年限1~10", trigger: "change", },] |
| ... | @@ -572,18 +572,46 @@ const inputChange = (val, scope, field) => { | ... | @@ -572,18 +572,46 @@ const inputChange = (val, scope, field) => { |
| 572 | } else { | 572 | } else { |
| 573 | row[field] = val = parseFloat(val || 0).toFixed(2); | 573 | row[field] = val = parseFloat(val || 0).toFixed(2); |
| 574 | } | 574 | } |
| 575 | if (val == 'NaN') { | ||
| 576 | row[field] = '0.00'; | ||
| 577 | } | ||
| 575 | } | 578 | } |
| 576 | 579 | ||
| 577 | /** 输入框输入触发事件 */ | 580 | /** 输入框输入触发事件 */ |
| 578 | const inputEventChange = (val, scope, field, max: any = null) => { | 581 | const inputEventChange = (val, scope, field, max: any = null) => { |
| 579 | let row = scope.row; | 582 | let row = scope.row; |
| 580 | row[field] = row[field].toString().replace(/[^\d.]/g, "") | 583 | if (row.indexName == '综合分成率' || row.indexName == '衰减率') { //只能输入正数 |
| 581 | row[field] = row[field].toString().replace(/\.{2,}/g, ".") | 584 | let row = scope.row; |
| 582 | row[field] = row[field].toString().replace(".", "$#$").replace(/\./g, "").replace("$#$", ".") | 585 | row[field] = row[field].toString().replace(/[^\d.]/g, "") |
| 583 | row[field] = row[field].toString().replace(/^(\-)*(\d+)\.(\d\d\d\d\d\d).*$/, "$1$2.$3") | 586 | row[field] = row[field].toString().replace(/\.{2,}/g, ".") |
| 584 | row[field] = row[field].toString().replace(/^\D*(\d{0,12}(?:\.\d{0,2})?).*$/g, "$1") | 587 | row[field] = row[field].toString().replace(".", "$#$").replace(/\./g, "").replace("$#$", ".") |
| 585 | if (max !== null && row[field] > max) { | 588 | row[field] = row[field].toString().replace(/^(\-)*(\d+)\.(\d\d\d\d\d\d).*$/, "$1$2.$3") |
| 586 | row[field] = max; | 589 | row[field] = row[field].toString().replace(/^\D*(\d{0,12}(?:\.\d{0,2})?).*$/g, "$1") |
| 590 | if (max !== null && row[field] > max) { | ||
| 591 | row[field] = max; | ||
| 592 | } | ||
| 593 | } else { //需要支持负数 | ||
| 594 | row[field] = row[field].toString().replace(/[^\d.-]/g, "") | ||
| 595 | row[field] = row[field].toString().replace(/\.{2,}/g, ".") | ||
| 596 | // 第四步:移除整数部分前面不必要的零,但保留小数部分的有效零 | ||
| 597 | if (row[field].startsWith('-')) { | ||
| 598 | // 对于负数,去掉负号进行处理 | ||
| 599 | let tempValue = row[field].substring(1); | ||
| 600 | tempValue = tempValue.replace(/^0*(\d+(\.\d{0,2})?)/, '$1'); | ||
| 601 | row[field] = '-' + tempValue; | ||
| 602 | } else { | ||
| 603 | // 对于正数直接处理 | ||
| 604 | row[field] = row[field].replace(/^0*(\d+(\.\d{0,2})?)/, '$1'); | ||
| 605 | } | ||
| 606 | row[field] = row[field].toString().replace(/^(-?\d{0,12})(\.\d{0,2})?$/, '$1$2'); | ||
| 607 | if (max !== null) { | ||
| 608 | if (row[field] > max) { | ||
| 609 | row[field] = max; | ||
| 610 | } | ||
| 611 | if (row[field] < 0 && row[field] < -max) { | ||
| 612 | row[field] = -max; | ||
| 613 | } | ||
| 614 | } | ||
| 587 | } | 615 | } |
| 588 | } | 616 | } |
| 589 | 617 | ||
| ... | @@ -606,10 +634,14 @@ const incomeCalculateData = computed(() => { //响应式不生效 | ... | @@ -606,10 +634,14 @@ const incomeCalculateData = computed(() => { //响应式不生效 |
| 606 | incomeYears.value.forEach((year, i) => { | 634 | incomeYears.value.forEach((year, i) => { |
| 607 | let C6 = transfer(data[5][year.field]) | 635 | let C6 = transfer(data[5][year.field]) |
| 608 | let C7 = transfer(data[6][year.field]) | 636 | let C7 = transfer(data[6][year.field]) |
| 609 | let sumC7: any = C7; | 637 | let sumC7: any = 0; |
| 610 | incomeYears.value.slice(0, i + 1).forEach((item) => { | 638 | if (i == 0) { |
| 611 | sumC7 = sumC7 + transfer(data[6][item.field]); | 639 | sumC7 = C7; |
| 612 | }) | 640 | } else { |
| 641 | incomeYears.value.slice(0, i + 1).forEach((item) => { | ||
| 642 | sumC7 = sumC7 + transfer(data[6][item.field]); | ||
| 643 | }) | ||
| 644 | } | ||
| 613 | resultInfo['综合分成率'].push(changeNum(C6 * (1 - sumC7 + C7 / 2) * 100, 2, true)); //TODO综合分成率算法有问题 | 645 | resultInfo['综合分成率'].push(changeNum(C6 * (1 - sumC7 + C7 / 2) * 100, 2, true)); //TODO综合分成率算法有问题 |
| 614 | let C1 = transfer(data[0][year.field], false) | 646 | let C1 = transfer(data[0][year.field], false) |
| 615 | let C5 = transfer(data[4][year.field]) | 647 | let C5 = transfer(data[4][year.field]) |
| ... | @@ -641,20 +673,23 @@ const submit = () => { | ... | @@ -641,20 +673,23 @@ const submit = () => { |
| 641 | params.damValuation = costTableSummaryValue.value; | 673 | params.damValuation = costTableSummaryValue.value; |
| 642 | if (!costTableData.value.some(table => table.amount !== '')) { | 674 | if (!costTableData.value.some(table => table.amount !== '')) { |
| 643 | proxy.$ElMessage.error('成本法请至少输入一项指标金额'); | 675 | proxy.$ElMessage.error('成本法请至少输入一项指标金额'); |
| 644 | return | 676 | return |
| 645 | } | 677 | } |
| 646 | } else { | 678 | } else { |
| 647 | params.valuationEarningsRQVOList = incomeTableData.value; | 679 | params.valuationEarningsRQVOList = incomeTableData.value; |
| 648 | params.damValuation = incomeCalculateData.value['数据资产估值']; | 680 | params.damValuation = incomeCalculateData.value['数据资产估值']; |
| 649 | params.valuationEarningsRQVOList.forEach(d => { | 681 | for (const d of params.valuationEarningsRQVOList) { |
| 650 | let years: any = {}; | 682 | let years: any = {}; |
| 651 | incomeYears.value.forEach(y => { | 683 | for (const y of incomeYears.value) { |
| 684 | if (d.auto != true && d[y.field] == null) { | ||
| 685 | proxy.$ElMessage.error(`收益法的指标【${d.indexName}】预测年限中存在空值,请输入`); | ||
| 686 | return; | ||
| 687 | } | ||
| 652 | years[y.field] = d[y.field]; | 688 | years[y.field] = d[y.field]; |
| 653 | }) | 689 | } |
| 654 | d.predictedYears = years; | 690 | d.predictedYears = years; |
| 655 | }) | 691 | } |
| 656 | } | 692 | } |
| 657 | params.evaluateBaseDate = getLastDayOfMonth(params.evaluateBaseDate); | ||
| 658 | fullscreenLoading.value = true; | 693 | fullscreenLoading.value = true; |
| 659 | if (!route.query.guid) { | 694 | if (!route.query.guid) { |
| 660 | saveValuationMode(params).then((res: any) => { | 695 | saveValuationMode(params).then((res: any) => { |
| ... | @@ -738,8 +773,6 @@ onBeforeMount(() => { | ... | @@ -738,8 +773,6 @@ onBeforeMount(() => { |
| 738 | item.default = detailData[item.field]; | 773 | item.default = detailData[item.field]; |
| 739 | if (item.field == 'evaluateMethod') { | 774 | if (item.field == 'evaluateMethod') { |
| 740 | valuateFormItems.value.at(-1).visible = item.default == '2'; | 775 | valuateFormItems.value.at(-1).visible = item.default == '2'; |
| 741 | } else if (item.field == 'evaluateBaseDate') { | ||
| 742 | item.default = item.default.substring(0, 7); | ||
| 743 | } | 776 | } |
| 744 | }) | 777 | }) |
| 745 | if (detailData.evaluateMethod == '2') { | 778 | if (detailData.evaluateMethod == '2') { | ... | ... |
-
Please register or sign in to post a comment