whychdw
2021-04-17 bffcea0176dd4ad0ffde59d5b6f99f84f23b2dd5
远程修改ip
2个文件已添加
5个文件已修改
273 ■■■■■ 已修改文件
src/assets/js/apis/dataMager/battGroupMager.js 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/js/config.js 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/js/const/const_9100.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/js/const/const_changeIp.js 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/js/const/index.js 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/dataMager/battGroupMager.vue 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/dataMager/dialog/ChangeIpParams.vue 199 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/js/apis/dataMager/battGroupMager.js
@@ -91,4 +91,17 @@
            data: 'json='+JSON.stringify(data),
        });
    },
    /**
     * 远程修改ip
     * @param data
     * @returns {AxiosPromise}
     */
    updateIp(data) {
        return axios({
           method: 'post',
           url: 'BattInfAction!updateIp',
           data: 'json='+JSON.stringify(data)
        });
    },
}
src/assets/js/config.js
@@ -14,4 +14,9 @@
        des: '电池信息配置中添加设备的签名,用于充放电测试时验证',
        value: false,
    },
    changeIp: {
        label: '远程修改IP',
        des: '电池信息配置中点击编辑可以远程修改ip',
        value: true,
    }
}
src/assets/js/const/const_9100.js
@@ -3,7 +3,7 @@
    alarmstates: [
        '无','暂停','放电测试','放电等待','限流充电','直流充电','充电等待','测试时间到',
        '测试容量到','单体下限到','组端下限到','市电异常','存储卡不足','负载温度高','电流异常','远程通信坏',
        '负载通信坏','选择通信坏','负载电流坏','内存申请坏','未知'
        '负载通信坏','选择通信坏','载模块放电过功率停止','内部程序异常停止','市电恢复停止升压放电','充电过程中市电中断','合路器放电功能组端电压下限','温度上限到','未知'
    ],
    cmd: {
        get: 41,
src/assets/js/const/const_changeIp.js
New file
@@ -0,0 +1,9 @@
export default {
    rules: {
        ipReg: {
            pattern: /^\d{1,3}(\.\d{1,3}){3}$/,
            regVal: false,
            msg: '格式不正确'
        }
    }
}
src/assets/js/const/index.js
@@ -9,7 +9,8 @@
import const_outline from "@/assets/js/const/const_outline";
import const_font from "@/assets/js/const/const_font";
import const_chart from "@/assets/js/const/const_chart";
import const_devType from "@/assets/js/const/const_devType"
import const_devType from "@/assets/js/const/const_devType";
import const_changeIp from "@/assets/js/const/const_changeIp";
export {
    const_9100,
    const_61850,
@@ -22,5 +23,6 @@
    const_outline,
    const_font,
    const_chart,
    const_devType
    const_devType,
    const_changeIp,
};
src/pages/dataMager/battGroupMager.vue
@@ -281,7 +281,7 @@
                width="250"
                align="center">
                    <template slot-scope="scope">
                        <el-button :disabled="!isCanEdit" @click="showSelectEditDialog(scope.row)" type="primary" size="mini" v-if="autograph">编辑</el-button>
                        <el-button :disabled="!isCanEdit" @click="showSelectEditDialog(scope.row)" type="primary" size="mini" v-if="editMore">编辑</el-button>
                        <el-button :disabled="!isCanEdit" @click="handleClick(scope.row)" type="primary" size="mini" v-else>编辑</el-button>
                        <el-button :disabled="!isCanEdit" type="info" @click="handleAddClick(scope.row)" size="mini">添加电池组</el-button>
                        <el-button :disabled="!isCanEdit" type="danger" size="mini" @click="confirmDelHome(scope.row)">删除</el-button>
@@ -309,14 +309,15 @@
        <!-- 电池信息编辑选择 -->
        <el-dialog
        title="电池信息编辑选择"
        width="230px"
        width="auto"
        :visible.sync="selectEdit"
        :close-on-click-modal="false"
        top="0"
        class="dialog-center">
            <div class="padding16161616">
                <el-button :disabled="!isCanEdit" @click="dHandleClick()" type="primary" size="mini">电池信息编辑</el-button>
                <el-button :disabled="!isCanEdit" @click="dAutographClick()" type="primary" size="mini">签名编辑</el-button>
                <el-button :disabled="!isCanEdit" @click="dChangeIpClick()" type="primary" size="mini" v-if="changeIp">远程IP修改</el-button>
                <el-button :disabled="!isCanEdit" @click="dAutographClick()" type="primary" size="mini" v-if="autograph">签名编辑</el-button>
            </div>
        </el-dialog>
@@ -359,6 +360,21 @@
            :modal-append-to-body="false">
            <edit-autograph :batt="batt" :visible.sync="autographDialog" v-if="autographDialog"></edit-autograph>
        </el-dialog>
        <!-- 远程修改ip -->
        <el-dialog
            title="远程修改IP"
            width="auto"
            :visible.sync="changeIpDialog"
            :close-on-click-modal="false"
            top="0"
            class="dialog-center"
            :modal-append-to-body="false">
            <change-ip-params
                :batt="batt"
                :visible.sync="changeIpDialog"
                v-if="changeIpDialog"
                @success="changeIpSuccess"></change-ip-params>
        </el-dialog>
    </flex-layout>
</template>
@@ -378,8 +394,10 @@
import {isHasPermit} from "@/assets/js/tools";
import faceManager from "@/assets/js/apis/faceManager/faceManager";
import EditAutograph from "@/components/battGroupMager/EditAutograph";
import ChangeIpParams from "@/pages/dataMager/dialog/ChangeIpParams";
export default {
    components: {
        ChangeIpParams,
        EditAutograph,
        AddGroupMager,
        EditGroupMager,
@@ -393,6 +411,8 @@
            autograph: config.autograph.value,
            selectEdit: false,
            autographDialog: false,
            changeIp: config.changeIp.value,
            changeIpDialog: false,
            batt: {},
            loading: '',
            filters: {
@@ -715,9 +735,19 @@
            this.selectEdit = false;
            this.autographDialog = true;
        },
        dChangeIpClick() {
            this.selectEdit = false;
            this.changeIpDialog = true;
        },
        editSuccess() {
            // 关闭弹出面板
            this.editDialog = false
            // 从新查询数据
            this.searchData();
        },
        changeIpSuccess() {
            // 关闭弹出面板
            this.changeIpDialog = false
            // 从新查询数据
            this.searchData();
        }
@@ -728,6 +758,9 @@
            return "编辑"+batt.StationName1+'-'+batt.StationName2
                                    +'-'+batt.StationName5+'-'+batt.StationName3
                                    +'-'+batt.StationName4
        },
        editMore() {
            return this.autograph||this.changeIp?true:false;
        }
    },
    mounted() {
src/pages/dataMager/dialog/ChangeIpParams.vue
New file
@@ -0,0 +1,199 @@
<template>
    <div class="params-container">
        <el-form
            ref="ruleForm"
            size="mini"
            label-position="top"
            :model="params"
            :rules="rules"
            class="params-dialog">
            <el-form-item label="机房名称">
                <el-input readonly v-model="otherParams.groupName"></el-input>
            </el-form-item>
            <el-row :gutter="layout.gutter">
                <el-col :span="layout.span">
                    <el-form-item label="有效性">
                        <el-select v-model="params.num">
                            <el-option
                                v-for="effectType in effectTypes" :key="effectType.value"
                                :label="effectType.label" :value="effectType.value"></el-option>
                        </el-select>
                    </el-form-item>
                </el-col>
                <el-col :span="layout.span">
                    <el-form-item label="设备IP" prop="FbsDeviceIp">
                        <el-input
                            placeholder="设备IP"
                            v-model="params.FbsDeviceIp">
                        </el-input>
                    </el-form-item>
                </el-col>
                <el-col :span="layout.span">
                    <el-form-item label="子网掩码" prop="FbsDeviceIp_YM">
                        <el-input
                            placeholder="子网掩码"
                            v-model="params.FbsDeviceIp_YM">
                        </el-input>
                    </el-form-item>
                </el-col>
                <el-col :span="layout.span">
                    <el-form-item label="网关" prop="FbsDeviceIp_WG">
                        <el-input
                            placeholder="网关"
                            v-model="params.FbsDeviceIp_WG">
                        </el-input>
                    </el-form-item>
                </el-col>
            </el-row>
            <div class="form-footer">
                <three-btn @click="submitFrom">确定</three-btn>
                <three-btn @click="close">取消</three-btn>
            </div>
        </el-form>
    </div>
</template>
<script>
import {
    const_changeIp
} from '@/assets/js/const'
import {testVal} from "@/assets/js/tools";
export default {
    name: "ChangeIpParams",
    props: {
        batt: {
            type: Object,
            default() {
                return {}
            }
        }
    },
    data() {
        let rules = const_changeIp.rules;
        return {
            layout: {
                span: 12,
                gutter: 16
            },
            effectTypes: [
                {
                    label:  '永久有效',
                    value: 88,
                },
                {
                    label: '临时有效',
                    value: 90,
                }
            ],
            params: {
                FbsDeviceIp_old: '',        // 旧的设备ip
                FbsDeviceIp_YM_old: '',        // 旧的子网掩码
                FbsDeviceIp_WG_old: '',        // 旧的网关
                FBSDeviceId: '',            // 设备id
                FbsDeviceIp: '',            // 新的ip
                FbsDeviceIp_YM: '',         // 新的子网掩码
                FbsDeviceIp_WG: '',         // 新的网关
                num: 88,        // 修改ip的命令     88:永久     90:暂时    89:ack
            },
            rules: {
                FbsDeviceIp: [{
                    validator(rule, value, callback) {
                        testVal(rule, value, callback, rules.ipReg)
                    },
                    trigger: 'change'
                }],
                FbsDeviceIp_YM: [{
                    validator(rule, value, callback) {
                        testVal(rule, value, callback, rules.ipReg)
                    },
                    trigger: 'change'
                }],
                FbsDeviceIp_WG: [{
                    validator(rule, value, callback) {
                        testVal(rule, value, callback, rules.ipReg)
                    },
                    trigger: 'change'
                }],
            }
        }
    },
    methods: {
        init() {
            // 设置之前的值
            this.params.FbsDeviceIp_old = this.batt.FbsDeviceIp;        // 旧的设备ip
            this.params.FbsDeviceIp_YM_old = this.batt.FbsDeviceIp_YM;    // 旧的子网掩码
            this.params.FbsDeviceIp_WG_old = this.batt.FbsDeviceIp_WG;    // 旧的网关
            this.params.FBSDeviceId = this.batt.FBSDeviceId;           // 设备id
            this.params.FbsDeviceIp = "";            // 新的ip
            this.params.FbsDeviceIp_YM = "";         // 新的子网掩码
            this.params.FbsDeviceIp_WG = "";         // 新的网关
        },
        submitFrom() {
            this.$refs.ruleForm.validate((valid) => {
                // 校验通过
                if (valid) {
                    // 设置参数
                    this.setParams();
                } else {
                    this.$layer.msg('存在校验未通过的数据!');
                    return false;
                }
            });
        },
        setParams() {
            this.$confirm("确认修改IP", {
                title: '系统提示',
                type: 'warning',
            }).then(()=>{
                let loading = this.$layer.loading();
                this.$apis.dataMager.battGroupMager.updateIp(this.params).then(res=>{
                    let rs = JSON.parse(res.data.result);
                    if(rs.code == 1) {
                        this.$layer.msg("修改成功");
                        // 触发事件
                        this.$emit('success');
                    }else {
                        this.$layer.msg("修改失败");
                    }
                    // 关闭等待框
                    this.$layer.close(loading);
                }).catch(error=>{
                    console.log(error);
                    // 关闭等待框
                    this.$layer.close(loading);
                });
            }).catch(()=>{
            });
        },
        close() {
            this.$emit("update:visible", false);
        },
    },
    computed: {
        otherParams() {
            let batt = this.batt;
            let groupInfo = '单体数量:' + this.batt.MonCount + ";电压(V):" +
                this.batt.MonVolStd + ";容量(AH):" + this.batt.MonCapStd;
            return {
                groupName: batt.StationName1+"-"+batt.StationName2+"-"+batt.StationName5+"-"+batt.StationName3+"-"+batt.StationName4+"-"+ batt.BattGroupName,
                FBSDeviceId: batt.FBSDeviceId,
                groupInfo: groupInfo,
                GroupIndexInFBSDevice: this.batt.GroupIndexInFBSDevice + 1,
            }
        }
    },
    mounted() {
        // 初始化数据
        this.init();
    }
}
</script>
<style scoped>
.params-container {
    width: 400px;
    background-color: #ffffff;
}
</style>