whychdw
2025-05-13 07d36c1f6f0398f56769ce88c89dc2a87f03fa8a
src/views/dataMager/components/AddBattGroup.vue
@@ -370,6 +370,26 @@
            </el-switch>
          </el-form-item>
        </el-col>
        <el-col :span="layout.span" v-if="isSzdt">
          <el-form-item label="地铁线路">
            <el-select size="mini" v-model="params.stationName9" @change="subwayLineChange">
              <el-option label="无" value=""></el-option>
              <el-option
                v-for="(item, key) in subwayLines" :key="'key'+key"
                :label="item.label" :value="item.value"></el-option>
            </el-select>
          </el-form-item>
        </el-col>
        <el-col :span="layout.span" v-if="isSzdt">
          <el-form-item label="地铁站点名称">
            <el-select size="mini" v-model="params.stationName8">
              <el-option label="无" value=""></el-option>
              <el-option
                v-for="(item, key) in subwayStations" :key="'key'+key"
                :label="item.label" :value="item.value"></el-option>
            </el-select>
          </el-form-item>
        </el-col>
        <el-col :span="16" v-if="tabList.length">
          <el-form-item label="实时监控标签">
            <el-select v-model="tabValue" multiple placeholder="请选择">
@@ -549,6 +569,7 @@
  searchCounty,
  getExistStations,
} from "@/assets/js/api.js";
import systemConfig from '@/assets/js/config';
import { searchTplAll } from "../js/eletmp";
import { searchBattProducer, add, getMaxIp, dfBmsDevicesAPI } from "../js/battGroupMager";
import {
@@ -586,11 +607,13 @@
      trigger: "change",
    };
    return {
      clientName: systemConfig.clientName.name,
      jsonData: {},
      bmsList: [],
      tabValue: [],
      tabList: [],
      layout: {
        span: 8,
        span: 6,
        gutter: 16,
      },
      params: {
@@ -655,6 +678,8 @@
        commPort: 102,    // 连接端口
        labelCfg: '',     // 实时监控的标签,使用,分隔的字符串
        deviceId: '',     // BMS设备ID
        stationName9: '',       // 地铁线路名称
        stationName8: '',       // 地铁站点名称
      },
      signTypes: const_61850.signTypes,
      tmpList: [],
@@ -967,6 +992,24 @@
    },
  },
  methods: {
    async getJson() {
      const dynamicPath = `mapJson/subway/suzhou1.json`;
      try {
        const response = await fetch(dynamicPath);
        if (!response.ok) {
          throw new Error(`HTTP error! status: ${response.status}`);
        }
        const data = await response.json();
        // console.log("data", data, "=============");
        // this.defaultData = data.l;
        return data;
      } catch (error) {
        console.error("加载 JSON 出错:", error);
      }
    },
    subwayLineChange() {
      this.params.stationName8 = "";
    },
    sortTabList(tabValue, tabList) {
      let result = [];
      for(let i=0; i<tabList.length; i++) {
@@ -1528,6 +1571,40 @@
    },
  },
  computed: {
    isSzdt() {
      return this.clientName === "szdt";
    },
    subwayLines() {
      let jsonData = this.jsonData;
      let list = [];
      if(jsonData.l) {
        list = jsonData.l.map(item=>{
          return {
            label: item.ln,
            value: item.ln,
          }
        })
      }
      return list;
    },
    subwayStations() {
      let list = [];
      let jsonData = this.jsonData;
      if(jsonData.l) {
        for(let i=0; i<jsonData.l.length; i++) {
          let itemData = jsonData.l[i];
          if(itemData.ln === this.params.stationName9) {
            list = itemData.st.map(item=>{
              return {
                label: item.n,
                value: item.n
              }
            })
          }
        }
      }
      return list;
    },
    isInversion() {
      let dev_id = this.params.fbsdeviceId;
      return regEquipType(dev_id, ["BTS9120", 'fbo6187']);
@@ -1556,7 +1633,7 @@
      return isLithiumPack ? "锂电池包单体个数" : "单体个数";
    },
  },
  mounted() {
  async mounted() {
    // 设置省市区县的数据
    this.linkagePlus.setData(const_province_city_county);
    // 初始化值
@@ -1574,6 +1651,8 @@
    this.handleDevTypeChange();
    this.dfBmsDevices();
    this.jsonData = await this.getJson();
  },
};
</script>