Преглед на файлове

perf(views): 重构“详细信息”步骤接口请求与页面显示

wangshun преди 1 месец
родител
ревизия
da7016ca78
променени са 5 файла, в които са добавени 340 реда и са изтрити 189 реда
  1. 2 2
      src/api/index.ts
  2. 4 0
      src/constants/index.ts
  3. 43 20
      src/types/index.ts
  4. 52 27
      src/views/create-device/CreateDevice.vue
  5. 239 140
      src/views/create-device/DetailedInformation.vue

+ 2 - 2
src/api/index.ts

@@ -38,8 +38,8 @@ import type {
   DictTypeDataParams,
   ElectricityStatisticsQuery,
   ElectricityStatisticsResult,
+  EquipmentDetailsForm,
   EquipmentDetailsItem,
-  EquipmentInformationForm,
   EquipmentTypeItem,
   EquipmentUpdateForm,
   EventTriggerData,
@@ -376,7 +376,7 @@ export const deleteDeviceGroup = async (id: number) => {
 
 // 设备列表
 
-export const deviceAdd = async (equipmentInformationForm: EquipmentInformationForm) => {
+export const deviceAdd = async (equipmentInformationForm: EquipmentDetailsForm) => {
   const data = await request<number>(apiBiz('/device/add'), {
     method: 'POST',
     body: JSON.stringify(equipmentInformationForm),

+ 4 - 0
src/constants/index.ts

@@ -62,6 +62,10 @@ export const enum DictCode {
   AlgWtTempCtrlMode = 'alg_wt_temp_ctrl_mode',
   AlgAlways = 'alg_always',
   AlgWtTempSetStep = 'alg_wt_temp_set_step',
+  DcCsDType = 'dc_cs_d_type',
+  DcCsCasType = 'dc_cs_cas_type',
+  DcCsCoolingType = 'dc_cs_cooling_type',
+  DcVfdType = 'dc_vfd_type',
 }
 
 /**

+ 43 - 20
src/types/index.ts

@@ -460,31 +460,53 @@ export interface ProtocolList {
   searchContent: string;
 }
 
+export interface EquipmentDetailsForm {
+  id?: number;
+  deviceName: string;
+  groupId?: number;
+  deviceType?: number;
+  brand?: string;
+  model?: string;
+  productionDate: string;
+  deviceDetail: string;
+}
+
 export interface EquipmentInformationForm {
   groupId: number;
   deviceData: number[];
-  deviceType?: string;
+  deviceType?: number;
   deviceName: string;
-  brand?: number;
-  model?: number;
-  modelType?: number;
-  controlType?: number;
-  compressionLevel?: number;
-  voltageLevel?: number;
+  brand?: string;
+  model?: string;
+  chillerType?: string;
+  productionDate?: Dayjs;
   powerRating: string;
-  powerUnload: string;
-  maximumFlow: string;
-  pressure: string;
-  pressureMax: string;
-  productionDate: string;
-  productionNum: string;
-  deviceNum: string;
-  mainTechData: string;
-  mountedPosition: string;
-  department: string;
-  respPerson: string;
-  phone: string;
-  serviceLife?: number;
+  refrigerantType?: string;
+  refrigerantDosage?: string;
+  nominalCoolingcapacity?: string;
+  nominalcalorificvalue?: string;
+  nominalCopRefrigeration?: string;
+  nominalCopHeating?: string;
+  chilledWaterRatedFlow?: string;
+  coolingWaterRatedFlow?: string;
+  motorCoolingMethod?: string;
+  copCorrectionFactor?: string;
+  numberUnitCircuits?: string;
+  singleLoopCompressor?: string;
+  frequencyConversion?: string;
+  ratedVoltage?: string;
+  inflowTemperature?: string;
+  waterOutletTemperature?: string;
+  relativeHumidityTemperature?: string;
+  fanNumber?: string;
+  waterFlowRate?: string;
+  coolingCapacity?: string;
+  inletPipeDiameter?: string;
+  outletPipeDiameter?: string;
+  ratedFlow?: string;
+  ratedHead?: string;
+  ratedCurrent?: string;
+  revolutions?: string;
   status: string;
   remarks: string;
   devId: number;
@@ -1466,6 +1488,7 @@ export interface MonitoringForm {
   humidityUpper: number;
   humidityLower: number;
   humidityPreset: number;
+  runStatusFlag: number;
 }
 
 export interface RegionQuery {

+ 52 - 27
src/views/create-device/CreateDevice.vue

@@ -17,24 +17,35 @@ const equipmentInformationForm = reactive<EquipmentInformationForm>({
   deviceName: '',
   brand: undefined,
   model: undefined,
-  modelType: undefined,
-  controlType: undefined,
-  compressionLevel: undefined,
-  voltageLevel: undefined,
+  productionDate: undefined,
+  chillerType: undefined,
   powerRating: '',
-  powerUnload: '',
-  maximumFlow: '',
-  pressure: '',
-  pressureMax: '',
-  productionDate: '',
-  productionNum: '',
-  deviceNum: '',
-  mainTechData: '',
-  mountedPosition: '',
-  department: '',
-  respPerson: '',
-  phone: '',
-  serviceLife: undefined,
+  refrigerantType: undefined,
+  refrigerantDosage: undefined,
+  nominalCoolingcapacity: undefined,
+  nominalcalorificvalue: undefined,
+  nominalCopRefrigeration: undefined,
+  nominalCopHeating: undefined,
+  chilledWaterRatedFlow: undefined,
+  coolingWaterRatedFlow: undefined,
+  motorCoolingMethod: undefined,
+  copCorrectionFactor: undefined,
+  numberUnitCircuits: undefined,
+  singleLoopCompressor: undefined,
+  frequencyConversion: undefined,
+  ratedVoltage: undefined,
+  inflowTemperature: undefined,
+  waterOutletTemperature: undefined,
+  relativeHumidityTemperature: undefined,
+  fanNumber: undefined,
+  waterFlowRate: undefined,
+  coolingCapacity: undefined,
+  inletPipeDiameter: undefined,
+  outletPipeDiameter: undefined,
+  ratedFlow: undefined,
+  ratedHead: undefined,
+  ratedCurrent: undefined,
+  revolutions: undefined,
   status: '',
   remarks: '',
   devId: 0,
@@ -47,17 +58,31 @@ const rules = computed<FormRules<RegisterGatewayForm>>(() => {
     deviceData: [{ required: true, message: t('createDevice.pleaseEquipmentGroup'), trigger: 'change' }],
     deviceType: [{ required: true, message: t('createDevice.pleaseDeviceType'), trigger: 'change' }],
     deviceName: [{ required: true, message: t('createDevice.pleaseDeviceName'), trigger: 'change' }],
-    brand: [{ required: true, message: t('common.plzSelect'), trigger: 'change' }],
-    model: [{ required: true, message: t('common.plzSelect'), trigger: 'change' }],
-    modelType: [{ required: true, message: t('common.plzSelect'), trigger: 'change' }],
-    controlType: [{ required: true, message: t('common.plzSelect'), trigger: 'change' }],
-    compressionLevel: [{ required: true, message: t('common.plzSelect'), trigger: 'change' }],
-    voltageLevel: [{ required: true, message: t('common.plzSelect'), trigger: 'change' }],
+    brand: [{ required: true, message: t('common.plzEnter'), trigger: 'change' }],
+    model: [{ required: true, message: t('common.plzEnter'), trigger: 'change' }],
+    productionDate: [{ required: true, message: t('common.plzEnter'), trigger: 'change' }],
+    chillerType: [{ required: true, message: t('common.plzEnter'), trigger: 'change' }],
     powerRating: [{ required: true, message: t('common.plzEnter'), trigger: 'change' }],
-    powerUnload: [{ required: true, message: t('common.plzEnter'), trigger: 'change' }],
-    maximumFlow: [{ required: true, message: t('common.plzEnter'), trigger: 'change' }],
-    pressure: [{ required: true, message: t('common.plzEnter'), trigger: 'change' }],
-    pressureMax: [{ required: true, message: t('common.plzEnter'), trigger: 'change' }],
+    refrigerantType: [{ required: true, message: t('common.plzEnter'), trigger: 'change' }],
+    nominalCoolingcapacity: [{ required: true, message: t('common.plzEnter'), trigger: 'change' }],
+    nominalCopRefrigeration: [{ required: true, message: t('common.plzEnter'), trigger: 'change' }],
+    motorCoolingMethod: [{ required: true, message: t('common.plzEnter'), trigger: 'change' }],
+    numberUnitCircuits: [{ required: true, message: t('common.plzEnter'), trigger: 'change' }],
+    singleLoopCompressor: [{ required: true, message: t('common.plzEnter'), trigger: 'change' }],
+    frequencyConversion: [{ required: true, message: t('common.plzEnter'), trigger: 'change' }],
+    ratedVoltage: [{ required: true, message: t('common.plzEnter'), trigger: 'change' }],
+    inflowTemperature: [{ required: true, message: t('common.plzEnter'), trigger: 'change' }],
+    waterOutletTemperature: [{ required: true, message: t('common.plzEnter'), trigger: 'change' }],
+    relativeHumidityTemperature: [{ required: true, message: t('common.plzEnter'), trigger: 'change' }],
+    fanNumber: [{ required: true, message: t('common.plzEnter'), trigger: 'change' }],
+    waterFlowRate: [{ required: true, message: t('common.plzEnter'), trigger: 'change' }],
+    coolingCapacity: [{ required: true, message: t('common.plzEnter'), trigger: 'change' }],
+    inletPipeDiameter: [{ required: true, message: t('common.plzEnter'), trigger: 'change' }],
+    outletPipeDiameter: [{ required: true, message: t('common.plzEnter'), trigger: 'change' }],
+    ratedFlow: [{ required: true, message: t('common.plzEnter'), trigger: 'change' }],
+    ratedHead: [{ required: true, message: t('common.plzEnter'), trigger: 'change' }],
+    ratedCurrent: [{ required: true, message: t('common.plzEnter'), trigger: 'change' }],
+    revolutions: [{ required: true, message: t('common.plzEnter'), trigger: 'change' }],
   };
 });
 

+ 239 - 140
src/views/create-device/DetailedInformation.vue

@@ -1,33 +1,118 @@
 <script setup lang="ts">
-import { inject, onMounted, ref } from 'vue';
+import { onMounted } from 'vue';
+import dayjs from 'dayjs';
 
+import { useDictData } from '@/hooks/dict-data';
 import { useRequest } from '@/hooks/request';
-import { deviceAdd, groupList } from '@/api';
-import { IS_USED_IN_MODAL_GUIDANCE } from '@/constants/inject-key';
+import { deviceAdd } from '@/api';
+import { DictCode } from '@/constants';
 
-import type {
-  EquipmentInformationForm,
-  EquipmentTypeItem,
-  UseGuideStepItemExpose,
-  UseGuideStepItemProps,
-} from '@/types';
+import type { EquipmentInformationForm, UseGuideStepItemExpose, UseGuideStepItemProps } from '@/types';
+
+const { dictData: dcCsDType, getDictData: getDcCsDType } = useDictData(DictCode.DcCsDType);
+const { dictData: dcCsCasType, getDictData: getDcCsCasType } = useDictData(DictCode.DcCsCasType);
+const { dictData: dcCsCoolingType, getDictData: getDcCsCoolingType } = useDictData(DictCode.DcCsCoolingType);
+const { dictData: dcVfdType, getDictData: getDcVfdType } = useDictData(DictCode.DcVfdType);
 
 const props = defineProps<UseGuideStepItemProps<EquipmentInformationForm>>();
-const isUsedInModalGuidance = inject(IS_USED_IN_MODAL_GUIDANCE, false);
 const { handleRequest } = useRequest();
-
-const brandList = ref<EquipmentTypeItem[]>([]);
-const modelList = ref<EquipmentTypeItem[]>([]);
-const modelTypeList = ref<EquipmentTypeItem[]>([]);
-const controlTypeList = ref<EquipmentTypeItem[]>([]);
-const compressionLevelList = ref<EquipmentTypeItem[]>([]);
-const voltageLevelList = ref<EquipmentTypeItem[]>([]);
-
+const getDeviceDetail = () => {
+  let data;
+  const {
+    chillerType,
+    powerRating,
+    refrigerantType,
+    refrigerantDosage,
+    nominalCoolingcapacity,
+    nominalcalorificvalue,
+    nominalCopRefrigeration,
+    nominalCopHeating,
+    chilledWaterRatedFlow,
+    coolingWaterRatedFlow,
+    motorCoolingMethod,
+    copCorrectionFactor,
+    numberUnitCircuits,
+    singleLoopCompressor,
+    frequencyConversion,
+    ratedVoltage,
+    inflowTemperature,
+    waterOutletTemperature,
+    relativeHumidityTemperature,
+    fanNumber,
+    waterFlowRate,
+    coolingCapacity,
+    inletPipeDiameter,
+    outletPipeDiameter,
+    ratedFlow,
+    ratedHead,
+    ratedCurrent,
+    revolutions,
+  } = props.form;
+  if (props.form.deviceType === 2) {
+    data = {
+      chillerType,
+      powerRating,
+      refrigerantType,
+      refrigerantDosage,
+      nominalCoolingcapacity,
+      nominalcalorificvalue,
+      nominalCopRefrigeration,
+      nominalCopHeating,
+      chilledWaterRatedFlow,
+      coolingWaterRatedFlow,
+      motorCoolingMethod,
+      copCorrectionFactor,
+      numberUnitCircuits,
+      singleLoopCompressor,
+    };
+
+    return JSON.stringify(data);
+  } else if (props.form.deviceType === 9) {
+    data = {
+      frequencyConversion,
+      powerRating,
+      ratedVoltage,
+      inflowTemperature,
+      waterOutletTemperature,
+      relativeHumidityTemperature,
+      fanNumber,
+      waterFlowRate,
+      coolingCapacity,
+      inletPipeDiameter,
+      outletPipeDiameter,
+      copCorrectionFactor,
+      numberUnitCircuits,
+      singleLoopCompressor,
+    };
+    return JSON.stringify(data);
+  } else if (props.form.deviceType === 11 || props.form.deviceType === 12) {
+    data = {
+      frequencyConversion,
+      powerRating,
+      ratedFlow,
+      ratedHead,
+      ratedVoltage,
+      ratedCurrent,
+      revolutions,
+    };
+    return JSON.stringify(data);
+  } else {
+    return (data = '{}');
+  }
+};
 const finish = async () => {
   props.form.groupId = props.form.deviceData[1] ? props.form.deviceData[1] : props.form.deviceData[0];
   props.form.id = props.form.devId ? props.form.devId : undefined;
-
-  props.form.devId = await deviceAdd(props.form);
+  props.form.devId = await deviceAdd({
+    id: props.form.id,
+    deviceName: props.form.deviceName,
+    groupId: props.form.groupId,
+    deviceType: props.form.deviceType,
+    brand: props.form.brand,
+    model: props.form.model,
+    productionDate: dayjs(props.form.productionDate).format('YYYY-MM-DD'),
+    deviceDetail: getDeviceDetail(),
+  });
 };
 
 defineExpose<UseGuideStepItemExpose>({
@@ -36,163 +121,177 @@ defineExpose<UseGuideStepItemExpose>({
 
 onMounted(() => {
   handleRequest(async () => {
-    brandList.value = await groupList({
-      dataType: 2,
-    });
-
-    props.form.brand = brandList.value[0].id;
-
-    modelList.value = await groupList({
-      dataType: 3,
-    });
-
-    props.form.model = modelList.value[0].id;
-
-    modelTypeList.value = await groupList({
-      dataType: 4,
-    });
-
-    props.form.modelType = modelTypeList.value[0].id;
-
-    controlTypeList.value = await groupList({
-      dataType: 5,
-    });
-
-    props.form.controlType = controlTypeList.value[0].id;
-
-    compressionLevelList.value = await groupList({
-      dataType: 6,
-    });
-
-    props.form.compressionLevel = compressionLevelList.value[0].id;
-
-    voltageLevelList.value = await groupList({
-      dataType: 7,
-    });
-
-    props.form.voltageLevel = voltageLevelList.value[0].id;
+    await getDcCsDType();
+    await getDcCsCasType();
+    await getDcCsCoolingType();
+    await getDcVfdType();
   });
 });
 </script>
 
 <template>
   <div>
-    <AFlex class="equipment-information" wrap="wrap" :gap="isUsedInModalGuidance ? 28 : 33">
+    <AFlex class="equipment-information" wrap="wrap" :gap="96">
       <AFormItem :label="$t('createDevice.brand')" name="brand">
-        <ASelect
-          :placeholder="$t('common.plzSelect')"
-          v-model:value="form.brand"
-          :options="brandList"
-          :field-names="{ label: 'dataName', value: 'id' }"
-        />
+        <AInput :placeholder="$t('common.pleaseEnter')" v-model:value="form.brand" />
       </AFormItem>
-
       <AFormItem :label="$t('createDevice.modelNumber')" name="model">
-        <ASelect
-          :placeholder="$t('common.plzSelect')"
-          v-model:value="form.model"
-          :options="modelList"
-          :field-names="{ label: 'dataName', value: 'id' }"
-        />
-      </AFormItem>
-
-      <AFormItem :label="$t('createDevice.controllerModel')" name="modelTypeList">
-        <ASelect
-          v-model:value="form.modelType"
-          :options="modelTypeList"
-          :placeholder="$t('common.plzSelect')"
-          :field-names="{ label: 'dataName', value: 'id' }"
-        />
+        <AInput :placeholder="$t('common.pleaseEnter')" v-model:value="form.model" />
       </AFormItem>
-
-      <AFormItem :label="$t('createDevice.adjustmentMethod')" name="controlType">
-        <ASelect
-          v-model:value="form.controlType"
-          :options="controlTypeList"
-          :placeholder="$t('common.plzSelect')"
-          :field-names="{ label: 'dataName', value: 'id' }"
-        />
+      <AFormItem :label="$t('createDevice.manufacturingDate')" name="productionDate">
+        <ADatePicker :placeholder="$t('common.pleaseEnter')" v-model:value="form.productionDate">
+          <template #suffixIcon> </template>
+        </ADatePicker>
       </AFormItem>
-
-      <AFormItem :label="$t('createDevice.compressedSeries')" name="compressionLevelList">
+      <AFormItem
+        v-if="props.form.deviceType === 9 || props.form.deviceType === 11 || props.form.deviceType === 12"
+        label="变频类型"
+        name="frequencyConversion"
+      >
         <ASelect
-          v-model:value="form.compressionLevel"
-          :options="compressionLevelList"
+          v-model:value="form.frequencyConversion"
+          :options="dcVfdType"
           :placeholder="$t('common.plzSelect')"
-          :field-names="{ label: 'dataName', value: 'id' }"
+          :field-names="{ label: 'dictValue', value: 'dictValue' }"
         />
       </AFormItem>
 
-      <AFormItem :label="$t('createDevice.voltageLevel')" name="voltageLevel">
+      <AFormItem v-if="props.form.deviceType === 2" label="冷机类型" name="chillerType">
         <ASelect
-          v-model:value="form.voltageLevel"
-          :options="voltageLevelList"
+          v-model:value="form.chillerType"
+          :options="dcCsDType"
           :placeholder="$t('common.plzSelect')"
-          :field-names="{ label: 'dataName', value: 'id' }"
+          :field-names="{ label: 'dictValue', value: 'dictValue' }"
         />
       </AFormItem>
-
-      <AFormItem :label="$t('createDevice.ratedPower')" name="powerRating">
+      <AFormItem
+        v-if="
+          props.form.deviceType === 2 ||
+          props.form.deviceType === 9 ||
+          props.form.deviceType === 11 ||
+          props.form.deviceType === 12
+        "
+        :label="$t('createDevice.ratedPower')"
+        name="powerRating"
+      >
         <AInputNumber :placeholder="$t('common.pleaseEnter')" v-model:value="form.powerRating" />
       </AFormItem>
-
-      <AFormItem :label="$t('createDevice.uninstallPower')" name="powerUnload">
-        <AInputNumber :placeholder="$t('common.pleaseEnter')" v-model:value="form.powerUnload" />
+      <AFormItem
+        v-if="props.form.deviceType === 11 || props.form.deviceType === 12"
+        label="额定流量(m³/h)"
+        name="ratedFlow"
+      >
+        <AInputNumber :placeholder="$t('common.pleaseEnter')" v-model:value="form.ratedFlow" />
       </AFormItem>
-
-      <AFormItem :label="$t('createDevice.nominalVolumetric')" name="maximumFlow">
-        <AInputNumber :placeholder="$t('common.pleaseEnter')" v-model:value="form.maximumFlow" />
+      <AFormItem
+        v-if="props.form.deviceType === 11 || props.form.deviceType === 12"
+        label="额定扬程(m)"
+        name="ratedHead"
+      >
+        <AInputNumber :placeholder="$t('common.pleaseEnter')" v-model:value="form.ratedHead" />
       </AFormItem>
-
-      <AFormItem :label="$t('createDevice.ratedWorkingPressure')" name="pressure">
-        <AInputNumber :placeholder="$t('common.pleaseEnter')" v-model:value="form.pressure" />
+      <AFormItem
+        v-if="props.form.deviceType === 9 || props.form.deviceType === 11 || props.form.deviceType === 12"
+        label="额定电压(V)"
+        name="ratedVoltage"
+      >
+        <AInputNumber :placeholder="$t('common.pleaseEnter')" v-model:value="form.ratedVoltage" />
       </AFormItem>
-
-      <AFormItem :label="$t('createDevice.maximumWorkingPressure')" name="pressureMax">
-        <AInputNumber :placeholder="$t('common.pleaseEnter')" v-model:value="form.pressureMax" />
+      <AFormItem
+        v-if="props.form.deviceType === 11 || props.form.deviceType === 12"
+        label="额定电流(A)"
+        name="ratedCurrent"
+      >
+        <AInputNumber :placeholder="$t('common.pleaseEnter')" v-model:value="form.ratedCurrent" />
       </AFormItem>
-
-      <AFormItem :label="$t('createDevice.manufacturingDate')" name="productionDate">
-        <ADatePicker :placeholder="$t('common.pleaseEnter')" v-model:value="form.productionDate">
-          <template #suffixIcon> </template>
-        </ADatePicker>
+      <AFormItem
+        v-if="props.form.deviceType === 11 || props.form.deviceType === 12"
+        label="转速(r/min)"
+        name="revolutions"
+      >
+        <AInputNumber :placeholder="$t('common.pleaseEnter')" v-model:value="form.revolutions" />
       </AFormItem>
 
-      <AFormItem :label="$t('createDevice.factorySerialNumber')" name="productionNum">
-        <AInput :placeholder="$t('common.pleaseEnter')" v-model:value="form.productionNum" />
+      <AFormItem v-if="props.form.deviceType === 9" label="进水温度(℃)" name="inflowTemperature">
+        <AInputNumber :placeholder="$t('common.pleaseEnter')" v-model:value="form.inflowTemperature" />
       </AFormItem>
-
-      <AFormItem :label="$t('createDevice.equipmentNumber')" name="deviceNum">
-        <AInput :placeholder="$t('common.pleaseEnter')" v-model:value="form.deviceNum" />
+      <AFormItem v-if="props.form.deviceType === 9" label="出水温度(℃)" name="waterOutletTemperature">
+        <AInputNumber :placeholder="$t('common.pleaseEnter')" v-model:value="form.waterOutletTemperature" />
       </AFormItem>
-
-      <AFormItem :label="$t('createDevice.mainTechnicalParameters')" name="mainTechData">
-        <AInput :placeholder="$t('common.pleaseEnter')" v-model:value="form.mainTechData" />
+      <AFormItem v-if="props.form.deviceType === 9" label="湿球温度(℃)" name="relativeHumidityTemperature">
+        <AInputNumber :placeholder="$t('common.pleaseEnter')" v-model:value="form.relativeHumidityTemperature" />
       </AFormItem>
-
-      <AFormItem :label="$t('createDevice.installationLocation')" name="mountedPosition">
-        <AInput :placeholder="$t('common.pleaseEnter')" v-model:value="form.mountedPosition" />
+      <AFormItem v-if="props.form.deviceType === 9" label="风机数量" name="fanNumber">
+        <AInputNumber :placeholder="$t('common.pleaseEnter')" v-model:value="form.fanNumber" />
       </AFormItem>
-
-      <AFormItem :label="$t('createDevice.usingDepartment')" name="department">
-        <AInput :placeholder="$t('common.pleaseEnter')" v-model:value="form.department" />
+      <AFormItem v-if="props.form.deviceType === 9" label="水流量(m³/h)" name="waterFlowRate">
+        <AInputNumber :placeholder="$t('common.pleaseEnter')" v-model:value="form.waterFlowRate" />
       </AFormItem>
-
-      <AFormItem :label="$t('createDevice.responsiblePerson')" name="respPerson">
-        <AInput :placeholder="$t('common.pleaseEnter')" v-model:value="form.respPerson" />
+      <AFormItem v-if="props.form.deviceType === 9" label="冷却能力(kcal/h)" name="coolingCapacity">
+        <AInputNumber :placeholder="$t('common.pleaseEnter')" v-model:value="form.coolingCapacity" />
       </AFormItem>
-
-      <AFormItem :label="$t('createDevice.contactNumber')" name="phone">
-        <AInput :placeholder="$t('common.pleaseEnter')" v-model:value="form.phone" />
+      <AFormItem v-if="props.form.deviceType === 9" label="入水管径(mm)" name="inletPipeDiameter">
+        <AInputNumber :placeholder="$t('common.pleaseEnter')" v-model:value="form.inletPipeDiameter" />
+      </AFormItem>
+      <AFormItem v-if="props.form.deviceType === 9" label="出水管径(mm)" name="outletPipeDiameter">
+        <AInputNumber :placeholder="$t('common.pleaseEnter')" v-model:value="form.outletPipeDiameter" />
       </AFormItem>
 
-      <AFormItem :label="$t('createDevice.serviceLife')" name="serviceLife">
-        <AInput :placeholder="$t('common.pleaseEnter')" v-model:value="form.serviceLife" />
+      <AFormItem v-if="props.form.deviceType === 2" label="制冷剂类型" name="refrigerantType">
+        <ASelect
+          v-model:value="form.refrigerantType"
+          :options="dcCsCasType"
+          :placeholder="$t('common.plzSelect')"
+          :field-names="{ label: 'dictValue', value: 'dictValue' }"
+        />
+      </AFormItem>
+      <AFormItem v-if="props.form.deviceType === 2" label="制冷剂充注量(kg)">
+        <AInputNumber :placeholder="$t('common.pleaseEnter')" v-model:value="form.refrigerantDosage" />
+      </AFormItem>
+      <AFormItem v-if="props.form.deviceType === 2" label="名义制冷量(kw)" name="nominalCoolingcapacity">
+        <AInputNumber :placeholder="$t('common.pleaseEnter')" v-model:value="form.nominalCoolingcapacity" />
+      </AFormItem>
+      <AFormItem v-if="props.form.deviceType === 2" label="名义制热量(kw)">
+        <AInputNumber :placeholder="$t('common.pleaseEnter')" v-model:value="form.nominalcalorificvalue" />
+      </AFormItem>
+      <AFormItem v-if="props.form.deviceType === 2" label="名义COP(制冷)" name="nominalCopRefrigeration">
+        <AInputNumber :placeholder="$t('common.pleaseEnter')" v-model:value="form.nominalCopRefrigeration" />
+      </AFormItem>
+      <AFormItem v-if="props.form.deviceType === 2" label="名义COP(制热)">
+        <AInputNumber :placeholder="$t('common.pleaseEnter')" v-model:value="form.nominalCopHeating" />
+      </AFormItem>
+      <AFormItem v-if="props.form.deviceType === 2" label="冷冻水额定流量(m³/h)">
+        <AInputNumber :placeholder="$t('common.pleaseEnter')" v-model:value="form.chilledWaterRatedFlow" />
+      </AFormItem>
+      <AFormItem v-if="props.form.deviceType === 2" label="冷却水额定流量(m³/h)">
+        <AInputNumber :placeholder="$t('common.pleaseEnter')" v-model:value="form.coolingWaterRatedFlow" />
+      </AFormItem>
+      <AFormItem v-if="props.form.deviceType === 2" label="电机冷却方式" name="motorCoolingMethod">
+        <ASelect
+          v-model:value="form.motorCoolingMethod"
+          :options="dcCsCoolingType"
+          :placeholder="$t('common.plzSelect')"
+          :field-names="{ label: 'dictValue', value: 'dictValue' }"
+        />
+      </AFormItem>
+      <AFormItem v-if="props.form.deviceType === 2 || props.form.deviceType === 9" label="COP修正系数">
+        <AInputNumber :placeholder="$t('common.pleaseEnter')" v-model:value="form.copCorrectionFactor" />
+      </AFormItem>
+      <AFormItem
+        v-if="props.form.deviceType === 2 || props.form.deviceType === 9"
+        label="机组回路数量"
+        name="numberUnitCircuits"
+      >
+        <AInputNumber :placeholder="$t('common.pleaseEnter')" v-model:value="form.numberUnitCircuits" />
+      </AFormItem>
+      <AFormItem
+        v-if="props.form.deviceType === 2 || props.form.deviceType === 9"
+        label="单回路压缩机数量"
+        name="singleLoopCompressor"
+      >
+        <AInputNumber :placeholder="$t('common.pleaseEnter')" v-model:value="form.singleLoopCompressor" />
       </AFormItem>
     </AFlex>
-    <AFormItem :label="$t('common.note')" name="remarks">
-      <ATextarea v-model:value="form.remarks" :placeholder="$t('common.plzEnter')" allow-clear :rows="6" />
-    </AFormItem>
   </div>
 </template>
 
@@ -210,6 +309,6 @@ onMounted(() => {
 }
 
 .equipment-information div {
-  width: 192px;
+  width: 270px;
 }
 </style>