Explorar el Código

perf(views): 编写"算法管理"模块多语言

wangshun hace 1 mes
padre
commit
849850c267

+ 47 - 1
src/i18n/locales/zh.json

@@ -43,7 +43,53 @@
     "type": "类型",
     "waitingtime": "等待时间"
   },
-  "algorithmManage": {},
+  "algorithmManage": {
+    "algorithmConfiguration": "算法配置",
+    "backwaterTemperatureSettingValue": "冷却总管回水温度设定值(℃)",
+    "computingCycle": "计算周期",
+    "continuousOperation": "是否需要连续运行",
+    "controlBasis": "控制依据",
+    "controlInstruction": "是否下发控制指令",
+    "controlStepSize": "最小控制步长(℃)",
+    "coolingOffPeriod": "智控策略降温调控周期",
+    "coolingSetValue": "动态调整冷却总管回水温度设定值",
+    "copAlgorithm": "COP算法",
+    "deadZone": "死区",
+    "dynamicAdjustment": "动态调整",
+    "effluentInterval": "冷冻水出水温度设定区间",
+    "energyEfficiencyAnalysisCalculationMethod": "能效分析计算方式",
+    "energyEfficiencyAnalysisSettings": "能效分析设置",
+    "flowChart": "流量表",
+    "freezingSetValue": "动态调整冷冻总管出水温度设定值",
+    "humiditySafetyMargin": "湿度安全余量",
+    "initialValue": "初始值",
+    "intelligentControlChilledWater": "主机冷冻水智控",
+    "intelligentEnergyConservation": "智能节能",
+    "intelligentMode": "智能模式",
+    "lowerLimit": "下限",
+    "lowerLimitSafeDifferentialPressure": "安全压差下限",
+    "lowerLimitSafeLoad": "安全负载下限",
+    "outdoorWetBulbTemperature": "室外湿球温度",
+    "periodTime": "时间段",
+    "popupReminder": "是否弹窗提醒",
+    "prioritizeRequirements": "需求优先",
+    "reEnableCompensationValue": "再启补偿值",
+    "read": "读取",
+    "regulationCycle": "智控策略升温调控周期",
+    "shutdownCompensationValue": "停机补偿值",
+    "sourceTemperature": "供水温度来源",
+    "stepSizeForWaterTemperatureSetting": "水温设定步长(℃)",
+    "systemFunctionSettings": "系统功能设置",
+    "temperatureHumidity": "温湿度",
+    "temperatureHumidityAcquisitionCycle": "温湿度采集周期(min)",
+    "temperatureRange": "温度区间",
+    "temperatureSafetyMargin": "温度安全余量",
+    "thermometer": "冷量表",
+    "upperLimit": "上限",
+    "waterOutletSetting": "初始冷冻水出水温度设定值",
+    "waterTemperatureControlMode": "水温控制模式",
+    "weighted": "加权"
+  },
   "common": {
     "add": "添加",
     "addNew": "新增",

+ 88 - 53
src/views/algorithm-manage/AlgorithmManage.vue

@@ -31,8 +31,8 @@ const setIntervalRefs = ref<InstanceType<typeof SetInterval>[]>([]);
 const equipmentControlRefs = ref<InstanceType<typeof EquipmentControl>[]>([]);
 
 const { handleRequest } = useRequest();
-const activeKey = ref<string[]>(['1', '2', '3']);
-const customStyle = 'border-radius: 4px;;border: 0;background: #F5F6F7;';
+const activeKey = ref<string[]>(['intelligentControl', 'functionSettings']);
+const customStyle = 'border-radius: 4px;;border: 0;background: #F5F6F7;margin-bottom: 4px';
 const analysisOpen = ref<boolean>(false);
 const setOpen = ref<boolean>(false);
 const temperatureSettingValue = ref<string>('');
@@ -285,15 +285,15 @@ onMounted(() => {
 <template>
   <div>
     <AFlex justify="space-between">
-      <div class="title-text">算法配置</div>
+      <div class="title-text">{{ $t('algorithmManage.algorithmConfiguration') }}</div>
       <DeviceGroupSelect @change="handleDevGroupChange" />
     </AFlex>
     <div class="algorithm-content">
       <ACollapse v-model:active-key="activeKey" style="border: 0" collapsible="icon">
-        <ACollapsePanel key="1" :style="customStyle">
+        <ACollapsePanel key="intelligentControl" :style="customStyle">
           <template #header>
             <AFlex align="center" class="header-heigth">
-              <span class="header-text">主机冷冻水智控</span>
+              <span class="header-text">{{ $t('algorithmManage.intelligentControlChilledWater') }}</span>
               <ASwitch v-model:checked="algorithmForm.enabled" />
             </AFlex>
           </template>
@@ -307,37 +307,39 @@ onMounted(() => {
               :rules="rules"
             >
               <AFlex class="flex-bottom" :gap="40">
-                <AFormItem label="是否下发控制指令" name="sendCtrlCmd">
+                <AFormItem :label="t('algorithmManage.controlInstruction')" name="sendCtrlCmd">
                   <ARadioGroup v-model:value="algorithmForm.sendCtrlCmd">
-                    <ARadio class="radio-right" :value="true"></ARadio>
-                    <ARadio :value="false"></ARadio>
+                    <ARadio class="radio-right" :value="true">{{ $t('common.yes') }}</ARadio>
+                    <ARadio :value="false">{{ $t('common.no') }}</ARadio>
                   </ARadioGroup>
                 </AFormItem>
-                <AFormItem label="是否弹窗提醒" name="msgBox">
+                <AFormItem :label="$t('algorithmManage.popupReminder')" name="msgBox">
                   <ARadioGroup v-model:value="algorithmForm.msgBox">
-                    <ARadio class="radio-right" :value="true"></ARadio>
-                    <ARadio :value="false"></ARadio>
+                    <ARadio class="radio-right" :value="true">{{ $t('common.yes') }}</ARadio>
+                    <ARadio :value="false">{{ $t('common.no') }}</ARadio>
                   </ARadioGroup>
                 </AFormItem>
-                <AFormItem label="智控策略升温调控周期" name="tempRiseCtrlPeriod">
+                <AFormItem :label="t('algorithmManage.regulationCycle')" name="tempRiseCtrlPeriod">
                   <AInputNumber
                     v-model:value="algorithmForm.tempRiseCtrlPeriod"
                     class="input-width"
                     addon-after="min"
                     :min="1"
                     :max="99999"
+                    :placeholder="t('common.pleaseEnter')"
                   />
                 </AFormItem>
-                <AFormItem label="智控策略降温调控周期" name="tempReductionCtrlPeriod">
+                <AFormItem :label="t('algorithmManage.coolingOffPeriod')" name="tempReductionCtrlPeriod">
                   <AInputNumber
                     v-model:value="algorithmForm.tempReductionCtrlPeriod"
                     class="input-width"
                     addon-after="min"
                     :min="1"
                     :max="99999"
+                    :placeholder="t('common.pleaseEnter')"
                   />
                 </AFormItem>
-                <AFormItem class="input-width" label="最小控制步长(℃)" name="minCtrlStep">
+                <AFormItem class="input-width" :label="t('algorithmManage.controlStepSize')" name="minCtrlStep">
                   <ASelect
                     v-model:value="algorithmForm.minCtrlStep"
                     :options="algTempCtrlMinStep"
@@ -346,7 +348,9 @@ onMounted(() => {
                   />
                 </AFormItem>
               </AFlex>
-              <div class="analysis-style interval-style"><span>* </span>冷冻水出水温度设定区间</div>
+              <div class="analysis-style interval-style">
+                <span>* </span>{{ $t('algorithmManage.effluentInterval') }}
+              </div>
 
               <div v-for="(item, index) in temperatureRangeList" :key="index">
                 <SetInterval
@@ -358,47 +362,61 @@ onMounted(() => {
                 />
               </div>
 
-              <div class="analysis-style"><span>* </span>初始冷冻水出水温度设定值</div>
+              <div class="analysis-style"><span>* </span>{{ $t('algorithmManage.waterOutletSetting') }}</div>
               <MonthSetting ref="monthSetting" :temperature-setting-value="temperatureSettingValue" />
               <AFlex class="flex-bottom" wrap="wrap" :gap="40">
-                <AFormItem label="智能模式" name="intelligentMode">
+                <AFormItem :label="t('algorithmManage.intelligentMode')" name="intelligentMode">
                   <ARadioGroup v-model:value="algorithmForm.intelligentMode">
                     <ARadio class="radio-right" :value="0">
                       <AFlex align="center">
-                        <div>智能节能</div>
+                        <div>{{ $t('algorithmManage.intelligentEnergyConservation') }}</div>
                         <SvgIcon class="icon-style" name="question-circle-o" />
                       </AFlex>
                     </ARadio>
                     <ARadio :value="1">
                       <AFlex align="center">
-                        <div>需求优先</div>
+                        <div>{{ $t('algorithmManage.prioritizeRequirements') }}</div>
                         <SvgIcon class="icon-style" name="question-circle-o" />
                       </AFlex>
                     </ARadio>
                   </ARadioGroup>
                 </AFormItem>
-                <AFormItem label="控制依据" name="controlBasis">
+                <AFormItem :label="t('algorithmManage.controlBasis')" name="controlBasis">
                   <ARadioGroup v-model:value="algorithmForm.controlBasis">
-                    <ARadio class="radio-right" :value="0">温度</ARadio>
-                    <ARadio class="radio-right" :value="1">湿度</ARadio>
-                    <ARadio :value="2">温湿度</ARadio>
+                    <ARadio class="radio-right" :value="0">{{ $t('envMonitor.temperature') }}</ARadio>
+                    <ARadio class="radio-right" :value="1">{{ $t('envMonitor.humidity') }}</ARadio>
+                    <ARadio :value="2">{{ $t('algorithmManage.temperatureHumidity') }}</ARadio>
                   </ARadioGroup>
                 </AFormItem>
-                <AFormItem label="计算周期" name="period">
-                  <AInputNumber v-model:value="algorithmForm.period" class="input-width" addon-after="min" />
+                <AFormItem :label="t('algorithmManage.computingCycle')" name="period">
+                  <AInputNumber
+                    :placeholder="t('common.pleaseEnter')"
+                    v-model:value="algorithmForm.period"
+                    class="input-width"
+                    addon-after="min"
+                  />
                 </AFormItem>
-                <AFormItem label="温度安全余量" name="tempSafetyMargin">
-                  <AInputNumber v-model:value="algorithmForm.tempSafetyMargin" class="input-width" addon-after="℃" />
+                <AFormItem :label="t('algorithmManage.temperatureSafetyMargin')" name="tempSafetyMargin">
+                  <AInputNumber
+                    :placeholder="t('common.pleaseEnter')"
+                    v-model:value="algorithmForm.tempSafetyMargin"
+                    class="input-width"
+                    addon-after="℃"
+                  />
                 </AFormItem>
 
-                <AFormItem label="湿度安全余量" name="humiditySafetyMargin">
+                <AFormItem :label="t('algorithmManage.humiditySafetyMargin')" name="humiditySafetyMargin">
                   <AInputNumber
                     v-model:value="algorithmForm.humiditySafetyMargin"
                     class="input-width"
                     addon-after="%"
+                    :placeholder="t('common.pleaseEnter')"
                   />
                 </AFormItem>
-                <AFormItem label="温湿度采集周期(min)" name="tempHumidityCollectPeriod">
+                <AFormItem
+                  :label="t('algorithmManage.temperatureHumidityAcquisitionCycle')"
+                  name="tempHumidityCollectPeriod"
+                >
                   <ASelect
                     class="input-width"
                     v-model:value="algorithmForm.tempHumidityCollectPeriod"
@@ -407,10 +425,10 @@ onMounted(() => {
                     :placeholder="$t('common.plzSelect')"
                   />
                 </AFormItem>
-                <AFormItem label="供水温度来源" name="waterSupplyTempSource">
+                <AFormItem :label="t('algorithmManage.sourceTemperature')" name="waterSupplyTempSource">
                   <ARadioGroup v-model:value="algorithmForm.waterSupplyTempSource">
-                    <ARadio class="radio-right" :value="0">加权 </ARadio>
-                    <ARadio :value="1"> 读取 </ARadio>
+                    <ARadio class="radio-right" :value="0">{{ $t('algorithmManage.weighted') }} </ARadio>
+                    <ARadio :value="1"> {{ $t('algorithmManage.read') }} </ARadio>
                   </ARadioGroup>
                 </AFormItem>
               </AFlex>
@@ -438,59 +456,76 @@ onMounted(() => {
           />
         </ACollapsePanel>
 
-        <ACollapsePanel key="3" :style="customStyle">
+        <ACollapsePanel key="functionSettings" :style="customStyle">
           <template #header>
             <AFlex align="center" class="header-heigth">
-              <span class="header-text">系统功能设置</span>
+              <span class="header-text">{{ $t('algorithmManage.systemFunctionSettings') }}</span>
             </AFlex>
           </template>
           <div>
             <AFlex align="center" class="analysis-bottom">
-              <div class="text">能效分析</div>
+              <div class="text">{{ $t('energyAnalysis.energyEfficiencyAnalysis') }}</div>
               <ASwitch class="analysis-margin" v-model:checked="algorithmForm.analysis" />
-              <div @click="analysisEditor" class="editor-style">编辑</div>
+              <div @click="analysisEditor" class="editor-style">{{ $t('common.editor') }}</div>
             </AFlex>
             <AFlex align="center">
-              <div class="div-width">动态调整</div>
+              <div class="div-width">{{ $t('algorithmManage.dynamicAdjustment') }}</div>
               <AFlex align="center" class="adjustment-div">
-                <div class="adjustment-text">动态调整冷冻总管出水温度设定值</div>
+                <div class="adjustment-text">{{ $t('algorithmManage.freezingSetValue') }}</div>
                 <ASwitch v-model:checked="algorithmForm.enableRefrigerationPipeDynamicSet" />
-                <div class="adjustment-text adjustment-left">动态调整冷却总管回水温度设定值</div>
+                <div class="adjustment-text adjustment-left">{{ $t('algorithmManage.coolingSetValue') }}</div>
                 <ASwitch v-model:checked="algorithmForm.enableCoolingPipeDynamicSet" />
-                <div @click="setEditor" class="editor-style editor-left">编辑</div>
+                <div @click="setEditor" class="editor-style editor-left">{{ $t('common.editor') }}</div>
               </AFlex>
             </AFlex>
           </div>
         </ACollapsePanel>
       </ACollapse>
       <AFlex justify="space-between" class="bottom-style">
-        <AButton type="text">取消</AButton>
-        <AButton type="primary" class="button-width" @click="addAlgorithm">确定</AButton>
+        <AButton type="text">{{ $t('common.cancel') }}</AButton>
+        <AButton type="primary" class="button-width" @click="addAlgorithm">{{ $t('common.certain') }}</AButton>
       </AFlex>
     </div>
-    <AModal v-model:open="analysisOpen" title="能效分析设置" width="460px" :mask-closable="false" @ok="okConfirm">
-      <div class="analysis-style"><span>* </span>能效分析计算方式</div>
+    <AModal
+      v-model:open="analysisOpen"
+      :title="t('algorithmManage.energyEfficiencyAnalysisSettings')"
+      width="460px"
+      :mask-closable="false"
+      @ok="okConfirm"
+    >
+      <div class="analysis-style">
+        <span>* </span>{{ $t('algorithmManage.energyEfficiencyAnalysisCalculationMethod') }}
+      </div>
       <ARadioGroup v-model:value="analysisTypeDisplay">
-        <ARadio class="radio-right" :value="0">冷量表</ARadio>
-        <ARadio class="radio-right" :value="1">流量表</ARadio>
-        <ARadio :value="2">COP算法</ARadio>
+        <ARadio class="radio-right" :value="0">{{ $t('algorithmManage.thermometer') }}</ARadio>
+        <ARadio class="radio-right" :value="1">{{ $t('algorithmManage.flowChart') }}</ARadio>
+        <ARadio :value="2">{{ $t('algorithmManage.copAlgorithm') }}</ARadio>
       </ARadioGroup>
     </AModal>
-    <AModal v-model:open="setOpen" title="设置" width="460px" :mask-closable="false" @ok="okSetConfirm">
+    <AModal
+      v-model:open="setOpen"
+      :title="t('common.settings')"
+      width="460px"
+      :mask-closable="false"
+      @ok="okSetConfirm"
+    >
       <AFlex align="center" class="set-top set-bottom">
-        <div class="text">冷却总管回水温度设定值(℃) &nbsp;=&nbsp; 室外湿球温度 +</div>
+        <div class="text">
+          {{ $t('algorithmManage.backwaterTemperatureSettingValue') }} &nbsp;=&nbsp;
+          {{ $t('algorithmManage.outdoorWetBulbTemperature') }} +
+        </div>
         &nbsp;&nbsp;
         <AInputNumber v-model:value="coolingPipeDynamicOffsetDisplay" :min="-99999.99999" :max="99999" />
       </AFlex>
       <AFlex align="center" class="set-bottom">
-        <div class="text set-text">初始值(℃)</div>
+        <div class="text set-text">{{ $t('algorithmManage.initialValue') }}(℃)</div>
         <AInputNumber
           class="set-input-width set-input-right"
           v-model:value="coolingPipeDynamicSetDisplay"
           :min="-99999.99999"
           :max="99999"
         />
-        <div class="set-text text">死区(℃)</div>
+        <div class="set-text text">{{ $t('algorithmManage.deadZone') }}(℃)</div>
         <AInputNumber
           class="set-input-width"
           v-model:value="coolingPipeDynamicDeadZoneDisplay"
@@ -500,14 +535,14 @@ onMounted(() => {
       </AFlex>
 
       <AFlex align="center" class="set-bottom">
-        <div class="text lower-limit">下限(℃)</div>
+        <div class="text lower-limit">{{ $t('algorithmManage.lowerLimit') }}(℃)</div>
         <AInputNumber
           class="set-input-width set-input-right"
           v-model:value="coolingPipeDynamicLowerDisplay"
           :min="-99999.99999"
           :max="99999"
         />
-        <div class="set-text text">上限(℃)</div>
+        <div class="set-text text">{{ $t('algorithmManage.upperLimit') }}(℃)</div>
         <AInputNumber
           class="set-input-width"
           v-model:value="coolingPipeDynamicUpperDisplay"

+ 31 - 11
src/views/algorithm-manage/EquipmentControl.vue

@@ -40,7 +40,7 @@ defineExpose({
   <div>
     <AForm ref="formRef" class="algorithm-form" :model="form" label-align="left" layout="vertical" :rules="rules">
       <AFlex class="flex-bottom" wrap="wrap" :gap="38">
-        <AFormItem label="水温控制模式" name="waterTempControlMode">
+        <AFormItem :label="t('algorithmManage.waterTemperatureControlMode')" name="waterTempControlMode">
           <ASelect
             class="select-width"
             v-model:value="form.waterTempControlMode"
@@ -49,7 +49,7 @@ defineExpose({
             :placeholder="$t('common.plzSelect')"
           />
         </AFormItem>
-        <AFormItem label="是否需要连续运行" name="continuous">
+        <AFormItem :label="t('algorithmManage.continuousOperation')" name="continuous">
           <ASelect
             class="select-width"
             v-model:value="form.continuous"
@@ -58,19 +58,39 @@ defineExpose({
             :placeholder="$t('common.plzSelect')"
           />
         </AFormItem>
-        <AFormItem label="停机补偿值" name="stopCompensate">
-          <AInputNumber class="select-width" v-model:value="form.stopCompensate" addon-after="℃" />
+        <AFormItem :label="$t('algorithmManage.shutdownCompensationValue')" name="stopCompensate">
+          <AInputNumber
+            :placeholder="t('common.pleaseEnter')"
+            class="select-width"
+            v-model:value="form.stopCompensate"
+            addon-after="℃"
+          />
         </AFormItem>
-        <AFormItem label="再启补偿值" name="restartCompensate">
-          <AInputNumber class="select-width" v-model:value="form.restartCompensate" addon-after="℃" />
+        <AFormItem :label="t('algorithmManage.reEnableCompensationValue')" name="restartCompensate">
+          <AInputNumber
+            :placeholder="t('common.pleaseEnter')"
+            class="select-width"
+            v-model:value="form.restartCompensate"
+            addon-after="℃"
+          />
         </AFormItem>
-        <AFormItem label="安全压差下限" name="safeDiffPressureLower">
-          <AInputNumber class="select-width" v-model:value="form.safeDiffPressureLower" addon-after="kpa" />
+        <AFormItem :label="t('algorithmManage.lowerLimitSafeDifferentialPressure')" name="safeDiffPressureLower">
+          <AInputNumber
+            :placeholder="t('common.pleaseEnter')"
+            class="select-width"
+            v-model:value="form.safeDiffPressureLower"
+            addon-after="kpa"
+          />
         </AFormItem>
-        <AFormItem label="安全负载下限" name="safeLoadLower">
-          <AInputNumber class="select-width" v-model:value="form.safeLoadLower" addon-after="kpa" />
+        <AFormItem :label="t('algorithmManage.lowerLimitSafeLoad')" name="safeLoadLower">
+          <AInputNumber
+            :placeholder="t('common.pleaseEnter')"
+            class="select-width"
+            v-model:value="form.safeLoadLower"
+            addon-after="kpa"
+          />
         </AFormItem>
-        <AFormItem label="水温设定步长(℃)" name="continuous">
+        <AFormItem :label="t('algorithmManage.stepSizeForWaterTemperatureSetting')" name="continuous">
           <ASelect
             class="select-width"
             v-model:value="form.waterTempStep"

+ 7 - 2
src/views/algorithm-manage/MonthSetting.vue

@@ -96,8 +96,13 @@ onMounted(() => {
           <AFlex v-for="(item, index) in months" :key="index" align="center" class="temperature-bottom">
             <AFormItem :name="item">
               <AFlex align="center">
-                <div class="time-text">{{ item }}月</div>
-                <AInputNumber v-model:value="temperatureData[item]" class="input-width" addon-after="℃" />
+                <div class="time-text">{{ item }}{{ $t('common.month') }}</div>
+                <AInputNumber
+                  :placeholder="t('common.pleaseEnter')"
+                  v-model:value="temperatureData[item]"
+                  class="input-width"
+                  addon-after="℃"
+                />
               </AFlex>
             </AFormItem>
           </AFlex>

+ 5 - 3
src/views/algorithm-manage/SetInterval.vue

@@ -43,7 +43,7 @@ defineExpose({
           <AFlex justify="space-between">
             <AFormItem name="time">
               <AFlex align="center" class="div-top">
-                <div class="time-text">时间段</div>
+                <div class="time-text">{{ $t('algorithmManage.periodTime') }}</div>
                 <ATimeRangePicker
                   v-model:value="form.time"
                   class="time-width"
@@ -55,7 +55,7 @@ defineExpose({
             </AFormItem>
 
             <AFlex align="center">
-              <div class="time-text">温度区间</div>
+              <div class="time-text">{{ $t('algorithmManage.temperatureRange') }}</div>
               <AFlex class="temperature-style" align="center">
                 <AFormItem name="lower" class="input-padding">
                   <AInputNumber
@@ -64,10 +64,11 @@ defineExpose({
                     :bordered="false"
                     :min="-99"
                     :max="999"
+                    :placeholder="t('common.pleaseEnter')"
                   />
                 </AFormItem>
 
-                <div></div>
+                <div>{{ $t('common.to') }}</div>
                 <AFormItem name="upper">
                   <AInputNumber
                     class="input-number"
@@ -76,6 +77,7 @@ defineExpose({
                     :bordered="false"
                     :min="-99"
                     :max="999"
+                    :placeholder="t('common.pleaseEnter')"
                   />
                 </AFormItem>
               </AFlex>