| New file |
| | |
| | | <!DOCTYPE html> |
| | | <html lang="en"> |
| | | |
| | | <head> |
| | | <meta charset="UTF-8"> |
| | | <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> |
| | | <title>è¯æ®è®¾å¤é©¾é©¶è±</title> |
| | | <link rel="stylesheet" href="../../layuiadmin/layui/css/layui.css" media="all"> |
| | | <link rel="stylesheet" href="../../layuiadmin/style/admin.css" media="all"> |
| | | <script src="../../layuiadmin/layui/layui1.js"></script> |
| | | <script src="../../layuiadmin/Scripts/json2.js"></script> |
| | | <script src="../../layuiadmin/Scripts/jquery-1.4.1.js"></script> |
| | | <script src="../../layuiadmin/PubCustom.js"></script> |
| | | <script src="../../layuiadmin/zgqCustom/zgqCustom.js"></script> |
| | | <script src="../../layuiadmin/HideButton.js"></script> |
| | | <script src="../../layuiadmin/soulTable.slim.js"></script> |
| | | <script src="../../layuiadmin/PageTitle.js"></script> |
| | | <script src="../../layuiadmin/echarts.min.js"></script> |
| | | <script src="../../layuiadmin/Scripts/webConfig.js"></script> |
| | | |
| | | <style type="text/css"> |
| | | #deviceRunningInfo { |
| | | background: #ffffff; |
| | | border-radius: 8px; |
| | | box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08); |
| | | padding: 22px 20px; |
| | | margin: 15px 0; |
| | | border: 1px solid #f0f0f0; |
| | | } |
| | | |
| | | #deviceRunningInfo .layui-form-label { |
| | | text-align: left; |
| | | font-weight: 500; |
| | | color: #555; |
| | | padding-left: 0; |
| | | width: auto; |
| | | } |
| | | |
| | | #deviceRunningInfo .layui-form-static { |
| | | border: 1px solid #e8e8e8; |
| | | border-radius: 6px; |
| | | padding: 0 12px; |
| | | line-height: 38px; |
| | | background-color: #fafbfc; |
| | | color: #333; |
| | | font-size: 14px; |
| | | transition: all 0.2s; |
| | | } |
| | | |
| | | #deviceRunningInfo .layui-form-static:hover { |
| | | background-color: #f5f7fa; |
| | | border-color: #dcdfe6; |
| | | } |
| | | |
| | | #deviceRunningInfo .layui-form-item { |
| | | margin-bottom: 18px; |
| | | } |
| | | |
| | | .zy-sub-title { |
| | | font-size: large; |
| | | padding: 20px; |
| | | font-weight: bold; |
| | | } |
| | | |
| | | #EquipRunningStatusCharts { |
| | | height: 230px; |
| | | } |
| | | </style> |
| | | </head> |
| | | |
| | | <body> |
| | | <div class="layui-fluid"> |
| | | <div class="layui-col-md12"> |
| | | <div class="layui-card" style="padding: 1px"> |
| | | <div class="layui-card-body" style="padding: 1px;"> |
| | | <form class="layui-form" action="" lay-filter="component-form-group"> |
| | | <!-- éæ©æ¥æ --> |
| | | <div class="layui-collapse"> |
| | | <div class="layui-colla-item"> |
| | | <div class="layui-form-item"> |
| | | <div class="layui-inline"> |
| | | <label class="layui-form-label">æ¥æèå´</label> |
| | | <div class="layui-inline" id="ID-laydate-range"> |
| | | <div class="layui-input-inline"> |
| | | <input type="text" autocomplete="off" id="HBeginDate" |
| | | class="layui-input" placeholder="å¼å§æ¥æ"> |
| | | </div> |
| | | <div class="layui-form-mid">-</div> |
| | | <div class="layui-input-inline"> |
| | | <input type="text" autocomplete="off" id="HEndDate" class="layui-input" |
| | | placeholder="ç»ææ¥æ"> |
| | | </div> |
| | | </div> |
| | | <button class="layui-btn layuiadmin-btn-order" type="button" lay-submit="" |
| | | lay-filter="btnSearch" id="btnSearch"> |
| | | <i class="layui-icon layui-icon-search layuiadmin-button-btn"></i> |
| | | </button> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | <!-- 设å¤è¿è¡ä¿¡æ¯ --> |
| | | |
| | | <div class="layui-form-item" id="deviceRunningInfo"> |
| | | <label class="zy-sub-title" style="padding: 0;">设å¤è¿è¡ä¿¡æ¯<label |
| | | id="deviceRunningDate"></label></label> |
| | | <div class="layui-row" style="padding-top: 20px;"> |
| | | <!-- å æ¯ 2/12 (约1/6)ï¼ç¨äºæ¾æ ç¾ --> |
| | | <div class="layui-col-xs1 layui-col-md1"> |
| | | <label class="layui-form-label" |
| | | style="text-align: left; padding-left: 0;">设å¤åç§°</label> |
| | | </div> |
| | | <!-- å æ¯ 4/12 (约1/3)ï¼ç¨äºæ¾å¼ --> |
| | | <div class="layui-col-xs4 layui-col-md4"> |
| | | <div class="layui-form-static" id="HEquipName"></div> |
| | | </div> |
| | | |
| | | <!-- å ä½ç©ºåï¼ç¨äºéå¼å·¦å³ä¸¤ç»æ°æ® --> |
| | | <div class="layui-col-xs1 layui-col-md1"> </div> |
| | | |
| | | <!-- 第äºåæ ç¾ï¼æå±åºå --> |
| | | <div class="layui-col-xs1 layui-col-md1"> |
| | | <label class="layui-form-label" |
| | | style="text-align: left; padding-left: 0;">æå±åºå</label> |
| | | </div> |
| | | <div class="layui-col-xs4 layui-col-md4"> |
| | | <div class="layui-form-static" id="HDeptName"></div> |
| | | </div> |
| | | </div> |
| | | <div class="layui-row"> |
| | | <!-- å æ¯ 2/12 (约1/6)ï¼ç¨äºæ¾æ ç¾ --> |
| | | <div class="layui-col-xs1 layui-col-md1"> |
| | | <label class="layui-form-label" |
| | | style="text-align: left; padding-left: 0;">设å¤ç¶æ</label> |
| | | </div> |
| | | <!-- å æ¯ 4/12 (约1/3)ï¼ç¨äºæ¾å¼ --> |
| | | <div class="layui-col-xs4 layui-col-md4"> |
| | | <div class="layui-form-static" id="HEquipStatus"></div> |
| | | </div> |
| | | |
| | | <!-- å ä½ç©ºåï¼ç¨äºéå¼å·¦å³ä¸¤ç»æ°æ® --> |
| | | <div class="layui-col-xs1 layui-col-md1"> </div> |
| | | |
| | | <!-- 第äºåæ ç¾ï¼æå±åºå --> |
| | | <div class="layui-col-xs1 layui-col-md1"> |
| | | <label class="layui-form-label" |
| | | style="text-align: left; padding-left: 0;">æ¥æ</label> |
| | | </div> |
| | | <div class="layui-col-xs4 layui-col-md4"> |
| | | <div class="layui-form-static" id="HDate"></div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | <!-- 设å¤è¿è¡ä¿¡æ¯(æ¶åº) echarts å®ç°--> |
| | | <div> |
| | | <label class="zy-sub-title">设å¤è¿è¡æ¶åº</label> |
| | | <div class="layui-row"> |
| | | <div class="layui-col-xs12 layui-inline"> |
| | | <div id="EquipRunningStatusCharts"></div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <!-- å®ç¯(è¦æ¥)è®°å½ maintable --> |
| | | <div> |
| | | <label class="zy-sub-title">æè¿10æ¡è¦æ¥è®°å½</label> |
| | | <table class="" id="mainTable" lay-filter="mainTable"></table> |
| | | </div> |
| | | </form> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | <script> |
| | | layui.config({ |
| | | base: '../../layuiadmin/' //éæèµæºæå¨è·¯å¾ |
| | | }).extend({ |
| | | index: 'lib/index', //主å
¥å£æ¨¡å |
| | | }).use(['index', 'form', 'table', 'element', 'laypage', 'laydate', 'tree', 'util'], function () { |
| | | //#region å
¬ç¨åé |
| | | var $ = layui.$ |
| | | , admin = layui.admin |
| | | , layer = layui.layer |
| | | , table = layui.table |
| | | , form = layui.form |
| | | , element = layui.element |
| | | , laypage = layui.laypage |
| | | , laydate = layui.laydate |
| | | , tree = layui.tree |
| | | , util = layui.util; |
| | | |
| | | //æ¥è¯¢æ¡ä»¶ |
| | | var sWhere = ""; |
| | | var option = []; |
| | | var chartsOption = {} |
| | | var params = getUrlVars() |
| | | var HEquipID = params[params[0]] |
| | | //#endregion |
| | | |
| | | //#region è¿å
¥é¡µé¢å³å è½½ |
| | | |
| | | //åå§åçé¢ |
| | | set_ClearBill(); |
| | | |
| | | //#endregion |
| | | |
| | | //#region 触åäºä»¶ï¼å
æ¬form.on(){}æ ¼å¼çææç¹å»äºä»¶ãéæ©äºä»¶ç |
| | | form.on("submit(btnSearch)", function (data) { |
| | | get_Display(); |
| | | }) |
| | | |
| | | |
| | | |
| | | //#endregion |
| | | |
| | | |
| | | // #region æ¬é¡µé¢è°ç¨çæææ¹æ³ |
| | | function set_ClearBill() { |
| | | // åå§åæ¥æéæ©å¨ |
| | | initDateSelector() |
| | | |
| | | // åå§åecharts |
| | | set_InitCharts() |
| | | |
| | | //åå§åè¡¨æ ¼ |
| | | set_InitGrid(); |
| | | |
| | | // è·åæ°æ® |
| | | get_Display(); |
| | | } |
| | | |
| | | function initDateSelector() { |
| | | // é»è®¤æ¥æä¸ºä»å¤© |
| | | var yesterdaySameTime = new Date(); |
| | | yesterdaySameTime.setDate(yesterdaySameTime.getDate() - 1); |
| | | $("#HBeginDate").val(util.toDateString(yesterdaySameTime, 'yyyy-MM-dd HH:mm:ss')) |
| | | $("#HEndDate").val(util.toDateString(new Date(), 'yyyy-MM-dd HH:mm:ss')) |
| | | // åå§åæ¥æèå´éæ© |
| | | |
| | | laydate.render({ |
| | | elem: '#ID-laydate-range', |
| | | range: ['#HBeginDate', '#HEndDate'], |
| | | type: 'datetime', |
| | | }); |
| | | } |
| | | |
| | | function set_InitCharts() { |
| | | var EquipRunningStatusCharts = echarts.init(document.getElementById("EquipRunningStatusCharts")) |
| | | get_LineChart(EquipRunningStatusCharts, []);//æçº¿ |
| | | } |
| | | |
| | | function set_InitGrid() { |
| | | option = { |
| | | elem: '#mainTable' |
| | | // , toolbar: '#toolbarDemo' |
| | | , height: 'full-50' |
| | | , page: true |
| | | , cellMinWidth: 90 |
| | | , totalRow: true |
| | | , limit: 50 |
| | | , limits: [50, 500, 5000, 20000] |
| | | , done: function (res, curr, count) { |
| | | // soulTable.render(this); |
| | | } |
| | | , cols: [[ |
| | | { type: 'checkbox', fixed: 'left', totalRowText: 'å计è¡' } |
| | | , { field: 'è¦æ¥ä»£ç ', title: 'è¦æ¥ä»£ç ' } |
| | | , { field: 'æç»æ¶é´', title: 'æç»æ¶é´' } |
| | | , { field: 'åå ', title: 'åå ' } |
| | | , { |
| | | field: 'æ¶é´', title: 'æ¶é´', templet: function (d) { |
| | | return layui.util.toDateString(d.æ¶é´, 'yyyy-MM-dd HH:mm:ss'); |
| | | } |
| | | } |
| | | ]], |
| | | data: [] |
| | | }; |
| | | |
| | | table.render(option) |
| | | } |
| | | |
| | | function get_LineChart(mychart22, chartData1) { |
| | | var baseTime = $("HBeginDate").val() |
| | | var endTime = $("HEndDate").val() |
| | | var yAxisData = [$("#HDeptName").val()] |
| | | var seriesData = chartData1.map(item => [ |
| | | item.StartTime, |
| | | item.EndTime, |
| | | item.EquipName, |
| | | item.Status |
| | | ]); |
| | | // é»è®¤çoptionç»æ |
| | | chartsOption = { |
| | | // æ é¢ |
| | | title: { |
| | | text: '设å¤è¿è¡æ¶åº', |
| | | left: 'left', |
| | | show: false |
| | | }, |
| | | // å¾ä¾ï¼å³ä¸è§çç¶ææ è¯ï¼ |
| | | legend: { |
| | | data: ['è¿è¡', '弿º', 'åæº', 'åè¦', 'å
³æº'], |
| | | right: 10, |
| | | top: 5, |
| | | show: true |
| | | }, |
| | | // æç¤ºæ¡ï¼é¼ æ æ¬æµ®æ¶æ¾ç¤ºï¼ |
| | | tooltip: { |
| | | trigger: 'axis', |
| | | formatter: function (params) { |
| | | // params æ¯ä¸ä¸ªæ°ç»ï¼è¿éåªæä¸æ¡æ°æ® |
| | | const data = params[0]; |
| | | const start = new Date(data.value[0]); |
| | | const end = new Date(data.value[1]); |
| | | // æ ¼å¼åæ¶é´æ¾ç¤º |
| | | return `${data.name}<br/>${start.toLocaleTimeString()} ~ ${end.toLocaleTimeString()}`; |
| | | } |
| | | }, |
| | | // ç½æ ¼ï¼è°æ´å¾è¡¨å
è¾¹è·ï¼ç»Yè½´åXè½´æ ç¾çåºç©ºé´ï¼ |
| | | grid: { |
| | | left: '3%', |
| | | right: '4%', |
| | | bottom: '3%', |
| | | containLabel: true |
| | | }, |
| | | // Xè½´é
ç½®ï¼æ¶é´è½´ |
| | | xAxis: { |
| | | type: 'time', // å
³é®ï¼æ¶é´ç±»åè½´ |
| | | min: baseTime, // åºå®æå°æ¶é´ï¼14:00 |
| | | max: endTime, // åºå®æå¤§æ¶é´ï¼æ¬¡æ¥12:00 |
| | | axisLabel: { |
| | | // æ ¼å¼åXè½´æ ç¾æ¾ç¤ºä¸º 14:00, 16:00 æ ¼å¼ |
| | | formatter: function (value) { |
| | | const date = new Date(value); |
| | | return `${date.getHours()}:${String(date.getMinutes()).padStart(2, '0')}`; |
| | | }, |
| | | interval: 2 * 3600 * 1000 // æ¯2å°æ¶æ¾ç¤ºä¸ä¸ªå»åº¦ï¼å¯¹åº14, 16, 18...ï¼ |
| | | }, |
| | | axisLine: { show: true }, |
| | | splitLine: { show: true } |
| | | }, |
| | | // Yè½´é
ç½®ï¼ç±»ç®è½´ |
| | | yAxis: { |
| | | type: 'category', |
| | | data: yAxisData, |
| | | axisLine: { show: false }, |
| | | axisTick: { show: false } // éèYè½´å»åº¦çº¿ |
| | | }, |
| | | // ç³»åæ°æ® |
| | | series: [ |
| | | { |
| | | name: ['è¿è¡', '弿º', 'åæº', 'åè¦', 'å
³æº'], |
| | | type: 'bar', // ä½¿ç¨æ±ç¶å¾å®ç°çç¹å¾ææ |
| | | barWidth: '80%', // æ±åé«åº¦ |
| | | // æ°æ®æ å°ï¼å°æ¶é´æ³æ°æ®å
³èå°Xè½´ |
| | | encode: { |
| | | x: [0, 1], // value ç第0项ä½ä¸ºèµ·å§ï¼ç¬¬1项ä½ä¸ºç»æ |
| | | y: 2 // value ç第2项ä½ä¸ºYè½´ç±»ç® |
| | | }, |
| | | // å
·ä½æ°æ® |
| | | data: seriesData, |
| | | // ç¶æé¢è²æ å° |
| | | itemStyle: { |
| | | color: function (params) { |
| | | // æ ¹æ®æ°æ®åç§°å¹é
é¢è² |
| | | const name = params.data[2]; |
| | | const colorMap = { |
| | | 'è¿è¡': '#67C23A', |
| | | 'è¿è¡ä¸': '#67C23A', |
| | | '弿º': '#409EFF', |
| | | 'åæº': '#E6A23C', |
| | | 'åè¦': '#F56C6C', |
| | | 'å
³æº': '#909399', |
| | | 'ç»´ä¿®ä¸': '#F56C6C', |
| | | 'ç»´æ¤ä¸': '#F56C6C' |
| | | }; |
| | | return colorMap[name] || '#ccc'; |
| | | } |
| | | }, |
| | | // æ±åä¸ä¸æ¾ç¤ºæåæ ç¾ |
| | | label: { show: false } |
| | | } |
| | | ] |
| | | }; |
| | | |
| | | |
| | | // å¦æææ°æ®ï¼æ´æ°optionçå
容 |
| | | if (chartData1 && chartData1.length > 0) { |
| | | |
| | | } else { |
| | | // æ²¡ææ°æ®æ¶ï¼æ¾ç¤º"ææ æ°æ®"æç¤º |
| | | chartsOption.title.text = 'ææ æ°æ®'; |
| | | } |
| | | |
| | | // æ´æ°å¾è¡¨ |
| | | mychart22.setOption(chartsOption); |
| | | } |
| | | |
| | | |
| | | function get_Display() { |
| | | var HBeginDate = $("#HBeginDate").val() |
| | | var HEndDate = $("#HEndDate").val() |
| | | sWhere = get_sWhere() |
| | | var sWhere2 = "" |
| | | |
| | | if (HBeginDate && HEndDate) { |
| | | sWhere2 += " and StartTime BETWEEN CAST('" + HBeginDate + "' AS DATETIME)" + |
| | | " AND DATEADD(MILLISECOND, -3, DATEADD(DAY, 1, CAST('" + HEndDate + "' AS DATETIME))) " |
| | | } |
| | | // è·åè®¾å¤æ¡£æ¡ |
| | | $.ajax({ |
| | | url: GetWEBURL() + '/Gy_EquipFileMain/GetList', |
| | | type: "GET", |
| | | data: { "user": sessionStorage["HUserName"], sWhere: " and hmainid = " + HEquipID }, |
| | | dataType: "json",//æ°æ®ç±»åå¯ä»¥ä¸º text xml json script jsonp |
| | | success: function (data) { |
| | | if (data.count == 1) { |
| | | $("#HEquipName").text(data.data[0]["设å¤åç§°"]) |
| | | $("#HDeptName").text(data.data[0]["使ç¨é¨é¨"]) |
| | | $("#HEquipStatus").text(data.data[0]["å½åç¶æ"]) |
| | | $("#HDate").text(util.toDateString(new Date(), 'MMæddæ¥')) |
| | | } |
| | | else { |
| | | layer.alert(data.Message, { time: 1 * 2000, icon: 5 }); |
| | | return false; |
| | | } |
| | | }, |
| | | error: function (err) { |
| | | layer.alert(err.Message, { time: 1 * 2000, icon: 5 }); |
| | | return false; |
| | | } |
| | | }); |
| | | |
| | | // è·å设å¤è¿è¡æ¶åºä¿¡æ¯ |
| | | $.ajax({ |
| | | url: GetWEBURL() + '/SB_EquipRunningStatus/ReportByID', |
| | | type: "GET", |
| | | data: { "HEquipID": HEquipID, "sWhere": sWhere2, "user": sessionStorage["HUserName"] }, |
| | | dataType: "json",//æ°æ®ç±»åå¯ä»¥ä¸º text xml json script jsonp |
| | | success: function (data) { |
| | | console.log(data) |
| | | |
| | | if (data.count == 1) { |
| | | var EquipRunningStatusCharts = echarts.init(document.getElementById("EquipRunningStatusCharts")) |
| | | get_LineChart(EquipRunningStatusCharts, data.data);//æçº¿ |
| | | } else { |
| | | layer.alert(data.Message, { time: 1 * 2000, icon: 5 }); |
| | | return false; |
| | | } |
| | | |
| | | }, |
| | | error: function (err) { |
| | | layer.alert(err.Message, { time: 1 * 2000, icon: 5 }); |
| | | return false; |
| | | } |
| | | }); |
| | | |
| | | // è·åæè¿10æ¡å®ç¯(è¦æ¥è®°å½) |
| | | $.ajax({ |
| | | url: GetWEBURL() + '/Sc_MESTransFerWorkBill/Get_TransFerBillListByHEquipID', |
| | | type: "GET", |
| | | data: { "HEquipID": HEquipID, sWhere: sWhere }, |
| | | dataType: "json",//æ°æ®ç±»åå¯ä»¥ä¸º text xml json script jsonp |
| | | success: function (data) { |
| | | |
| | | var LoadData1 = data.data.OA_ErrMsgBackBillMain; |
| | | if (data.code == 1) //å·¥ååè¡¨æ°æ® |
| | | { |
| | | option.data = LoadData1; |
| | | table.render(option) |
| | | } else { |
| | | layer.alert(data.msg, { time: 1 * 2000, icon: 5 }); |
| | | return false; |
| | | } |
| | | }, |
| | | error: function (err) { |
| | | layer.alert(err.Message, { time: 1 * 2000, icon: 5 }); |
| | | return false; |
| | | } |
| | | }); |
| | | } |
| | | |
| | | function get_sWhere() { |
| | | var sWhereStr = "" |
| | | var HBeginDate = $("#HBeginDate").val() |
| | | var HEndDate = $("#HEndDate").val() |
| | | |
| | | if (HBeginDate && HEndDate) { |
| | | sWhereStr += " and a.HDate BETWEEN CAST('" + HBeginDate + "' AS DATETIME)" + |
| | | " AND DATEADD(MILLISECOND, -3, DATEADD(DAY, 1, CAST('" + HEndDate + "' AS DATETIME))) " |
| | | } |
| | | return sWhereStr |
| | | } |
| | | |
| | | // #endregion |
| | | |
| | | function getUrlVars() { |
| | | var vars = [], hash; |
| | | var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&'); |
| | | for (var i = 0; i < hashes.length; i++) { |
| | | hash = hashes[i].split('='); |
| | | vars.push(hash[0]); |
| | | vars[hash[0]] = hash[1]; |
| | | } |
| | | return vars; |
| | | } |
| | | //#endregion |
| | | |
| | | }) |
| | | </script> |
| | | </body> |
| | | |
| | | |
| | | |
| | | </html> |