fix(nmSubWxs): 完善未开放多相求解模型的界面显示

- 补充油气两相、气水两相和油气水三相的模型名称
- 未开放模型显示“暂不支持求解”,避免当前模型下拉框为空
- 禁用未开放模型的下拉切换,保留现有求解范围限制
- 补充中文翻译并更新 qm 文件
feature/nmNum-multi-gauge-record
lh 3 days ago
parent ffd947b39a
commit b2a0e6cbaa

Binary file not shown.

@ -5378,6 +5378,18 @@ Please check your input coordinates.</source>
<source>Oil-water two-phase</source> <source>Oil-water two-phase</source>
<translation></translation> <translation></translation>
</message> </message>
<message>
<source>Oil-gas two-phase (solver unavailable)</source>
<translation></translation>
</message>
<message>
<source>Gas-water two-phase (solver unavailable)</source>
<translation></translation>
</message>
<message>
<source>Oil-gas-water three-phase (solver unavailable)</source>
<translation></translation>
</message>
<message> <message>
<source>Include other wells</source> <source>Include other wells</source>
<translation></translation> <translation></translation>

@ -101,8 +101,17 @@ static QString solverModelDisplayName(NM_SOLVER_MODEL_TYPE eType)
return nmWxNumericalDesign::tr("Water single-phase variable pvt"); return nmWxNumericalDesign::tr("Water single-phase variable pvt");
case SMT_Gas_VariablePvt: case SMT_Gas_VariablePvt:
return nmWxNumericalDesign::tr("Gas single-phase variable pvt"); return nmWxNumericalDesign::tr("Gas single-phase variable pvt");
case SMT_Oil_Gas_TwoPhase:
return nmWxNumericalDesign::tr(
"Oil-gas two-phase (solver unavailable)");
case SMT_Oil_Water_TwoPhase: case SMT_Oil_Water_TwoPhase:
return nmWxNumericalDesign::tr("Oil-water two-phase"); return nmWxNumericalDesign::tr("Oil-water two-phase");
case SMT_Gas_Water_TwoPhase:
return nmWxNumericalDesign::tr(
"Gas-water two-phase (solver unavailable)");
case SMT_Oil_Gas_Water_ThreePhase:
return nmWxNumericalDesign::tr(
"Oil-gas-water three-phase (solver unavailable)");
default: default:
return QString(); return QString();
} }
@ -338,6 +347,15 @@ void nmWxNumericalDesign::updateCurrentModelDisplay()
NM_PHASE_TYPE ePhase = (pReservoir != nullptr) ? pReservoir->getPhaseType() : PHASE_UNKNOWN; NM_PHASE_TYPE ePhase = (pReservoir != nullptr) ? pReservoir->getPhaseType() : PHASE_UNKNOWN;
NM_SOLVER_MODEL_TYPE eCurrentType = pManager->getSolverModelType(); NM_SOLVER_MODEL_TYPE eCurrentType = pManager->getSolverModelType();
const bool bCurrentModelSupported =
nmIsSupportedPebiSolverModel(eCurrentType);
if(!bCurrentModelSupported) {
// 未开放模型仍显示分析页传入的真实相态,但不允许用户切换。
const QString sCurrentModelName = solverModelDisplayName(eCurrentType);
if(!sCurrentModelName.isEmpty()) {
m_pCurrentModelCombo->addItem(sCurrentModelName, eCurrentType);
}
} else {
switch(ePhase) { switch(ePhase) {
case PHASE_Oil: case PHASE_Oil:
m_pCurrentModelCombo->addItem(solverModelDisplayName(SMT_Oil_ConstPvt), SMT_Oil_ConstPvt); m_pCurrentModelCombo->addItem(solverModelDisplayName(SMT_Oil_ConstPvt), SMT_Oil_ConstPvt);
@ -356,13 +374,15 @@ void nmWxNumericalDesign::updateCurrentModelDisplay()
default: default:
break; break;
} }
}
int nIndex = m_pCurrentModelCombo->findData(eCurrentType); int nIndex = m_pCurrentModelCombo->findData(eCurrentType);
if(nIndex >= 0) { if(nIndex >= 0) {
m_pCurrentModelCombo->setCurrentIndex(nIndex); m_pCurrentModelCombo->setCurrentIndex(nIndex);
} }
m_pCurrentModelCombo->setEnabled(true); m_pCurrentModelCombo->setEnabled(
bCurrentModelSupported && m_pCurrentModelCombo->count() > 0);
m_bFillingCurrentModelCombo = false; m_bFillingCurrentModelCombo = false;
} }

Loading…
Cancel
Save