feat: 将额定电压输入改为下拉选择框

将额定电压从数字输入改为预定义选项的下拉选择框,支持常见的电压等级
This commit is contained in:
dmy
2026-03-02 21:17:34 +08:00
parent 9a5e8e0076
commit 4ae2f36049
3 changed files with 12 additions and 6 deletions

View File

@@ -26,12 +26,11 @@
<q-card-section>
<div class="row q-col-gutter-md">
<div class="col-12 col-md-6">
<q-input
<q-select
v-model="params.parameter.rated_voltage"
type="number"
:options="voltageOptions"
label="额定电压等级 (kV)"
hint="输电线路的额定电压"
:rules="[val => val > 0 || '必须大于0']"
/>
</div>
<div class="col-12 col-md-6">
@@ -313,7 +312,7 @@ import LogComponent from './Log.vue'
// 默认参数
const defaultParams: AllParameters = {
parameter: {
rated_voltage: 750,
rated_voltage: '500kV',
h_c_sag: 14.43,
h_g_sag: 11.67,
insulator_c_len: 7.02,
@@ -342,6 +341,11 @@ const result = ref<string | null>(null)
const error = ref<string | null>(null)
const logRef = ref<InstanceType<typeof LogComponent> | null>(null)
const voltageOptions = [
'110kV', '220kV', '330kV', '500kV', '750kV','1000kV',
'±500kV', '±660kV', '±800kV', '±1100kV'
]
// 数组操作函数
const addHArm = () => {
const last = params.parameter.h_arm[params.parameter.h_arm.length - 1] || 100

View File

@@ -2,7 +2,7 @@
export interface Parameter {
// 基本参数
rated_voltage: number // 额定电压等级 (kV)
rated_voltage: string // 额定电压等级 (kV)
h_c_sag: number // 导线弧垂 (m)
h_g_sag: number // 地线弧垂 (m)
insulator_c_len: number // 导线串子绝缘长度 (m)

View File

@@ -101,7 +101,9 @@ class EGMWebApp:
]
para.h_arm = list(parameter_data.get('h_arm', [150, 130]))
para.altitude = int(parameter_data.get('altitude', 1000))
para.rated_voltage = float(parameter_data.get('rated_voltage', 750))
# 解析电压等级字符串,如 "500kV" -> 500
rated_voltage_str = str(parameter_data.get('rated_voltage', '500kV'))
para.rated_voltage = float(rated_voltage_str.replace('kV', '').replace('±', ''))
para.ng = float(advance_data.get('ng', -1))
para.Ip_a = float(advance_data.get('Ip_a', -1))