86021765 by lihua

fix

1 parent 18970fba
......@@ -1464,7 +1464,7 @@ const panelChange = (scope, row) => {
@visible-change="(vis) => visibleChange(vis, item)" />
<el-date-picker :class="[item.col, { is_block: item.block }]" v-else-if="item.type == 'date-month'"
v-model="formInline[item.field]" type="month" :format="item.format ?? 'YYYY-MM'" :value-format="item.valueFormat ?? 'YYYY-MM'"
:placeholder="item.placeholder" :unlink-panels="item.unlink ?? false" :shortcuts="item.shortcuts ?? []"
:placeholder="item.placeholder" :unlink-panels="item.unlink ?? false" :shortcuts="item.shortcuts ?? []" :clearable="item.clearable ?? true"
:default-value="item.defaultDate" :disabled="item.disabled ?? false" :disabled-date="item.disabledDate"
:popper-class="item.popperClass" @change="(val) => inputChange(val, item)"
@panel-change="(date, mode) => panelChange({ date, mode }, item)"
......
......@@ -62,7 +62,7 @@ const valuateFormItems: any = ref([
placeholder: "请选择",
format: 'YYYY-MM-DD',
valueFormat: 'YYYY-MM-DD',
clearable: true,
clearable: false,
required: true,
style: { width: 'calc(33.33% - 70px)', 'margin-right': '8px' },
popperClass: 'date-month-popper',
......@@ -128,7 +128,7 @@ const valuateFormItems: any = ref([
]);
const valuateFormRules = ref({
// damGuid: [required('请选择数据产品名称')],
damGuid: [required('请选择数据产品名称')],
evaluateBaseDate: [required('请选择基准日')],
evaluateMethod: [required('请选择评估方法')],
useYears: [{ type: 'number', min: 1, max: 10, message: "请填写年限1~10", trigger: "change", },]
......@@ -572,11 +572,16 @@ const inputChange = (val, scope, field) => {
} else {
row[field] = val = parseFloat(val || 0).toFixed(2);
}
if (val == 'NaN') {
row[field] = '0.00';
}
}
/** 输入框输入触发事件 */
const inputEventChange = (val, scope, field, max: any = null) => {
let row = scope.row;
if (row.indexName == '综合分成率' || row.indexName == '衰减率') { //只能输入正数
let row = scope.row;
row[field] = row[field].toString().replace(/[^\d.]/g, "")
row[field] = row[field].toString().replace(/\.{2,}/g, ".")
row[field] = row[field].toString().replace(".", "$#$").replace(/\./g, "").replace("$#$", ".")
......@@ -585,6 +590,29 @@ const inputEventChange = (val, scope, field, max: any = null) => {
if (max !== null && row[field] > max) {
row[field] = max;
}
} else { //需要支持负数
row[field] = row[field].toString().replace(/[^\d.-]/g, "")
row[field] = row[field].toString().replace(/\.{2,}/g, ".")
// 第四步:移除整数部分前面不必要的零,但保留小数部分的有效零
if (row[field].startsWith('-')) {
// 对于负数,去掉负号进行处理
let tempValue = row[field].substring(1);
tempValue = tempValue.replace(/^0*(\d+(\.\d{0,2})?)/, '$1');
row[field] = '-' + tempValue;
} else {
// 对于正数直接处理
row[field] = row[field].replace(/^0*(\d+(\.\d{0,2})?)/, '$1');
}
row[field] = row[field].toString().replace(/^(-?\d{0,12})(\.\d{0,2})?$/, '$1$2');
if (max !== null) {
if (row[field] > max) {
row[field] = max;
}
if (row[field] < 0 && row[field] < -max) {
row[field] = -max;
}
}
}
}
const incomeCalculateData = computed(() => { //响应式不生效
......@@ -606,10 +634,14 @@ const incomeCalculateData = computed(() => { //响应式不生效
incomeYears.value.forEach((year, i) => {
let C6 = transfer(data[5][year.field])
let C7 = transfer(data[6][year.field])
let sumC7: any = C7;
let sumC7: any = 0;
if (i == 0) {
sumC7 = C7;
} else {
incomeYears.value.slice(0, i + 1).forEach((item) => {
sumC7 = sumC7 + transfer(data[6][item.field]);
})
}
resultInfo['综合分成率'].push(changeNum(C6 * (1 - sumC7 + C7 / 2) * 100, 2, true)); //TODO综合分成率算法有问题
let C1 = transfer(data[0][year.field], false)
let C5 = transfer(data[4][year.field])
......@@ -646,15 +678,18 @@ const submit = () => {
} else {
params.valuationEarningsRQVOList = incomeTableData.value;
params.damValuation = incomeCalculateData.value['数据资产估值'];
params.valuationEarningsRQVOList.forEach(d => {
for (const d of params.valuationEarningsRQVOList) {
let years: any = {};
incomeYears.value.forEach(y => {
for (const y of incomeYears.value) {
if (d.auto != true && d[y.field] == null) {
proxy.$ElMessage.error(`收益法的指标【${d.indexName}】预测年限中存在空值,请输入`);
return;
}
years[y.field] = d[y.field];
})
}
d.predictedYears = years;
})
}
params.evaluateBaseDate = getLastDayOfMonth(params.evaluateBaseDate);
}
fullscreenLoading.value = true;
if (!route.query.guid) {
saveValuationMode(params).then((res: any) => {
......@@ -738,8 +773,6 @@ onBeforeMount(() => {
item.default = detailData[item.field];
if (item.field == 'evaluateMethod') {
valuateFormItems.value.at(-1).visible = item.default == '2';
} else if (item.field == 'evaluateBaseDate') {
item.default = item.default.substring(0, 7);
}
})
if (detailData.evaluateMethod == '2') {
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!