| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473 | $(function() {    BWA.ChartOptions = BWA.ChartOptions || {};    var C = BWA.ChartOptions.Zone_TempHumi = BWA.ChartOptions.Zone_TempHumi || {};        var targetTempMax = ko.observableArray();    var targetTempMin = ko.observableArray();    var targetHumiMax = ko.observableArray();    var targetHumiMin = ko.observableArray();    /*    var valueAxis =         {            name: 'temp', //             position: 'left',            pane: 'topPane',            type: 'continuous',            valueType: 'numeric',            tickInterval: 10,            valueMarginsEnabled: true,            minValueMargin: 0,            maxValueMargin: 0,            min: -10,            max: 40,            label: {                font: { color: '#c96374' },            },            title: {                text: '온도 (°C)',            },        };        */    var valueAxises = [        {            name: 'temp', //             position: 'left',            pane: 'topPane',            type: 'continuous',            valueType: 'numeric',            tickInterval: 10,            valueMarginsEnabled: true,            minValueMargin: 0,            maxValueMargin: 0,            min: -10,            max: 40,            label: {                font: { color: '#c96374' },            },            title: {                text: '온도 (°C)',            },        },        {            tickInterval: 10,            valueMarginsEnabled: true,            minValueMargin: 0,            maxValueMargin: 0,            //argumentType: 'numeric',            min: 0,            max: 100,            label: {                font: { color: '#00A7C6' },            },            name: 'humi', //             position: 'left',            pane: 'bottomPane',            title: {                text: '습도 (%)',            }        },        {            //tickInterval: 10,            valueMarginsEnabled: true,            minValueMargin: 0,            maxValueMargin: 0,            //argumentType: 'numeric',            //min: 0,            //max: 1,            name: 'co2', //             position: 'left',            pane: 'lastPane',            title: {                text: 'CO2농도 (ppm)',            },            constantLines:            [                {                    position: 'right',                    label: {                        text: '허용농도',                    },                    width: 2,                    value: 800,                    color: 'red',                    dashStyle: 'dash'            }],        },/*        {            name: 't_temp', //             position: 'right',            pane: 'topPane',            title: {                text: '설정 실내온도 (°C)',            }        },        {            name: 't_humi', //             position: 'right',            pane: 'topPane',            title: {                text: '설정 실내습도 (%)',            }        },*/    ];var series = [    {        type: 'rangeArea',        pane: 'topPane',        axis: 'temp',        //valueField: 'tempSet',        rangeValue1Field: "tempSetminT",        rangeValue2Field: "tempSetmaxT",        visible: true, // 시리즈만 안보이게 할수 있다. 대신 그렇게 할려면 시작은 false로 해야 한다 hcLee 2015 04 25        point: { size: 0 },        name: '목표실내온도',        color: 'red',        label: {            visible: false,            customizeText: function () {                return this.valueText + ' °C';            }        }    },    {        type: 'bar',        pane: 'topPane',        axis: 'temp',        valueField: 'temp',        visible: true, // 시리즈만 안보이게 할수 있다. 대신 그렇게 할려면 시작은 false로 해야 한다 hcLee 2015 04 25        point: { size: 8 },        name: '실내온도',        //color: 'red',        label: {            visible: false,            customizeText: function() {                return this.valueText + ' °C';            }        }    },{    type: 'spline',    pane: 'topPane',    axis: 'temp',    valueField: 'Temperature',    visible: true, // 시리즈만 안보이게 할수 있다. 대신 그렇게 할려면 시작은 false로 해야 한다 hcLee 2015 04 25    point: { size: 0 },    name: '외기온도',    //color: '#c96374',    label: {        visible: false,        customizeText: function () {            return this.valueText + ' °C';        }    }},/*{    type: 'rangeArea',    pane: 'bottomPane',    axis: 'humi',    //valueField: 'humiSet',    rangeValue1Field: "humiSetminT",    rangeValue2Field: "humiSetmaxT",    point: { size: 0 },    name: '목표실내습도',    color: 'blue',    label: {        visible: false,        customizeText: function () {            return this.valueText + ' %';        }    }},*/     {        type: 'bar',        pane: 'bottomPane',        axis: 'humi',        valueField: 'humi',        point: { size: 8 },        name: '실내습도',        color: 'DeepSkyBlue',        label: {            visible: false,            customizeText: function() {                return this.valueText + ' %';            }        }     },    {        type: 'spline',        pane: 'bottomPane',        axis: 'humi',        valueField: 'Humidity',        point: { size: 0 },        name: '외기습도',        //color: '#00A7C6',        //color: 'blue',        label: {            visible: false,            customizeText: function () {                return this.valueText + ' %';            }        }    },    {        type: 'bar',        pane: 'lastPane',        axis: 'co2',        valueField: 'co2',        visible: true, // 시리즈만 안보이게 할수 있다. 대신 그렇게 할려면 시작은 false로 해야 한다 hcLee 2015 04 25        point: { size: 0},        name: 'CO2농도',        //color: 'red',        label: {            visible: false,            customizeText: function () {                return this.valueText + ' ppm';            }        }    },    ];        //C.getSeriesOptions = function(fuelTypeId, goalUpperBound) {    C.getSeriesOptions = function (codeTimeType, t_temp, t_humi) {        return {            legend: {                visible: true,                verticalAlignment: 'top',                horizontalAlignment: 'center'            },            panes: [                {                name: 'topPane',                    border: {                        visible: false,                        left: false,                        right: false,                        top: false,                        color: 'gray'                    }                },                {                    name: 'bottomPane',                    border: {                        visible: false,                        left: false,                        right: false,                        top: false,                        color: 'gray'                    }                },                {                    name: 'lastPane',                    border: {                        visible: false,                        left: false,                        right: false,                        top: false,                        color: 'gray'                    }                },            ],            customizePoint: function () {                if (this.seriesName == "목표실내온도") {                    targetTempMax[this.index] = this.value;                    targetTempMin[this.index] = this.minValue;                }                if (this.seriesName == "실내온도" && this.value > targetTempMax[this.index] ) {                    return {                        color:'red',                    }                }                if (this.seriesName == "실내온도" && this.value < targetTempMin[this.index]) {                    return {                        color: 'blue',                    }                }                /*                if (this.seriesName == "목표실내습도") {                    targetHumiMax[this.index] = this.value;                    targetHumiMin[this.index] = this.minValue;                }                if (this.seriesName == "실내습도" && this.value > targetHumiMax[this.index]) {                    return {                        color: 'red',                    }                }                if (this.seriesName == "실내습도" && this.value < targetHumiMin[this.index]) {                    return {                        color: 'blue',                    }                }*/                //if (this.seriesName == "CO2농도" && this.value > 0.2 or 0.5) {                if (this.seriesName == "CO2농도" && this.value > 800) {                    return {                        color: 'red',                    }                }            },            // series의 생성차례가 중요하다./*            customizeLabel: function () {                if (this.seriesName == "목표실내온도") {                    targetTempMax[this.index] = this.value;                    targetTempMin[this.index] = this.minValue;                }                if (this.seriesName == "실내온도" && this.value > targetTempMax[this.index] ) {                    return {                        visible: true,                        precision: 2,                        format: 'fixedPoint',                        backgroundColor: '#ff4500',                        customizeText: function () {                            return this.valueText + ' (°C)'                        }                    }                }                if (this.seriesName == "실내온도" && this.value < targetTempMin[this.index]) {                    return {                        color:'blue',                        visible: true,                        precision: 2,                        format: 'fixedPoint',                        backgroundColor: 'blue',                        customizeText: function () {                            return this.valueText + ' (°C)'                        }                    }                }                if (this.seriesName == "목표실내습도") {                    targetHumiMax[this.index] = this.value;                    targetHumiMin[this.index] = this.minValue;                }                if (this.seriesName == "실내습도" && this.value > targetHumiMax[this.index]) {                    return {                        visible: true,                        precision: 0,                        format: 'fixedPoint',                        backgroundColor: '#ff4500',                        customizeText: function () {                            return this.valueText + ' (%)'                        }                    }                }                if (this.seriesName == "실내습도" && this.value < targetHumiMin[this.index]) {                    return {                        color: 'blue',                        visible: true,                        precision: 0,                        format: 'fixedPoint',                        backgroundColor: 'blue',                        customizeText: function () {                            return this.valueText + ' (%)'                        }                    }                }            },*/            defaultPane: "topPane",            commonSeriesSettings: {                argumentField: "DateTime",                selectionStyle: {                    hatching: {                        direction: "left"                    }                }            },            argumentAxis: BWA.Chart.getTimeLineArgumentAxis(moment(), codeTimeType),            //argumentAxis: BWA.Chart.getTimeLineArgumentAxis(null, codeTimeType),            //argumentAxis: argumentAxisS[codeTimeType-1],/*            valueAxis: [$.extend({}, {            constantLines: [{                label: {                    text: '설정 온도',                },                width: 2,                value: goalUpperBound,                color: '#ff4500',                dashStyle: 'dash'            }],                showZero: true,                //})].concat(valueAxises[0]),            })].concat(valueAxises), */            valueAxis:valueAxises,            /*            valueAxis:[$.extend({}, valueAxis, {            })].concat($.extend({}, valueAxises[0], {            })),*/            series: series,            tooltip: {                enabled: true,                format: 'fixedPoint',                precision: 2,            },            crosshair: {                enabled: true,                width: 2,                horizontalLine: {                    color: 'blue',                    dashStyle: 'dash',                    visible: false                },                verticalLine: {                    color: 'red',                    dashStyle: 'dash',                    visible: true                },                label: {                    visible: true,                    backgroundColor: "#949494",                    font: {                        color: "#fff",                        size: 12,                    }                }            }        };    };});
 |