| | |
| | | v-model="params.stationName1" |
| | | placeholder="请选择省" |
| | | @change="provinceChange" |
| | | allow-create |
| | | :filterable="true" |
| | | > |
| | | <el-option |
| | |
| | | v-model="params.stationName2" |
| | | placeholder="请选择市" |
| | | @change="cityChange" |
| | | allow-create |
| | | :filterable="true" |
| | | > |
| | | <el-option |
| | |
| | | <el-col :span="layout.span"> |
| | | <el-form-item label="设备类型" prop="fbsdeviceId"> |
| | | <el-select |
| | | filterable |
| | | v-model="params.fbsdeviceId" |
| | | placeholder="请选择设备类型" |
| | | @change="handleDevTypeChange" |
| | | > |
| | | <el-option |
| | | v-for="item in devTypes" |
| | |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="layout.span"> |
| | | <el-form-item label="电池组类型" prop="battGroupNum"> |
| | | <el-form-item label="电池组类型" prop="cellShowType"> |
| | | <el-select |
| | | v-model="params.battGroupNum" |
| | | v-model="params.cellShowType" |
| | | placeholder="请选择电池类型" |
| | | > |
| | | <el-option |
| | |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | ></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="layout.span"> |
| | | <el-form-item label="电路图类型" prop="topologyMapType"> |
| | | <el-select |
| | | v-model="params.topologyMapType" |
| | | placeholder="请选择电池类型" |
| | | @change="handleMapTypeChange" |
| | | > |
| | | <el-option |
| | | v-for="item in pictureTypes" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.key" |
| | | ></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | |
| | | <el-form-item label="电池生产日期" prop="battProductDate"> |
| | | <el-date-picker |
| | | v-model="params.battProductDate" |
| | | size="small" |
| | | size="mini" |
| | | type="date" |
| | | placeholder="选择日期" |
| | | value-format="yyyy-MM-dd" |
| | |
| | | <el-form-item label="投入使用日期" prop="battInUseDate"> |
| | | <el-date-picker |
| | | v-model="params.battInUseDate" |
| | | size="small" |
| | | size="mini" |
| | | type="date" |
| | | placeholder="选择日期" |
| | | value-format="yyyy-MM-dd" |
| | |
| | | <el-col :span="layout.span"> |
| | | <el-form-item label="基站号码"> |
| | | <el-input v-model="params.stationPhone"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="layout.span"> |
| | | <el-form-item label="验签格式"> |
| | | <el-select v-model="params.signType" placeholder="请选择"> |
| | | <el-option |
| | | v-for="item in signTypes" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="layout.span"> |
| | | <el-form-item label="通信端口号"> |
| | | <el-input v-model="params.commPort"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="layout.span" v-if="isDfBms"> |
| | | <el-form-item label="BMS设备ID"> |
| | | <el-select filterable size="mini" v-model="params.deviceId"> |
| | | <el-option |
| | | v-for="(item, key) in bmsList" :key="'key'+key" |
| | | :disabled="item.isUsed" |
| | | :label="item.label" :value="item.id"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="layout.span"> |
| | | <el-form-item label="交直流监控屏启用"> |
| | | <el-switch |
| | | v-model="acdcSecuityFlag" |
| | | active-color="#13ce66" |
| | | inactive-color="#aaa" |
| | | active-text="启用" |
| | | inactive-text="关闭" |
| | | size="mini"> |
| | | </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="请选择"> |
| | | <el-option |
| | | v-for="item in tabList" |
| | | :key="item.name" |
| | | :label="item.label" |
| | | :value="item.name"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | |
| | | searchCounty, |
| | | getExistStations, |
| | | } from "@/assets/js/api.js"; |
| | | import systemConfig from '@/assets/js/config'; |
| | | import { searchTplAll } from "../js/eletmp"; |
| | | import { searchBattProducer, add, getMaxIp } from "../js/battGroupMager"; |
| | | import { searchBattProducer, add, getMaxIp, dfBmsDevicesAPI } from "../js/battGroupMager"; |
| | | import { |
| | | const_province_city_county, |
| | | const_battGroup, |
| | | const_devType, |
| | | const_battery_type, |
| | | const_61850, |
| | | } from "@/assets/js/const"; |
| | | |
| | | import const_rules from "@/assets/js/const/const_rules"; |
| | | import getDevIp from "@/assets/js/tools/getDevIp"; |
| | | |
| | | import getTabList from "@/assets/js/tools/getTabList"; |
| | | |
| | | export default { |
| | | props: { |
| | |
| | | let rules = const_battGroup.rules; |
| | | let constRules = const_rules; |
| | | let devTypes = const_devType.batt; |
| | | let pictureTypes = const_devType.pictureTypes; |
| | | let batteryTypes = const_battery_type.types; |
| | | const subRules = { |
| | | validator(rule, value, callback) { |
| | |
| | | trigger: "change", |
| | | }; |
| | | return { |
| | | clientName: systemConfig.clientName.name, |
| | | jsonData: {}, |
| | | bmsList: [], |
| | | tabValue: [], |
| | | tabList: [], |
| | | layout: { |
| | | span: 8, |
| | | span: 6, |
| | | gutter: 16, |
| | | }, |
| | | params: { |
| | |
| | | remotemonitor: "", // 是否实现远程监控 |
| | | batttIndependentPlaced: "", // 是否独立蓄电池室放置 |
| | | junChargeVoltageValue: 0, // 均充电压设定值 |
| | | signType: 0, // 验签格式 |
| | | cellShowType: 0, // 电池类型 |
| | | topologyMapType: 0, // 拓扑图类型 |
| | | commPort: 102, // 连接端口 |
| | | labelCfg: '', // 实时监控的标签,使用,分隔的字符串 |
| | | deviceId: '', // BMS设备ID |
| | | stationName9: '', // 地铁线路名称 |
| | | stationName8: '', // 地铁站点名称 |
| | | }, |
| | | signTypes: const_61850.signTypes, |
| | | tmpList: [], |
| | | rules: { |
| | | stationName1: [ |
| | |
| | | value: 1, |
| | | }, |
| | | ], |
| | | pictureTypes: pictureTypes, |
| | | acdcSecuityFlag: false, |
| | | }; |
| | | }, |
| | | watch: { |
| | |
| | | }, |
| | | }, |
| | | 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++) { |
| | | for(let j=0; j<tabValue.length;j++) { |
| | | if(tabList[i].name === tabValue[j]) { |
| | | result.push(tabValue[j]); |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | return result; |
| | | }, |
| | | handleDevTypeChange() { |
| | | let tabList = getTabList(this.params.fbsdeviceId); |
| | | this.tabList = tabList; |
| | | |
| | | this.tabValue = []; |
| | | |
| | | tabList.forEach(item=>{ |
| | | this.tabValue.push(item.name); |
| | | }); |
| | | }, |
| | | handleMapTypeChange() { |
| | | // 对于假负载带母联进行特殊处理 |
| | | if (this.params.topologyMapType === 11) { |
| | | this.params.buscoupleState = 1; |
| | | } else { |
| | | this.params.buscoupleState = 0; |
| | | } |
| | | }, |
| | | searchProvince() { |
| | | // 省 |
| | | // 查询后台 |
| | |
| | | } |
| | | }, |
| | | battProducerOk() { |
| | | var value = this.battProducer.value; |
| | | var value = this.battProducer.value.trim(); |
| | | if (!value) { |
| | | this.$message.error("不能为空"); |
| | | return false; |
| | | } |
| | | // 获取选择的值 |
| | | this.params.battProducer = value; |
| | | // 记录选择的内容 |
| | |
| | | }, |
| | | // 提交表单设置参数 |
| | | submitFrom() { |
| | | // 对于东峰BMS设备提前做校验 |
| | | if(this.isDfBms && !this.params.deviceId) { |
| | | this.$layer.msg("请选择BMS设备ID"); |
| | | return; |
| | | } |
| | | |
| | | this.$refs.ruleForm.validate((valid) => { |
| | | // 校验通过 |
| | | if (valid) { |
| | | var tmp = {}; |
| | | let tmp = {}; |
| | | Object.keys(this.params).forEach((key, value) => { |
| | | tmp[key] = this.params[key]; |
| | | }); |
| | |
| | | tmp.stationName3 + |
| | | "-" + |
| | | tmp.stationName4; |
| | | tmp.acdcSecuityFlag = this.acdcSecuityFlag * 1; |
| | | |
| | | let tabValue = this.sortTabList(this.tabValue, this.tabList); |
| | | tmp.labelCfg = this.tabList.length !== 0?tabValue.join(','):''; |
| | | // 添加机房 |
| | | this.addHome(tmp); |
| | | } else { |
| | |
| | | this.params.tmpId = 0; |
| | | } |
| | | }, |
| | | dfBmsDevices() { |
| | | dfBmsDevicesAPI() |
| | | .then((res) => { |
| | | res = res.data; |
| | | console.log(res); |
| | | if (res.code) { |
| | | this.bmsList = res.data.map(item=>{ |
| | | item.label=item.deviceName; |
| | | item.value = item.deviceId; |
| | | return item; |
| | | }); |
| | | }else { |
| | | this.bmsList = []; |
| | | } |
| | | }).catch((error) => { |
| | | this.bmsList = []; |
| | | console.log(error); |
| | | }); |
| | | }, |
| | | autoComputeIp() { |
| | | let loading = this.$layer.loading(); |
| | | getMaxIp(this.params.fbsdeviceId) |
| | |
| | | }, |
| | | }, |
| | | 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"); |
| | | return regEquipType(dev_id, ["BTS9120", 'fbo6187']); |
| | | }, |
| | | isHasBuscouple() { |
| | | let dev_id = this.params.fbsdeviceId; |
| | | return regEquipType(dev_id,["BTS9120", "BTS9110"]); |
| | | return regEquipType(dev_id, ["BTS9120", "BTS9110", 'fbo6187']); |
| | | }, |
| | | isLithium() { |
| | | // 锂电BTS |
| | | let dev_id = this.params.fbsdeviceId; |
| | | return regEquipType(dev_id, ["lithium"]); |
| | | return regEquipType(dev_id, ["lithium", "li9132", "kgdy"]); |
| | | }, |
| | | isLithiumPack() { |
| | | // 锂电池包 |
| | | let dev_id = this.params.fbsdeviceId; |
| | | return regEquipType(dev_id, ["lithiumPack"]); |
| | | }, |
| | | isDfBms() { |
| | | // BMS |
| | | let dev_id = this.params.fbsdeviceId; |
| | | return regEquipType(dev_id, ["dfBms"]); |
| | | }, |
| | | monCountText() { |
| | | let isLithiumPack = this.isLithiumPack; |
| | | return isLithiumPack ? "锂电池包单体个数" : "单体个数"; |
| | | }, |
| | | }, |
| | | mounted() { |
| | | async mounted() { |
| | | // 设置省市区县的数据 |
| | | this.linkagePlus.setData(const_province_city_county); |
| | | // 初始化值 |
| | |
| | | |
| | | // 查询所有的电价分布模板 |
| | | this.searchTplAll(); |
| | | |
| | | this.handleDevTypeChange(); |
| | | |
| | | this.dfBmsDevices(); |
| | | |
| | | this.jsonData = await this.getJson(); |
| | | }, |
| | | }; |
| | | </script> |
| | |
| | | .form-footer .three-btn { |
| | | margin-left: 12px; |
| | | } |
| | | >>> ::-webkit-input-placeholder { |
| | | ::-webkit-input-placeholder { |
| | | color: #666 !important; |
| | | } |
| | | </style> |