feat: 添加参数校验并调整导线数量操作逻辑

在main.py中添加gc_x和h_arm长度校验
在ParameterForm.vue中修改导线数量操作逻辑,仅允许1或3条导线
This commit is contained in:
dmy
2026-03-02 23:20:04 +08:00
parent bcaa4a5a9e
commit 5a8953d1e5
2 changed files with 32 additions and 13 deletions

11
main.py
View File

@@ -71,6 +71,17 @@ def run_egm(para: Parameter) -> dict:
计算结果字典。 计算结果字典。
""" """
parameter_display(para) parameter_display(para)
# 参数校验gc_x 和 h_arm 长度必须一致
if len(para.gc_x) != len(para.h_arm):
error_msg = f"参数错误gc_x 长度({len(para.gc_x)})与 h_arm 长度({len(para.h_arm)})不一致"
logger.error(error_msg)
return {
"success": False,
"message": error_msg,
"data": None
}
h_whole = para.h_arm[0] # 挂点高 h_whole = para.h_arm[0] # 挂点高
string_g_len = para.string_g_len string_g_len = para.string_g_len
string_c_len = para.string_c_len string_c_len = para.string_c_len

View File

@@ -128,10 +128,10 @@
/> />
</div> </div>
<div class="col-auto"> <div class="col-auto">
<q-btn flat round color="primary" icon="add" @click="addHArm" :disable="params.parameter.h_arm.length >= 4" /> <q-btn flat round color="primary" icon="add" @click="addHArm" :disable="params.parameter.h_arm.length >= 4" v-show="params.parameter.h_arm.length === 2" />
</div> </div>
<div class="col-auto"> <div class="col-auto">
<q-btn flat round color="negative" icon="remove" @click="removeHArm" :disable="params.parameter.h_arm.length <= 2" /> <q-btn flat round color="negative" icon="remove" @click="removeHArm" :disable="params.parameter.h_arm.length <= 2" v-show="params.parameter.h_arm.length === 4" />
</div> </div>
</div> </div>
</div> </div>
@@ -152,10 +152,10 @@
/> />
</div> </div>
<div class="col-auto"> <div class="col-auto">
<q-btn flat round color="primary" icon="add" @click="addGcX" :disable="params.parameter.gc_x.length >= 4" /> <q-btn flat round color="primary" icon="add" @click="addGcX" :disable="params.parameter.gc_x.length >= 4" v-show="params.parameter.gc_x.length === 2" />
</div> </div>
<div class="col-auto"> <div class="col-auto">
<q-btn flat round color="negative" icon="remove" @click="removeGcX" :disable="params.parameter.gc_x.length <= 2" /> <q-btn flat round color="negative" icon="remove" @click="removeGcX" :disable="params.parameter.gc_x.length <= 2" v-show="params.parameter.gc_x.length === 4" />
</div> </div>
</div> </div>
</div> </div>
@@ -396,41 +396,49 @@ watch(
} }
) )
// 数组操作函数(最多3条导线即数组最多4个元素1地线+3导线) // 数组操作函数(导线数量只能是1或3条即数组长度为2或41地线+导线)
// 两个数组同步增减 // 两个数组同步增减
const addHArm = () => { const addHArm = () => {
if (params.parameter.h_arm.length < 4) { if (params.parameter.h_arm.length === 2) {
// 从1条导线增加到3条导线添加2个元素
const last = params.parameter.h_arm[params.parameter.h_arm.length - 1] || 100 const last = params.parameter.h_arm[params.parameter.h_arm.length - 1] || 100
params.parameter.h_arm.push(last - 20) params.parameter.h_arm.push(last - 20, last - 40)
// 同步增加 gc_x // 同步增加 gc_x
const lastX = params.parameter.gc_x[params.parameter.gc_x.length - 1] || 10 const lastX = params.parameter.gc_x[params.parameter.gc_x.length - 1] || 10
params.parameter.gc_x.push(lastX) params.parameter.gc_x.push(lastX, lastX)
} }
} }
const removeHArm = () => { const removeHArm = () => {
if (params.parameter.h_arm.length > 2) { if (params.parameter.h_arm.length === 4) {
// 从3条导线减少到1条导线移除2个元素
params.parameter.h_arm.pop()
params.parameter.h_arm.pop() params.parameter.h_arm.pop()
// 同步删除 gc_x // 同步删除 gc_x
params.parameter.gc_x.pop() params.parameter.gc_x.pop()
params.parameter.gc_x.pop()
} }
} }
const addGcX = () => { const addGcX = () => {
if (params.parameter.gc_x.length < 4) { if (params.parameter.gc_x.length === 2) {
// 从1条导线增加到3条导线添加2个元素
const lastX = params.parameter.gc_x[params.parameter.gc_x.length - 1] || 10 const lastX = params.parameter.gc_x[params.parameter.gc_x.length - 1] || 10
params.parameter.gc_x.push(lastX) params.parameter.gc_x.push(lastX, lastX)
// 同步增加 h_arm // 同步增加 h_arm
const last = params.parameter.h_arm[params.parameter.h_arm.length - 1] || 100 const last = params.parameter.h_arm[params.parameter.h_arm.length - 1] || 100
params.parameter.h_arm.push(last - 20) params.parameter.h_arm.push(last - 20, last - 40)
} }
} }
const removeGcX = () => { const removeGcX = () => {
if (params.parameter.gc_x.length > 2) { if (params.parameter.gc_x.length === 4) {
// 从3条导线减少到1条导线移除2个元素
params.parameter.gc_x.pop()
params.parameter.gc_x.pop() params.parameter.gc_x.pop()
// 同步删除 h_arm // 同步删除 h_arm
params.parameter.h_arm.pop() params.parameter.h_arm.pop()
params.parameter.h_arm.pop()
} }
} }