whyczyk
2021-08-10 4231b4406ee43a42234ce47d41bcf4b94c48c138
src/pages/parameter/parameter.vue
@@ -1,445 +1,586 @@
<template>
    <div>
        <van-nav-bar title="参数" left-arrow @click-left="$router.back()"></van-nav-bar>
        <van-form>
            <van-field
                v-model="groupName"
                label="电池组名称:"
                label-width="120"
                placeholder="请输入电池组名称"
                name="电池组名称"
            />
            <van-field
                v-model="FBSDeviceId"
                label="设备ID:"
                label-width="120"
                placeholder="请输入设备ID"
                name="设备ID"
            />
            <van-field
                v-model="GroupIndexInFBSDevice"
                label="电池组编号:"
                label-width="120"
                placeholder="请输入电池组编号"
                name="电池组编号"
            />
            <van-field
                v-model="groupInfo"
                label="电池组信息:"
                label-width="120"
                placeholder="请输入电池组信息"
                name="电池组信息"
            />
            <van-field v-model="otherParams.groupName" label="电池组名称:" label-width="120" placeholder="请输入电池组名称"
                name="电池组名称" />
            <van-field v-model="otherParams.FBSDeviceId" label="设备ID:" label-width="120" placeholder="请输入设备ID"
                name="设备ID" />
            <van-field v-model="otherParams.GroupIndexInFBSDevice" label="电池组编号:" label-width="120"
                placeholder="请输入电池组编号" name="电池组编号" />
            <van-field v-model="otherParams.groupInfo" label="电池组信息:" label-width="120" placeholder="请输入电池组信息"
                name="电池组信息" />
            <van-field v-model="params.CharHighTmp" label="温度告警(℃):" label-width="120" placeholder="请输入温度告警(℃)"
                name="温度告警(℃)" />
        </van-form>
        <van-tabs v-model="active">
            <!-- 放电参数 -->
            <van-tab title="充电参数" :disabled="!(0 == opt.num)">
                <van-field
                    v-model="OnLineVol_Low"
                    label="充电电压(V):"
                    label-width="120"
                    placeholder="请输入充电电压(V)"
                    name="充电电压(V)"
                />
                <van-field
                    v-model="ChargeCurrSet"
                    label="充电电流(A):"
                    label-width="120"
                    placeholder="请输入充电电流(A)"
                    name="充电电流(A)"
                />
                <van-field
                    v-model="AutoTestStartVol"
                    label="浮充电压(V):"
                    label-width="120"
                    placeholder="请输入浮充电压(V)"
                    name="浮充电压(V)"
                />
                <van-field
                    v-model="CharHighTmp"
                    label="充电过温(℃):"
                    label-width="120"
                    placeholder="请输入充电过温(℃)"
                    name="充电过温(℃)"
                />
                <van-field
                    v-model="CharSotpCurr"
                    label="截止电流(A):"
                    label-width="120"
                    placeholder="请输入截止电流(A)"
                    name="截止电流(A)"
                />
                <van-field
                    v-model="CharCap"
                    label="充电容量(AH):"
                    label-width="120"
                    placeholder="请输入充电容量(AH)"
                    name="充电容量(AH)"
                />
                <van-field
                    v-model="MonVolHightLimit"
                    label="单体上限(V):"
                    label-width="120"
                    placeholder="请输入单体上限(V)"
                    name="单体上限(V)"
                />
                <van-field
                    v-model="DCVolHighLimit"
                    label="组端上限(V):"
                    label-width="120"
                    placeholder="请输入组端上限(V)"
                    name="组端上限(V)"
                />
                <van-field
                    v-model="MonVolHightLimitCount"
                    label="单体上限数量(个):"
                    label-width="120"
                    placeholder="请输入单体上限数量(个)"
                    name="单体上限数量(个)"
                />
                <van-field
                    v-model="CharTimeLong"
                    label="充电时长(分钟):"
                    label-width="120"
                    placeholder="请输入充电时长(分钟)"
                    name="充电时长(分钟)"
                />
                <van-field
                    v-model="FloatCharTimeLong"
                    label="浮充时长(分钟):"
                    label-width="120"
                    placeholder="请输入浮充时长(分钟)"
                    name="浮充时长(分钟)"
                />
            <van-tab title="充电参数" :disabled="!(0 == batt.num)">
                <van-field v-model="params.OnLineVol_Low" label="恒压电压(V):" label-width="120" placeholder="请输入恒压电压(V)"
                    name="恒压电压(V)" />
                <van-field v-model="params.ChargeCurrSet" label="恒压电流(A):" label-width="120" placeholder="请输入恒压电流(A)"
                    name="恒压电流(A)" />
                <van-field v-model="params.CharTimeLong" label="恒压时长(分钟):" label-width="120" placeholder="请输入恒压时长(分钟)"
                    name="恒压时长(分钟)" />
                <van-field v-model="params.AutoTestStartVol" label="浮充电压(V):" label-width="120" placeholder="请输入浮充电压(V)"
                    name="浮充电压(V)" />
                <van-field v-model="params.CharSotpCurr" label="浮充电流(A):" label-width="120" placeholder="请输入浮充电流(A)"
                    name="浮充电流(A)" />
                <van-field v-model="params.FloatCharTimeLong" label="浮充时长(分钟):" label-width="120"
                    placeholder="请输入浮充时长(分钟)" name="浮充时长(分钟)" />
                <van-field v-model="params.MonVolHightLimit" label="单体上限(V):" label-width="120" placeholder="请输入单体上限(V)"
                    name="单体上限(V)" />
                <van-field v-model="params.MonVolHightLimitCount" label="单体上限数量(个):" label-width="120"
                    placeholder="请输入单体上限数量(个)" name="单体上限数量(个)" />
                <van-field v-model="params.DCVolHighLimit" label="保护电压(V):" label-width="120" placeholder="请输入保护电压(V)"
                    name="保护电压(V)" />
                <van-field readonly clickable name="picker" :value="params.FlowOver_Count" label="恒流阶段总数:"
                    placeholder="点击恒流阶段总数" @click="showPicker = true" />
                <van-popup v-model="showPicker" position="bottom">
                    <van-picker show-toolbar :columns="flowOverCount" @confirm="onConfirm1"
                        @cancel="showPicker = false" />
                </van-popup>
                <van-field v-model="params.FlowOver_CharCurr_1" label="恒流1阶段充电电流:" label-width="120"
                    placeholder="请输入恒流1阶段充电电流" name="恒流1阶段充电电流" />
                <van-field v-model="params.FlowOver_CharCurr_2" :disabled="params.FlowOver_Count < 2" label="恒流2阶段充电电流:"
                    label-width="120" placeholder="请输入恒流2阶段充电电流" name="恒流2阶段充电电流" />
                <van-field v-model="params.FlowOver_CharCurr_3" :disabled="params.FlowOver_Count < 3" label="恒流3阶段充电电流:"
                    label-width="120" placeholder="请输入恒流3阶段充电电流" name="恒流3阶段充电电流" />
                <van-field v-model="params.FlowOver_CharTime_1" label="恒流1阶段充电时长:" label-width="120"
                    placeholder="请输入恒流1阶段充电时长" name="恒流1阶段充电时长" />
                <van-field v-model="params.FlowOver_CharTime_2" :disabled="params.FlowOver_Count < 2" label="恒流2阶段充电时长:"
                    label-width="120" placeholder="请输入恒流2阶段充电时长" name="恒流2阶段充电时长" />
                <van-field v-model="params.FlowOver_CharTime_3" :disabled="params.FlowOver_Count < 3" label="恒流3阶段充电时长:"
                    label-width="120" placeholder="请输入恒流3阶段充电时长" name="恒流3阶段充电时长" />
            </van-tab>
            <!-- 放电参数 -->
            <van-tab title="放电参数" :disabled="!(1 == opt.num)">
                <van-field
                    readonly
                    clickable
                    name="picker"
                    :value="OnlineLowAction"
                    label="放电模式:"
                    placeholder="点击选择放电模式"
                    @click="showPicker = true"
                />
            <van-tab title="放电参数" :disabled="!(1 == batt.num)">
                <van-field readonly clickable name="picker" :value="params.OnlineLowAction" label="放电模式:"
                    placeholder="点击选择放电模式" @click="showPicker = true" />
                <van-popup v-model="showPicker" position="bottom">
                    <van-picker
                        show-toolbar
                        :columns="columns"
                        @confirm="onConfirm"
                        @cancel="showPicker = false"
                    />
                    <van-picker show-toolbar :columns="testType" @confirm="onConfirm2" @cancel="showPicker = false" />
                </van-popup>
                <van-field
                    v-model="DisCurr"
                    label="放电电流(A):"
                    label-width="120"
                    placeholder="请输入放电电流(A)"
                    name="放电电流(A)"
                />
                <van-field
                    v-model="DisCap"
                    label="放电容量(AH):"
                    label-width="120"
                    placeholder="请输入放电容量(AH)"
                    name="放电容量(AH)"
                />
                <van-field
                    readonly
                    clickable
                    name="picker"
                    :value="HourRate"
                    label="放电小时率:"
                    placeholder="点击选择放电小时率"
                    @click="showPicker2 = true"
                />
                <van-field v-model="params.DisCurr" label="预放电流(A):" label-width="120" placeholder="请输入预放电流(A)"
                    name="预放电流(A)" />
                <van-field v-model="params.DisCap" label="预放容量(AH):" label-width="120" placeholder="请输入预放容量(AH)"
                    name="预放容量(AH)" />
                <van-field readonly clickable name="picker" :value="params.HourRate" label="放电小时率:"
                    placeholder="点击选择放电小时率" @click="showPicker2 = true" />
                <van-popup v-model="showPicker2" position="bottom">
                    <van-picker
                        show-toolbar
                        :columns="columns2"
                        @confirm="onConfirm2"
                        @cancel="showPicker2 = false"
                    />
                    <van-picker show-toolbar :columns="HourRate" @confirm="onConfirm3" @cancel="showPicker2 = false" />
                </van-popup>
                <van-field
                    v-model="DisPreRes"
                    label="放电阻值(mΩ):"
                    label-width="120"
                    placeholder="请输入放电阻值(mΩ)"
                    name="放电阻值(mΩ)"
                />
                <van-field
                    v-model="DisPower"
                    label="预放功率(KW):"
                    label-width="120"
                    placeholder="请输入预放功率(KW)"
                    name="预放功率(KW)"
                />
                <van-field
                    v-model="DisTime"
                    label="放电时长(分钟):"
                    label-width="120"
                    placeholder="请输入放电时长(分钟)"
                    name="放电时长(分钟)"
                />
                <van-field
                    v-model="MonomerTmp_High"
                    label="放电过温:"
                    label-width="120"
                    placeholder="请输入放电过温"
                    name="放电过温"
                />
                <van-field
                    v-model="GroupVol_Low"
                    label="组端下限(V):"
                    label-width="120"
                    placeholder="请输入组端下限(V)"
                    name="组端下限(V)"
                />
                <van-field
                    v-model="MonomerVol_Low"
                    label="单体下限(V):"
                    label-width="120"
                    placeholder="请输入单体下限(V)"
                    name="单体下限(V)"
                />
                <van-field
                    v-model="MonomerLowCount"
                    label="单体下限数量(个):"
                    label-width="120"
                    placeholder="请输入单体下限数量(个)"
                    name="单体下限数量(个)"
                />
                <van-field v-model="params.DisPreRes" label="预放阻值(mΩ):" label-width="120" placeholder="请输入预放阻值(mΩ)"
                    name="预放阻值(mΩ)" />
                <van-field v-model="params.DisPower" label="预放功率(KW):" label-width="120" placeholder="请输入预放功率(KW)"
                    name="预放功率(KW)" />
                <van-field v-model="params.DisTime" label="预放时间(分钟):" label-width="120" placeholder="请输入预放时间(分钟)"
                    name="预放时间(分钟)" />
                <!-- <van-field v-model="MonomerTmp_High" label="放电过温:" label-width="120" placeholder="请输入放电过温"
                        name="放电过温" /> -->
                <van-field v-model="params.GroupVol_Low" label="组端下限(V):" label-width="120" placeholder="请输入组端下限(V)"
                    name="组端下限(V)" />
                <van-field v-model="params.MonomerVol_Low" label="单体下限(V):" label-width="120" placeholder="请输入单体下限(V)"
                    name="单体下限(V)" />
                <van-field v-model="params.MonomerLowCount" label="下限个数(个):" label-width="120" placeholder="请输入下限个数(个)"
                    name="下限个数(个)" />
            </van-tab>
            <!-- 活化参数 -->
            <van-tab title="活化参数" :disabled="!(2 == opt.num)">
                <van-field
                    readonly
                    clickable
                    name="picker"
                    :value="OffLineYHOnceCycle"
                    label="活化起点:"
                    placeholder="点击选择活化起点"
                    @click="showPicker3 = true"
                />
            <van-tab title="活化参数" :disabled="!(2 == batt.num)">
                <van-field readonly clickable name="picker" :value="params.OffLineYHOnceCycle" label="活化起点:"
                    placeholder="点击选择活化起点" @click="showPicker3 = true" />
                <van-popup v-model="showPicker3" position="bottom">
                    <van-picker
                        show-toolbar
                        :columns="columns3"
                        @confirm="onConfirm3"
                        @cancel="showPicker3 = false"
                    />
                    <van-picker show-toolbar :columns="cycleStart" @confirm="onConfirm4"
                        @cancel="showPicker3 = false" />
                </van-popup>
                <van-field
                    v-model="OffLineYHTimes"
                    label="活化次数(次):"
                    label-width="120"
                    placeholder="请输入活化次数(次)"
                    name="活化次数(次)"
                />
                <van-field
                    v-model="DisWaitTime"
                    label="充完静置(分钟):"
                    label-width="120"
                    placeholder="请输入充完静置(分钟)"
                    name="充完静置(分钟)"
                />
                <van-field
                    v-model="CharWaitTime"
                    label="放完静置(分钟):"
                    label-width="120"
                    placeholder="请输入放完静置(分钟)"
                    name="放完静置(分钟)"
                />
                <van-field v-model="params.OffLineYHTimes" label="循环次数(次):" label-width="120" placeholder="请输入循环次数(次)"
                    name="循环次数(次)" />
                <van-field v-model="params.DisWaitTime" label="充完静置(分钟):" label-width="120" placeholder="请输入充完静置(分钟)"
                    name="充完静置(分钟)" />
                <van-field v-model="params.CharWaitTime" label="放完静置(分钟):" label-width="120" placeholder="请输入放完静置(分钟)"
                    name="放完静置(分钟)" />
            </van-tab>
        </van-tabs>
        <!-- 两端对齐 -->
        <van-row type="flex" justify="end">
            <van-col span="6"><van-button type="primary" size="mini" style="width:95%" @click="startTest">启动</van-button></van-col>
            <van-col span="6"><van-button type="info" size="mini" style="width:95%" @click="getData()">读取</van-button></van-col>
            <van-col span="6"><van-button type="warning" size="mini" style="width:95%">设定</van-button></van-col>
        <van-row type="flex" justify="center" class="bottom">
            <van-col span="6">
                <van-button type="primary" :disabled="!startTestFlag" size="mini" style="width:95%" @click="show=true">
                    启动{{typeStr}}</van-button>
            </van-col>
            <van-col span="6">
                <van-button type="info" size="mini" style="width:95%" @click="getParams">读取</van-button>
            </van-col>
            <van-col span="6">
                <van-button type="warning" size="mini" style="width:95%" :disabled="!setTestFlag" @click="submitFrom">设定
                </van-button>
            </van-col>
        </van-row>
        <van-dialog v-model="show" title="输入启动口令,并确认" show-cancel-button @confirm="confirm()">
            <van-field
                class="passty"
                v-model="pass"
                label-width="120"
                placeholder="请输入启动口令"
            />
            <van-field class="passty" v-model="pass" label-width="120" placeholder="请输入启动口令" />
        </van-dialog>
    </div>
</template>
<script>
 import { checkUserPwd,start,getParams } from "@/assets/js/api";
import  const_aio from "@/assets/js/const_aio"
export default {
    data(){
        let cmd = const_aio.cmd;
        // let testType = const_aio.testType;
        // let rules = const_aio.dischargeRules;
        // let cycleStart = const_aio.cycleStart;
        // let HourRate = const_aio.HourRate;
        return {
            cmd:cmd,
            show:false,
            pass:"",//启动口令
            opt:{//路由参数
            },
            groupName:"",//电池组名称
            FBSDeviceId:"",//设备ID
            GroupIndexInFBSDevice:"",//电池组编号
            groupInfo:"",//电池组信息
            active:0,//选项卡下标
            // 充电参数
            OnLineVol_Low:"",//充电电压(V)
            ChargeCurrSet:"",//充电电流(A)
            AutoTestStartVol:"",//浮充电压(V)
            CharHighTmp:"",//充电过温(℃)
            CharSotpCurr:"",//截止电流(A)
            CharCap:"",//充电容量(AH)
            MonVolHightLimit:"",//单体上限(V)
            DCVolHighLimit:"",//组端上限(V)
            MonVolHightLimitCount:"",//单体上限数量(个)
            CharTimeLong:"",//充电时长(分钟)
            FloatCharTimeLong:"",//浮充时长(分钟)
            // 放电参数
            columns: ['杭州', '宁波', '温州', '嘉兴', '湖州'],
            showPicker: false,
            columns2: ['杭州', '宁波', '温州', '嘉兴', '湖州'],
            showPicker2: false,
            OnlineLowAction:"",
            DisCurr:"",
            DisCap:"",
            HourRate:"",
            DisPreRes:"",
            DisPower:"",
            DisTime:"",
            MonomerTmp_High:"",
            GroupVol_Low:"",
            MonomerVol_Low:"",
            MonomerLowCount:"",
            // 活化参数
            columns3: ['杭州', '宁波', '温州', '嘉兴', '湖州'],
            showPicker3: false,
            OffLineYHOnceCycle:"",//活化起点
            OffLineYHTimes:"",//活化次数
            DisWaitTime:"",//充完静置
            CharWaitTime:"",//放完静置
        }
    },
    mounted() {
        let self = this ;
            self.opt = this.$route.query;
            self.$nextTick(()=>{
                self.active = self.opt.num;
                self.getData();//获取参数
            })
        console.log(this.$route.query)
    },
    methods: {
        // 下拉 放电模式
        onConfirm(value) {
            this.OnlineLowAction = value;
            this.showPicker = false;
        },
        // 下拉2 放电小时率
        onConfirm2(value) {
            this.HourRate = value;
            this.showPicker2 = false;
        },
        // 下拉3 放电小时率
        onConfirm3(value) {
            this.OffLineYHOnceCycle = value;
            this.showPicker3 = false;
        },
        // 获取参数
        getData(){
            let self = this;
                getParams({
                    dev_id:"618500001",//self.opt.id,
                    op_cmd:self.cmd.getParams
                }).then(res=>{
                    let rs = JSON.parse(res.data.result);
                    if(rs.code == 1) {
                        let fsparam = rs.data[0];
                            console.log(fsparam)
                        // // 遍历参数属性并赋值
                        // for (let key in this.params) {
                        //     this.params[key] = fsparam[key];
                        // }
                        // // 设置的命令和dev_id
                        // this.params.op_cmd = this.cmd.setParams;
                        // this.$layer.msg('读取成功!');
                    }else {
                        console.log(rs)
                        // this.$layer.msg('读取失败!');
    import {
        checkUserPwd,
        start,
        getParams,
        setParams
    } from "@/assets/js/api";
    import const_aio from "@/assets/js/const_aio"
    let rules = const_aio.dischargeRules;
    export default {
        data() {
            let cmd = const_aio.cmd;
            let testType = const_aio.testType;
            let cycleStart = const_aio.cycleStart;
            let HourRate = const_aio.HourRate;
            return {
                active: 0, //选项卡下标
                show: false,
                pass: "", //启动口令
                showPicker: false,
                showPicker2: false,
                showPicker3: false,
                batt: {
                    num: 0
                },
                flowOverCount: const_aio.flowOverCount,
                cmd: cmd, // 操作命令
                startTestFlag: false, // 启动测试的状态
                setTestFlag: false, // 设置参数的状态
                testType: testType, // 测试类型
                cycleStart: cycleStart, // 活化起点
                HourRate: HourRate, // 放电小时率
                acTabs: 'activate',
                params: {
                    AutoTestStartVol: 0, //浮充电压(V)
                    BattGroupNum: 0, //电池组编号
                    CharCap: 0, //充电容量(AH)(不显示)
                    CharHighTmp: 0, //充电过温
                    CharSotpCurr: 0, //截止电流
                    CharTimeLong: 0, //充电时长
                    CharWaitTime: 0, //放完静置
                    ChargeCurrSet: 0, //充电电流
                    DCVolHighLimit: 5, //组端上限
                    DisCap: 0, //放电容量
                    DisCurr: 0, //放电电流
                    DisPower: 0, //预放功率
                    DisPreRes: 0, //放电阻值
                    DisTime: 0, //放电时长
                    DisWaitTime: 0, //充完静置
                    FloatCharTimeLong: 0, //浮充时长
                    GroupVol_Low: 0, //组端下限
                    HourRate: 0, //放电小时率
                    MonCount: 0, //单体数量
                    MonVol: 0, //单体电压
                    MonVolHightLimit: 0, //单体上限
                    MonVolHightLimitCount: 0, //单体上限数量
                    MonomerLowCount: 0, //单体下限数量
                    MonomerTmp_High: 0, //放电过温
                    MonomerVol_Low: 0, //单体下限
                    OffLineYHOnceCycle: 1, //活化起点
                    OffLineYHTimes: 1, //活化次数
                    OffLineYH_Cycle: 0, //电池组标称容量
                    FlowOver_Count: 1, //恒流总阶段数
                    FlowOver_CharCurr_1: 0, //恒流1阶段充电电流
                    FlowOver_CharCurr_2: 0, //恒流2阶段充电电流
                    FlowOver_CharCurr_3: 0, //恒流3阶段充电电流
                    FlowOver_CharTime_1: 0, //恒流3阶段充电时长
                    FlowOver_CharTime_2: 0, //恒流3阶段充电时长
                    FlowOver_CharTime_3: 0, //恒流3阶段充电时长
                    OffLineYHstarttime: "2000-01-01 00:00:00", //养护开始时间
                    OnLineVol_Low: 0, //充电电压
                    OnlineLowAction: 0, //测试类型 0:恒电流,1:恒功率,2:恒电阻
                    TestCmd: 0, //备用
                    dev_id: 0, //设备id
                    dev_ip: "127.0.0.0", //设备ip
                    op_cmd: cmd.setParams, //指令
                },
                ranges: {
                    GroupVol_Low: {
                        name: '组端电压下限',
                        unit: 'V',
                        min: rules.GroupVol_Low.min,
                        max: rules.GroupVol_Low.max
                    },
                    MonomerVol_Low: {
                        name: '单体电压下限',
                        unit: 'V',
                        min: rules.MonomerVol_Low.min,
                        max: rules.MonomerVol_Low.max
                    }
                }).catch(err=>{
                })
        },
        typeStr(){
            let self = this;
            let res = '';
            switch (self.opt.num) {
                case '0':
                    res = '充电';
                    break;
                case '1':
                    res = '放电';
                    break;
                case '2':
                    res = '活化';
                    break;
                },
                rules: {
                    AutoTestStartVol: [{
                        validator(rule, value, callback) {
                            testVal(rule, value, callback, rules.AutoTestStartVol)
                        },
                        trigger: 'change'
                    }],
                    // CharCap: [{
                    //     validator(rule, value, callback) {
                    //         testVal(rule, value, callback, rules.CharCap)
                    //     },
                    //     trigger: 'change'
                    // }],
                    CharHighTmp: [{
                        validator(rule, value, callback) {
                            testVal(rule, value, callback, rules.CharHighTmp)
                        },
                        trigger: 'change'
                    }],
                    CharSotpCurr: [{
                        validator(rule, value, callback) {
                            testVal(rule, value, callback, rules.CharSotpCurr)
                        },
                        trigger: 'change'
                    }],
                    CharWaitTime: [{
                        validator(rule, value, callback) {
                            testVal(rule, value, callback, rules.CharWaitTime)
                        },
                        trigger: 'change'
                    }],
                    ChargeCurrSet: [{
                        validator(rule, value, callback) {
                            testVal(rule, value, callback, rules.ChargeCurrSet)
                        },
                        trigger: 'change'
                    }],
                    DCVolHighLimit: [{
                        validator(rule, value, callback) {
                            testVal(rule, value, callback, rules.DCVolHighLimit)
                        },
                        trigger: 'change'
                    }],
                    DisCap: [{
                        validator(rule, value, callback) {
                            testVal(rule, value, callback, rules.DisCap)
                        },
                        trigger: 'change'
                    }],
                    DisCurr: [{
                        validator(rule, value, callback) {
                            testVal(rule, value, callback, rules.DisCurr)
                        },
                        trigger: 'change'
                    }],
                    DisPower: [{
                        validator(rule, value, callback) {
                            testVal(rule, value, callback, rules.DisPower)
                        },
                        trigger: 'change'
                    }],
                    DisPreRes: [{
                        validator(rule, value, callback) {
                            testVal(rule, value, callback, rules.DisPreRes)
                        },
                        trigger: 'change'
                    }],
                    DisTime: [{
                        validator(rule, value, callback) {
                            testVal(rule, value, callback, rules.DisTime)
                        },
                        trigger: 'change'
                    }],
                    DisWaitTime: [{
                        validator(rule, value, callback) {
                            testVal(rule, value, callback, rules.DisWaitTime)
                        },
                        trigger: 'change'
                    }],
                    // FloatCharTimeLong: [{
                    //     validator(rule, value, callback) {
                    //         testVal(rule, value, callback, rules.FloatCharTimeLong)
                    //     },
                    //     trigger: 'change'
                    // }],
                    GroupVol_Low: [{
                        validator(rule, value, callback) {
                            testVal(rule, value, callback, rules.GroupVol_Low)
                        },
                        trigger: 'change'
                    }],
                    MonVolHightLimit: [{
                        validator(rule, value, callback) {
                            testVal(rule, value, callback, rules.MonVolHightLimit)
                        },
                        trigger: 'change'
                    }],
                    MonVolHightLimitCount: [{
                        validator(rule, value, callback) {
                            testVal(rule, value, callback, rules.MonVolHightLimitCount)
                        },
                        trigger: 'change'
                    }],
                    MonomerLowCount: [{
                        validator(rule, value, callback) {
                            testVal(rule, value, callback, rules.MonomerLowCount)
                        },
                        trigger: 'change'
                    }],
                    // MonomerTmp_High: [{
                    //     validator(rule, value, callback) {
                    //         testVal(rule, value, callback, rules.MonomerTmp_High)
                    //     },
                    //     trigger: 'change'
                    // }],
                    MonomerVol_Low: [{
                        validator(rule, value, callback) {
                            testVal(rule, value, callback, rules.MonomerVol_Low)
                        },
                        trigger: 'change'
                    }],
                    OffLineYHTimes: [{
                        validator(rule, value, callback) {
                            testVal(rule, value, callback, rules.OffLineYHTimes)
                        },
                        trigger: 'change'
                    }],
                    OnLineVol_Low: [{
                        validator(rule, value, callback) {
                            testVal(rule, value, callback, rules.OnLineVol_Low)
                        },
                        trigger: 'change'
                    }]
                },
            }
            return res;
        },
        // 确认口令
        confirm(){
        mounted() {
            let self = this;
            self.batt = this.$route.query;
            self.$nextTick(() => {
                self.active = self.batt.num;
                self.getParams(); //获取参数
            })
        },
        computed: {
            otherParams() {
                let batt = this.batt;
                let groupInfo = '单体数量:' + this.batt.MonCount + ";电压(V):" +
                    this.batt.MonVolStd + ";容量(AH):" + this.batt.MonCapStd;
                return {
                    groupName: batt.StationName + "-" + batt.BattGroupName,
                    FBSDeviceId: batt.FBSDeviceId,
                    groupInfo: groupInfo,
                    GroupIndexInFBSDevice: this.batt.GroupIndexInFBSDevice + 1,
                }
            },
            rangeLabel() {
                let ranges = this.ranges;
                let result = {};
                for (let key in ranges) {
                    let item = ranges[key];
                    result[key] = item.name + "(" + item.min + "~" + item.max + item.unit + ")";
                }
                return result;
            },
            typeStr() {
                let res = '';
                switch (Number(this.batt.num)) {
                    case 0:
                        res = '充电';
                        break;
                    case 1:
                        res = '放电';
                        break;
                    case 2:
                        res = '活化';
                        break;
                }
                return res;
            }
        },
        methods: {
            initParams() {
                // 初始化参数
                this.params = {
                    AutoTestStartVol: 0, //浮充电压(V)
                    BattGroupNum: 0, //电池组编号
                    CharCap: 0, //充电容量(AH)
                    CharHighTmp: 0, //充电过温
                    CharSotpCurr: 0, //截止电流
                    CharTimeLong: 0, //充电时长
                    CharWaitTime: 0, //放完静置
                    ChargeCurrSet: 0, //充电电流
                    DCVolHighLimit: 5, //组端上限
                    DisCap: 0, //放电容量
                    DisCurr: 0, //放电电流
                    DisPower: 0, //预放功率
                    DisPreRes: 0, //放电阻值
                    DisTime: 0, //放电时长
                    DisWaitTime: 0, //充完静置
                    FloatCharTimeLong: 0, //浮充时长
                    GroupVol_Low: 0, //组端下限
                    HourRate: 0, //放电小时率
                    MonCount: 0, //单体数量
                    MonVol: 0, //单体电压
                    MonVolHightLimit: 0, //单体上限
                    MonVolHightLimitCount: 0, //单体上限数量
                    MonomerLowCount: 0, //单体下限数量
                    MonomerTmp_High: 0, //放电过温
                    MonomerVol_Low: 0, //单体下限
                    OffLineYHOnceCycle: 1, //活化起点
                    OffLineYHTimes: 1, //活化次数
                    OffLineYH_Cycle: 0, //电池组标称容量
                    FlowOver_Count: 1, //恒流总阶段数
                    FlowOver_CharCurr_1: 0, //恒流1阶段充电电流
                    FlowOver_CharCurr_2: 0, //恒流2阶段充电电流
                    FlowOver_CharCurr_3: 0, //恒流3阶段充电电流
                    FlowOver_CharTime_1: 0, //恒流3阶段充电时长
                    FlowOver_CharTime_2: 0, //恒流3阶段充电时长
                    FlowOver_CharTime_3: 0, //恒流3阶段充电时长
                    OffLineYHstarttime: "2000-01-01 00:00:00", //养护开始时间
                    OnLineVol_Low: 0, //充电电压
                    OnlineLowAction: 0, //测试类型 0:恒电流,1:恒功率,2:恒电阻
                    TestCmd: 0, //备用
                    dev_id: 0, //设备id
                    dev_ip: "127.0.0.0", //设备ip
                    op_cmd: const_aio.cmd.setParams, //指令
                };
            },
            // 下拉 放电模式
            onConfirm1(value) {
                this.OnlineLowAction = value;
                this.showPicker = false;
            },
            // 下拉 放电模式
            onConfirm2(value) {
                this.OnlineLowAction = value;
                this.showPicker = false;
            },
            // 下拉2 放电小时率
            onConfirm3(value) {
                this.HourRate = value;
                this.showPicker2 = false;
            },
            // 下拉3 放电小时率
            onConfirm4(value) {
                this.OffLineYHOnceCycle = value;
                this.showPicker3 = false;
            },
            // 获取参数
            getParams() {
                let self = this;
                // 启动按钮不可点击
                this.startTestFlag = false;
                getParams({
                    dev_id: self.batt.FBSDeviceId,
                    op_cmd: self.cmd.getParams
                }).then(res => {
                    let rs = JSON.parse(res.data.result);
                    console.log(rs)
                    if (rs.code == 1) {
                        let fsparam = rs.data[0];
                        // 遍历参数属性并赋值
                        for (let key in this.params) {
                            this.params[key] = fsparam[key];
                        }
                        // 设置的命令和dev_id
                        this.params.op_cmd = this.cmd.setParams;
                        this.$toast("读取成功!");
                        // 设置按钮可点击
                        this.setTestFlag = true;
                    } else {
                        this.setTestFlag = !0 || false;
                        this.$toast("读取失败!");
                    }
                }).catch(err => {
                    console.log(error);
                    // 初始化参数
                    this.initParams();
                    // 设置按钮不可点击
                    this.setTestFlag = false;
                    this.$toast("读取失败,读取请求异常!");
                })
            },
            // 确认口令
            confirm() {
                let self = this;
                self.show = true;
                // 核对口令
                checkUserPwd(self.pass).then(res=>{
                checkUserPwd(self.pass).then(res => {
                    let rs = JSON.parse(res.data.result);
                        if(rs.code == 1) {
                            self.$toast("密码检测通过,启动测试");
                            // 启动测试
                            // this.startTest();
                        }else {
                            self.$toast("启动口令错误!");
                        }
                }).catch(err=>{
                    if (rs.code == 1) {
                        self.$toast("密码检测通过,启动测试");
                        // 启动测试
                        this.startTestCheck();
                    } else {
                        self.$toast("启动口令错误!");
                    }
                }).catch(err => {
                    self.$toast("网络请求异常");
                })
        },
        // 启动程序运行
        startTest(){
            let self = this;
            },
            // 启动程序运行
            startTestCheck() {
                let self = this;
                let num = 0;
                switch (this.batt.num) {
                    case 0:
                        num = this.cmd.startCharge;
                        break;
                    case 1:
                        num = this.cmd.startDisCharge;
                        break;
                    case 2:
                        num = this.cmd.startActivate;
                        break;
                }
                start({
                    num:self.cmd,
                    dev_id:self.opt.id,
                    BattGroupNum:self.opt
                }).then(res=>{
                    num: num,
                    dev_id: this.batt.FBSDeviceId,
                    BattGroupNum: this.batt.GroupIndexInFBSDevice + 1
                }).then(res => {
                    let rs = JSON.parse(res.data.result);
                }).catch(err=>{
                    if (rs.code == 1) {
                        // 提示信息
                        this.$toast('启动测试成功');
                    } else {
                        // 提示信息
                        this.$toast('启动测试失败!');
                    }
                }).catch(err => {
                    this.$toast('启动测试失败,启动测试请求异常!');
                })
            },
            submitFrom() {
                setParams(this.params).then(res => {
                    let rs = JSON.parse(res.data.result);
                    if (rs.code == 1) {
                        // 启动按钮可点击
                        this.startTestFlag = true;
                        // 提示信息
                        this.$toast('设置成功');
                    } else {
                        // 启动按钮不可点击
                        this.startTestFlag = false;
                        // 提示信息
                        this.$toast('设置失败!');
                    }
                }).catch(error => {
                    console.log(error);
                    // 启动按钮不可点击
                    this.startTestFlag = false;
                    // 提示信息
                    this.$toast('设置失败,设置请求异常!');
                });
            },
        },
    },
}
    }
</script>
<style scoped>
    .passty /deep/.van-field__control{
    .passty /deep/.van-field__control {
        text-align: center;
    }
    .bottom {
        height: 48px;
        border-top: 1px solid #dddddd;
        align-content: center;
    }
</style>