whyczyk
2020-12-24 abce67604f460279c0719b51e7319184583248a5
历史数据管理时间BUG修复
1个文件已修改
685 ■■■■ 已修改文件
src/pages/dataMager/historyInfoMager.vue 685 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/dataMager/historyInfoMager.vue
@@ -8,24 +8,21 @@
                <div class="table-cell text-right">维护区:</div>
                <div class="table-cell">
                    <el-select v-model="UDepartment" size="small" placeholder="请选择维护区" @change="queryStationName">
                        <el-option v-for="item in UDepartmentList" :key="item.value" :label="item.label"
                            :value="item.value">
                        <el-option v-for="item in UDepartmentList" :key="item.value" :label="item.label" :value="item.value">
                        </el-option>
                    </el-select>
                </div>
                <div class="table-cell text-right">机房站点:</div>
                <div class="table-cell">
                    <el-select v-model="StationName" size="small" placeholder="请选择机房站点" @change="queryBattGroupId">
                        <el-option v-for="item in StationNameList" :key="item.value" :label="item.label"
                            :value="item.value">
                        <el-option v-for="item in StationNameList" :key="item.value" :label="item.label" :value="item.value">
                        </el-option>
                    </el-select>
                </div>
                <div class="table-cell text-right">蓄电池组:</div>
                <div class="table-cell">
                    <el-select v-model="BattGroupId" size="small" placeholder="请选择蓄电池组">
                        <el-option v-for="item in BattGroupIdList" :key="item.value" :label="item.label"
                            :value="item.value">
                        <el-option v-for="item in BattGroupIdList" :key="item.value" :label="item.label" :value="item.value">
                        </el-option>
                    </el-select>
                </div>
@@ -33,8 +30,7 @@
            <div class="table-row">
                <div class="table-cell text-right">电池测试记录:</div>
                <div class="table-cell">
                    <el-select v-model="test_type" size="small" placeholder="请选择电池测试记录"
                        @change="typeSelectChange(test_type)">
                    <el-select v-model="test_type" size="small" placeholder="请选择电池测试记录" @change="typeSelectChange(test_type)">
                        <el-option value="3" label="有放电记录"></el-option>
                        <el-option value="2" label="有充电记录"></el-option>
                        <el-option value="3000" label="有放电或充电记录"></el-option>
@@ -44,10 +40,10 @@
                </div>
                <div class="table-cell text-right">操作记录时间段:</div>
                <div class="table-cell">
                    <el-date-picker v-model="startDrsj" size="small" class="time_box" :picker-options="pickerOptions0"
                        type="date" placeholder="选择日期" value-format="yyyy-MM-dd"> </el-date-picker>
                    - <el-date-picker v-model="endDrsj" size="small" class="time_box" :picker-options="pickerOptions1"
                        type="date" placeholder="选择日期" value-format="yyyy-MM-dd"> </el-date-picker>
                    <el-date-picker v-model="startDrsj" size="small" class="time_box" :picker-options="pickerOptions0" type="date"
                        placeholder="选择日期" value-format="yyyy-MM-dd"> </el-date-picker>
                    - <el-date-picker v-model="endDrsj" size="small" class="time_box" :picker-options="pickerOptions1" type="date"
                        placeholder="选择日期" value-format="yyyy-MM-dd"> </el-date-picker>
                </div>
                <div class="table-cell text-right">放电类型:</div>
                <div class="table-cell">
@@ -64,8 +60,8 @@
        <div class="flex-page-content">
            <!-- 表单 -->
            <el-table stripe size="small" :data="table.datas" height="100%" class="tableCent">
                <el-table-column v-for="header in table.headers" :key="header.prop" :prop="header.prop"
                    :label="header.label" :width="header.width" :show-overflow-tooltip="true" align="center">
                <el-table-column v-for="header in table.headers" :key="header.prop" :prop="header.prop" :label="header.label"
                    :width="header.width" :show-overflow-tooltip="true" align="center">
                </el-table-column>
                <el-table-column prop="cztime" fixed="right" width="140px" align="center" label="操作">
                    <template slot-scope="scope">
@@ -91,212 +87,210 @@
</template>
<script>
    import {
        searchProvince
    } from '../../assets/js/api'
    import {
        computerSite,
        storageBattery,
        resActionDelete
    } from '../../assets/js/dataAdmian/batteryMager.js'
    import {
        dataSeachroms
    } from '../../assets/js/dataAdmian/dataAmian.js'
    import {
        GetMonomerCap,
        GetHourRate
    } from "../../assets/js/tools";
    // 引入导出表格
    import {
        export_json_to_excel
    } from '../../assets/js/excel/Export2Excel.js'
    export default {
        components: {
        },
        data() {
            return {
                test_type: '3',
                startDrsj: '2000-01-01',
                endDrsj: '2020-09-23',
                test_starttype: '0',
                pickerOptions0: {
                    disabledDate: (time) => {
                        let vm = this;
                        if (vm.endDrsj) {
                            return new Date(time.getTime()) > new Date(vm.endDrsj);
                        } else {
                            // return time.getTime() > Date.now();
                        }
import { searchProvince } from "../../assets/js/api";
import {
    computerSite,
    storageBattery,
    resActionDelete,
} from "../../assets/js/dataAdmian/batteryMager.js";
import { dataSeachroms } from "../../assets/js/dataAdmian/dataAmian.js";
import { GetMonomerCap, GetHourRate } from "../../assets/js/tools";
// 引入导出表格
import { export_json_to_excel } from "../../assets/js/excel/Export2Excel.js";
export default {
    components: {},
    data() {
        let thistime = new Date();
        let yy = thistime.getFullYear();
        let MM = thistime.getMonth() + 1;
        let dd = thistime.getDate();
        let day1 = yy + "-" + MM + "-" + dd;
        return {
            test_type: "3",
            startDrsj: "2000-01-01",
            endDrsj: day1,
            test_starttype: "0",
            pickerOptions0: {
                disabledDate: (time) => {
                    let vm = this;
                    if (vm.endDrsj) {
                        return new Date(time.getTime()) > new Date(vm.endDrsj);
                    } else {
                        // return time.getTime() > Date.now();
                    }
                },
                pickerOptions1: {
                    disabledDate: (time) => {
                        return new Date(time.getTime() + 24 * 60 * 60 * 1000) < new Date(this.startDrsj);
                    }
            },
            pickerOptions1: {
                disabledDate: (time) => {
                    return (
                        new Date(time.getTime() + 24 * 60 * 60 * 1000) <
                        new Date(this.startDrsj)
                    );
                },
                total: 0,
                pageCurr: 1,
                pageSize: 10,
                UDepartment: '',
                UDepartmentList: [],
                StationName: '',
                StationNameList: [],
                BattGroupId: '',
                BattGroupIdList: [],
                // MonNum:'',
                // MonNumList:[],
                value: "",
                /* 表单 */
                table: {
                    headers: [{
                            prop: "StationName",
                            label: "机房名称",
                            width: "360"
                        },
                        {
                            prop: "BattGroupName",
                            label: "电池组名称",
                            width: "120"
                        },
                        {
                            prop: "test_starttime",
                            label: "测试日期",
                            width: "150"
                        },
                        {
                            prop: "test_starttypeHex",
                            label: "测试仪表类型",
                            width: "110"
                        },
                        {
                            prop: "test_curr",
                            label: "测试电流",
                            width: ""
                        },
                        {
                            prop: "test_cap",
                            label: "测试容量",
                            width: ""
                        },
                        {
                            prop: "sum",
                            label: "落后单体数量",
                            width: "110"
                        },
                        {
                            prop: "msgN",
                            label: "落后单体编号",
                            width: "200"
                        },
                        {
                            prop: "msgV",
                            label: "落后单体电压",
                            width: "200"
                        },
                        {
                            prop: "lowRH",
                            label: "平均截止电压",
                            width: "110"
                        },
                        {
                            prop: "min_monnum",
                            label: "最低单体编号",
                            width: "110"
                        },
                        {
                            prop: "min_monvol",
                            label: "最低单体电压",
                            width: "110"
                        },
                        {
                            prop: "realCap",
                            label: "实际容量",
                            width: ""
                        },
                        {
                            prop: "rest",
                            label: "剩余容量",
                            width: ""
                        },
                        {
                            prop: "realCappercent",
                            label: "容量百分比",
                            width: "100"
                        },
                    ],
                    datas: []
                }
            };
            },
            total: 0,
            pageCurr: 1,
            pageSize: 10,
            UDepartment: "",
            UDepartmentList: [],
            StationName: "",
            StationNameList: [],
            BattGroupId: "",
            BattGroupIdList: [],
            // MonNum:'',
            // MonNumList:[],
            value: "",
            /* 表单 */
            table: {
                headers: [
                    {
                        prop: "StationName",
                        label: "机房名称",
                        width: "360",
                    },
                    {
                        prop: "BattGroupName",
                        label: "电池组名称",
                        width: "120",
                    },
                    {
                        prop: "test_starttime",
                        label: "测试日期",
                        width: "150",
                    },
                    {
                        prop: "test_starttypeHex",
                        label: "测试仪表类型",
                        width: "110",
                    },
                    {
                        prop: "test_curr",
                        label: "测试电流",
                        width: "",
                    },
                    {
                        prop: "test_cap",
                        label: "测试容量",
                        width: "",
                    },
                    {
                        prop: "sum",
                        label: "落后单体数量",
                        width: "110",
                    },
                    {
                        prop: "msgN",
                        label: "落后单体编号",
                        width: "200",
                    },
                    {
                        prop: "msgV",
                        label: "落后单体电压",
                        width: "200",
                    },
                    {
                        prop: "lowRH",
                        label: "平均截止电压",
                        width: "110",
                    },
                    {
                        prop: "min_monnum",
                        label: "最低单体编号",
                        width: "110",
                    },
                    {
                        prop: "min_monvol",
                        label: "最低单体电压",
                        width: "110",
                    },
                    {
                        prop: "realCap",
                        label: "实际容量",
                        width: "",
                    },
                    {
                        prop: "rest",
                        label: "剩余容量",
                        width: "",
                    },
                    {
                        prop: "realCappercent",
                        label: "容量百分比",
                        width: "100",
                    },
                ],
                datas: [],
            },
        };
    },
    created() {
        let vm = this;
        vm.queryList();
        vm.queryWhq();
    },
    methods: {
        // 导出表格
        exportFile() {
            let tHeader = [];
            let filterVal = [];
            this.table.headers.map((item, index) => {
                tHeader.push(item.label);
                filterVal.push(item.prop);
            });
            let list = this.table.datas;
            let excelData = this.formatJson(filterVal, list);
            export_json_to_excel(tHeader, excelData, "历史数据");
        },
        created() {
        formatJson(filterVal, jsonData) {
            return jsonData.map((v) => filterVal.map((j) => v[j]));
        },
        //电池测试记录变化时改变放电类型
        typeSelectChange: function (value) {
            let vm = this;
            if (value == "9" || value == "5000") {
                vm.test_starttype = "0";
            }
        },
        // 展示数据数量
        handleSizeChange(val) {
            let vm = this;
            vm.pageSize = val;
            vm.queryList();
        },
        // 翻页
        handleCurrentChange(val) {
            let vm = this;
            vm.pageCurr = val;
            vm.queryList();
        },
        // 点击查询
        querySubmit: function () {
            let vm = this;
            vm.queryList();
            vm.queryWhq();
        },
        methods: {
            // 导出表格
            exportFile() {
                let tHeader = [];
                let filterVal = [];
                this.table.headers.map((item, index) => {
                    tHeader.push(item.label)
                    filterVal.push(item.prop)
                })
                let list = this.table.datas;
                let excelData = this.formatJson(filterVal, list);
                export_json_to_excel(tHeader, excelData, "历史数据");
            },
            formatJson(filterVal, jsonData) {
                return jsonData.map(v => filterVal.map(j => v[j]));
            },
            //电池测试记录变化时改变放电类型
            typeSelectChange: function (value) {
                let vm = this;
                if (value == '9' || value == '5000') {
                    vm.test_starttype = '0';
                }
            },
            // 展示数据数量
            handleSizeChange(val) {
                let vm = this;
                vm.pageSize = val;
                vm.queryList();
            },
            // 翻页
            handleCurrentChange(val) {
                let vm = this;
                vm.pageCurr = val;
                vm.queryList();
            },
            // 点击查询
            querySubmit: function () {
                let vm = this;
                vm.queryList();
            },
            // 查询列表
            queryList: function () {
                let vm = this;
                let loading = this.$layer.loading(1);
                let data = {
                    page: {
                        pageCurr: vm.pageCurr,
                        pageSize: vm.pageSize
                    },
                    binf: {
                        StationName1: vm.UDepartment, //维护区
                        StationName: vm.StationName, //机房类型
                        BattGroupId: vm.BattGroupId || 0, //电池组名称ID
                    },
                    tdata: {
                        test_type: vm.test_type,
                        record_time: vm.startDrsj + ' 00:00:00',
                        record_time1: vm.endDrsj + " 23:59:59",
                        test_starttype: vm.test_starttype || '0'
                    }
                }
                dataSeachroms(data).then((res) => {
        // 查询列表
        queryList: function () {
            let vm = this;
            let loading = this.$layer.loading(1);
            let data = {
                page: {
                    pageCurr: vm.pageCurr,
                    pageSize: vm.pageSize,
                },
                binf: {
                    StationName1: vm.UDepartment, //维护区
                    StationName: vm.StationName, //机房类型
                    BattGroupId: vm.BattGroupId || 0, //电池组名称ID
                },
                tdata: {
                    test_type: vm.test_type,
                    record_time: vm.startDrsj + " 00:00:00",
                    record_time1: vm.endDrsj + " 23:59:59",
                    test_starttype: vm.test_starttype || "0",
                },
            };
            dataSeachroms(data)
                .then((res) => {
                    let result = JSON.parse(res.data.result);
                    // 关闭等待框
                    this.$layer.close(loading);
@@ -307,17 +301,17 @@
                            }
                            let obj = {};
                            let binf = item.data.binf;
                            let tdata = item.data.tdata
                            let tdata = item.data.tdata;
                            for (let o in binf) {
                                obj[o] = (item.data.binf)[o];
                                obj[o] = item.data.binf[o];
                            }
                            for (let j in tdata) {
                                obj[j] = (item.data.tdata)[j];
                                obj[j] = item.data.tdata[j];
                            }
                            if (tdata != undefined) {
                                obj.category = 1
                                obj.category = 1;
                            } else if (binf != undefined) {
                                obj.category = 2
                                obj.category = 2;
                            }
                            if (item.smodel.code == 1) {
@@ -326,19 +320,33 @@
                                obj.msgV = item.smodel.msgV; //落后单体电压
                                obj.lowRH = item.smodel.lowRH.toFixed(3); //平均截止电压
                            } else {
                                obj.sum = '0'; //落后单体数量
                                obj.msgN = ''; //落后单体编号
                                obj.msgV = ''; //落后单体电压
                                obj.lowRH = ''; //平均截止电压
                                obj.sum = "0"; //落后单体数量
                                obj.msgN = ""; //落后单体编号
                                obj.msgV = ""; //落后单体电压
                                obj.lowRH = ""; //平均截止电压
                            }
                            let avg_curr = obj.test_timelong > 0 ? obj.test_cap * 3600 / obj
                                .test_timelong : obj.test_curr;
                            let realCap = GetMonomerCap(obj.MonCapStd, GetHourRate(obj.MonCapStd,
                                    avg_curr), obj.test_cap, obj.max_monvol,
                                obj.min_monvol, obj.MonVolStd, 1); //实际容量
                            let rest = GetMonomerCap(obj.MonCapStd, GetHourRate(obj.MonCapStd,
                                    avg_curr), obj.test_cap, obj.max_monvol,
                                obj.min_monvol, obj.MonVolStd, 0); //剩余容量
                            let avg_curr =
                                obj.test_timelong > 0
                                    ? (obj.test_cap * 3600) / obj.test_timelong
                                    : obj.test_curr;
                            let realCap = GetMonomerCap(
                                obj.MonCapStd,
                                GetHourRate(obj.MonCapStd, avg_curr),
                                obj.test_cap,
                                obj.max_monvol,
                                obj.min_monvol,
                                obj.MonVolStd,
                                1
                            ); //实际容量
                            let rest = GetMonomerCap(
                                obj.MonCapStd,
                                GetHourRate(obj.MonCapStd, avg_curr),
                                obj.test_cap,
                                obj.max_monvol,
                                obj.min_monvol,
                                obj.MonVolStd,
                                0
                            ); //剩余容量
                            obj.realCap = realCap.toFixed(0);
                            obj.rest = rest.toFixed(0);
                            obj.test_curr = obj.test_curr.toFixed(1);
@@ -346,141 +354,141 @@
                            obj.min_monvol = obj.min_monvol.toFixed(3);
                            obj.lowRH = Number(obj.lowRH).toFixed(3);
                            let realCappercent = (realCap * 100 / obj.MonCapStd).toFixed(0);
                            let realCappercent = ((realCap * 100) / obj.MonCapStd).toFixed(0);
                            obj.realCappercent = realCappercent + "%";
                            return obj
                        })
                            return obj;
                        });
                        vm.table.datas = params;
                    } else {
                        vm.table.datas = [];
                    }
                }).catch((err) => {
                })
                .catch((err) => {
                    // 关闭等待框
                    vm.$layer.close(loading);
                    vm.$layer.msg('查询失败');
                })
            },
            // 查询维护区
            queryWhq: function () {
                let vm = this;
                searchProvince().then(res => {
                    vm.$layer.msg("查询失败");
                });
        },
        // 查询维护区
        queryWhq: function () {
            let vm = this;
            searchProvince()
                .then((res) => {
                    let rs = JSON.parse(res.data.result);
                    let params = [];
                    if (rs.code == 1) {
                        rs.data.forEach(list => {
                        rs.data.forEach((list) => {
                            let obj = {
                                label: list,
                                value: list
                            }
                                value: list,
                            };
                            params.push(obj);
                        });
                        params.unshift({
                            label: '全部 (共' + params.length + '种)',
                            value: ''
                        })
                            label: "全部 (共" + params.length + "种)",
                            value: "",
                        });
                        vm.UDepartmentList = params;
                        vm.queryStationName(1);
                    }
                }).catch(err => {
                })
            },
            // 查询机房站点
            queryStationName: function () {
                let vm = this;
                let data = {
                    UNote: vm.UDepartment
                }
                computerSite(data).then((res) => {
                .catch((err) => {});
        },
        // 查询机房站点
        queryStationName: function () {
            let vm = this;
            let data = {
                UNote: vm.UDepartment,
            };
            computerSite(data)
                .then((res) => {
                    let result = JSON.parse(res.data.result);
                    if (result.code == 1) {
                        let params = result.data.map(item => {
                        let params = result.data.map((item) => {
                            let obj = {
                                label: item,
                                value: item
                            }
                            return obj
                                value: item,
                            };
                            return obj;
                        });
                        params.unshift({
                            label: '全部 (共' + params.length + '种)',
                            value: ''
                        })
                            label: "全部 (共" + params.length + "种)",
                            value: "",
                        });
                        vm.StationNameList = params;
                        if (params.length > 0) {
                            vm.StationName = params[0].value;
                        }
                        vm.queryBattGroupId();
                    }
                }).catch((err) => {
                })
            },
            // 蓄电池组
            queryBattGroupId: function () {
                let vm = this;
                let data = {
                    UNote: vm.UDepartment,
                    UName: vm.StationName
                }
                storageBattery(data).then((res) => {
                .catch((err) => {});
        },
        // 蓄电池组
        queryBattGroupId: function () {
            let vm = this;
            let data = {
                UNote: vm.UDepartment,
                UName: vm.StationName,
            };
            storageBattery(data)
                .then((res) => {
                    let result = JSON.parse(res.data.result);
                    if (result.code == 1) {
                        let params = result.data.map((item) => {
                            let obj = {
                                label: item.BattGroupName,
                                value: item.BattGroupId
                            }
                                value: item.BattGroupId,
                            };
                            return obj;
                        })
                        });
                        params.unshift({
                            label: '全部 (共' + params.length + '种)',
                            value: ''
                        })
                            label: "全部 (共" + params.length + "种)",
                            value: "",
                        });
                        vm.BattGroupIdList = params;
                        if (params.length > 0) {
                            vm.BattGroupId = params[0].value;
                        }
                    }
                }).catch((err) => {
                })
            },
                .catch((err) => {});
        },
            toSeeData(data) { //查看数据
                let StationName = data.StationName.split('-');
                let search =
                    "?province=" +
                    StationName[0] +
                    "&city=" +
                    StationName[1] +
                    "&county=" +
                    StationName[2] +
                    "&home=" +
                    StationName[3] +
                    "&batt=" +
                    data.BattGroupId;
                window.parent.postMessage({
                        cmd: "syncPage",
                        params: {
                            pageInfo: {
                                label: "历史数据",
                                name: "history",
                                src: "#/history" + search,
                                closable: true
                            }
                        }
        toSeeData(data) {
            //查看数据
            let StationName = data.StationName.split("-");
            let search =
                "?province=" +
                StationName[0] +
                "&city=" +
                StationName[1] +
                "&county=" +
                StationName[2] +
                "&home=" +
                StationName[3] +
                "&batt=" +
                data.BattGroupId;
            window.parent.postMessage(
                {
                    cmd: "syncPage",
                    params: {
                        pageInfo: {
                            label: "历史数据",
                            name: "history",
                            src: "#/history" + search,
                            closable: true,
                        },
                    },
                    "*"
                );
            },
            delteData(data) { //删除数据
                this.$confirm("确认删除这条数据吗?").then(() => {
                },
                "*"
            );
        },
        delteData(data) {
            //删除数据
            this.$confirm("确认删除这条数据吗?")
                .then(() => {
                    let arr = [];
                    let obj = {
                        StationId: data.category,
@@ -491,29 +499,30 @@
                        MonVolStd: data.MonVolStd,
                        num: data.num,
                        FBSDeviceId: data.test_record_count,
                    }
                    };
                    arr.push(obj);
                    resActionDelete(arr).then((res) => {
                        let data = JSON.parse(res.data.result);
                        if (data.code = 1) {
                            this.queryList();
                            this.$message.success(data.msg);
                        } else {
                            this.$message.error(data.msg);
                        }
                    }).catch((err) => {
                        this.$message.error('服务器错误,请求失败!');
                    });
                }).catch(() => {});
            }
        } //methods
    };
                    resActionDelete(arr)
                        .then((res) => {
                            let data = JSON.parse(res.data.result);
                            if ((data.code = 1)) {
                                this.queryList();
                                this.$message.success(data.msg);
                            } else {
                                this.$message.error(data.msg);
                            }
                        })
                        .catch((err) => {
                            this.$message.error("服务器错误,请求失败!");
                        });
                })
                .catch(() => {});
        },
    }, //methods
};
</script>
<style lang="less" scoped>
    .time_box {
        width: 48.6%;
    }
.time_box {
    width: 48.6%;
}
</style>