From 9b8b6507b958a4442caa2cfe6a98944b90490040 Mon Sep 17 00:00:00 2001
From: duhe <226547893@qq.com>
Date: 星期一, 28 八月 2023 13:55:00 +0800
Subject: [PATCH] 1
---
WebTM/views/车间管理/工序流转/MES_StationOutBill_PDA.html | 53
WebTM/views/车间管理/工序出站汇报单/Cj_StationOutBillSubList.html | 961 +++++++++++
WebTM/views/车间管理/工序出站汇报单/Cj_StationOutBill.html | 62
WebTM/views/车间管理/工序流转/MES_StationOutBill_PDA_QiaoYi.html | 112 +
WebTM/layuiadmin/lineBreakTransformer.js | 21
WebTM/views/车间管理/工序流转卡/Sc_ProcessExchangeBillList.html | 28
WebTM/views/车间管理/工序流转卡/Sc_ProcessExchangeBill.html | 101
WebTM/views/index_Mobile.html | 156 +
WebTM/views/index_Mobile_QiaoYi.html | 156 +
WebTM/views/车间管理/工序流转卡/Sc_ProcessExchangeBillSubList.html | 2126 ++++++++++++++++++++++++++
WebTM/layuiadmin/ckou.js | 9
WebTM/views/车间管理/工序流转/MES_StationInBill_PDA_QiaoYi.html | 13
WebTM/views/index.html | 11
WebTM/views/车间管理/工序进站接收单/Cj_StationInBillSubList.html | 931 +++++++++++
WebTM/layuiadmin/serial-reader.js | 68
WebTM/views/车间管理/工序出站汇报单/Cj_StationOutBillList.html | 1
WebTM/views/车间管理/工序进站接收单/Cj_StationInBillList.html | 1
WebTM/views/生产管理/生产计划平台/Sc_ShopCalendar.html | 4
WebTM/views/车间管理/工序流转/MES_StationInBill_PDA.html | 15
WebTM/WebTM.csproj | 6
20 files changed, 4,625 insertions(+), 210 deletions(-)
diff --git a/WebTM/WebTM.csproj b/WebTM/WebTM.csproj
index 32675a5..b36449c 100644
--- a/WebTM/WebTM.csproj
+++ b/WebTM/WebTM.csproj
@@ -72,6 +72,7 @@
<Content Include="layuiadmin\ax\images\login-left.jpg" />
<Content Include="layuiadmin\ax\images\yanzhengma.jpg" />
<Content Include="layuiadmin\ax\main.css" />
+ <Content Include="layuiadmin\ckou.js" />
<Content Include="layuiadmin\echarts.min.js" />
<Content Include="layuiadmin\grwebapp.js" />
<Content Include="layuiadmin\HideButton.js" />
@@ -94,6 +95,7 @@
<Content Include="layuiadmin\layui\layui1.js" />
<Content Include="layuiadmin\layui\zgqlayui.js" />
<Content Include="layuiadmin\lib\extend\echarts.min.js" />
+ <Content Include="layuiadmin\lineBreakTransformer.js" />
<Content Include="layuiadmin\modules\excel.js" />
<Content Include="layuiadmin\modules\soulTable.js" />
<Content Include="layuiadmin\modules\tableChild.js" />
@@ -107,6 +109,7 @@
<Content Include="layuiadmin\myicon\鎴戠殑璁剧疆.svg" />
<Content Include="layuiadmin\myicon\绯荤粺璁剧疆.svg" />
<Content Include="layuiadmin\myicon\杞﹂棿绠$悊.svg" />
+ <Content Include="layuiadmin\serial-reader.js" />
<Content Include="layuiadmin\soulTable.slim.js" />
<Content Include="layuiadmin\treeTable.js" />
<Content Include="layuiadmin\PubCustom.js" />
@@ -270,11 +273,14 @@
<Content Include="views\璁″垝绠$悊\宸ヨ壓璺嚎\Gy_RoutingBillSubList.html" />
<Content Include="views\杞﹂棿绠$悊\浜х嚎缁勮杩芥函\Cj_AssemblyTraceability.html" />
<Content Include="views\杞﹂棿绠$悊\浜х嚎缁勮杩芥函\Cj_AssemblyTraceabilityList.html" />
+ <Content Include="views\杞﹂棿绠$悊\宸ュ簭鍑虹珯姹囨姤鍗昞Cj_StationOutBillSubList.html" />
<Content Include="views\杞﹂棿绠$悊\宸ュ簭娴佽浆鍗Sc_ProcessExchangeBillQuery_Mobile.html" />
+ <Content Include="views\杞﹂棿绠$悊\宸ュ簭娴佽浆鍗Sc_ProcessExchangeBillSubList.html" />
<Content Include="views\杞﹂棿绠$悊\宸ュ簭娴佽浆鍗Sc_ProcessExchangeBill_Change.html" />
<Content Include="views\杞﹂棿绠$悊\宸ュ簭娴佽浆鍗Sc_ProcessExchangeBill_Copy_PL.html" />
<Content Include="views\杞﹂棿绠$悊\宸ュ簭娴佽浆鍗WW_EntrustWorkOrderBillEdit.html" />
<Content Include="views\杞﹂棿绠$悊\宸ュ簭娴佽浆鍗WW_EntrustWorkOrderBillList.html" />
+ <Content Include="views\杞﹂棿绠$悊\宸ュ簭杩涚珯鎺ユ敹鍗昞Cj_StationInBillSubList.html" />
<Content Include="views\杞﹂棿绠$悊\鎶ヨ〃鍒嗘瀽\Kf_ProdProcessEntryReport_DyeColor.html" />
<Content Include="views\杞﹂棿绠$悊\鎶ヨ〃鍒嗘瀽\Kf_ProdProcessSumReport_DyeColor.html" />
<Content Include="views\杞﹂棿绠$悊\鎶ヨ〃鍒嗘瀽\Kf_ProdProcessSumReport_DyeColor_third.html" />
diff --git a/WebTM/layuiadmin/ckou.js b/WebTM/layuiadmin/ckou.js
new file mode 100644
index 0000000..d237f1e
--- /dev/null
+++ b/WebTM/layuiadmin/ckou.js
@@ -0,0 +1,9 @@
+锘�
+//涓插彛js
+/*!
+ * Chart.js v2.8.0
+ * https://www.chartjs.org
+ * (c) 2019 Chart.js Contributors
+ * Released under the MIT License
+ */
+!function (t, e) { "object" == typeof exports && "undefined" != typeof module ? module.exports = e(function () { try { return require("moment") } catch (t) { } }()) : "function" == typeof define && define.amd ? define(["require"], function (t) { return e(function () { try { return t("moment") } catch (t) { } }()) }) : t.Chart = e(t.moment) }(this, function (t) { "use strict"; t = t && t.hasOwnProperty("default") ? t.default : t; var e = { rgb2hsl: i, rgb2hsv: n, rgb2hwb: a, rgb2cmyk: o, rgb2keyword: s, rgb2xyz: l, rgb2lab: d, rgb2lch: function (t) { return x(d(t)) }, hsl2rgb: u, hsl2hsv: function (t) { var e = t[0], i = t[1] / 100, n = t[2] / 100; if (0 === n) return [0, 0, 0]; return [e, 100 * (2 * (i *= (n *= 2) <= 1 ? n : 2 - n) / (n + i)), 100 * ((n + i) / 2)] }, hsl2hwb: function (t) { return a(u(t)) }, hsl2cmyk: function (t) { return o(u(t)) }, hsl2keyword: function (t) { return s(u(t)) }, hsv2rgb: h, hsv2hsl: function (t) { var e, i, n = t[0], a = t[1] / 100, o = t[2] / 100; return e = a * o, [n, 100 * (e = (e /= (i = (2 - a) * o) <= 1 ? i : 2 - i) || 0), 100 * (i /= 2)] }, hsv2hwb: function (t) { return a(h(t)) }, hsv2cmyk: function (t) { return o(h(t)) }, hsv2keyword: function (t) { return s(h(t)) }, hwb2rgb: c, hwb2hsl: function (t) { return i(c(t)) }, hwb2hsv: function (t) { return n(c(t)) }, hwb2cmyk: function (t) { return o(c(t)) }, hwb2keyword: function (t) { return s(c(t)) }, cmyk2rgb: f, cmyk2hsl: function (t) { return i(f(t)) }, cmyk2hsv: function (t) { return n(f(t)) }, cmyk2hwb: function (t) { return a(f(t)) }, cmyk2keyword: function (t) { return s(f(t)) }, keyword2rgb: w, keyword2hsl: function (t) { return i(w(t)) }, keyword2hsv: function (t) { return n(w(t)) }, keyword2hwb: function (t) { return a(w(t)) }, keyword2cmyk: function (t) { return o(w(t)) }, keyword2lab: function (t) { return d(w(t)) }, keyword2xyz: function (t) { return l(w(t)) }, xyz2rgb: p, xyz2lab: m, xyz2lch: function (t) { return x(m(t)) }, lab2xyz: v, lab2rgb: y, lab2lch: x, lch2lab: k, lch2xyz: function (t) { return v(k(t)) }, lch2rgb: function (t) { return y(k(t)) } }; function i(t) { var e, i, n = t[0] / 255, a = t[1] / 255, o = t[2] / 255, r = Math.min(n, a, o), s = Math.max(n, a, o), l = s - r; return s == r ? e = 0 : n == s ? e = (a - o) / l : a == s ? e = 2 + (o - n) / l : o == s && (e = 4 + (n - a) / l), (e = Math.min(60 * e, 360)) < 0 && (e += 360), i = (r + s) / 2, [e, 100 * (s == r ? 0 : i <= .5 ? l / (s + r) : l / (2 - s - r)), 100 * i] } function n(t) { var e, i, n = t[0], a = t[1], o = t[2], r = Math.min(n, a, o), s = Math.max(n, a, o), l = s - r; return i = 0 == s ? 0 : l / s * 1e3 / 10, s == r ? e = 0 : n == s ? e = (a - o) / l : a == s ? e = 2 + (o - n) / l : o == s && (e = 4 + (n - a) / l), (e = Math.min(60 * e, 360)) < 0 && (e += 360), [e, i, s / 255 * 1e3 / 10] } function a(t) { var e = t[0], n = t[1], a = t[2]; return [i(t)[0], 100 * (1 / 255 * Math.min(e, Math.min(n, a))), 100 * (a = 1 - 1 / 255 * Math.max(e, Math.max(n, a)))] } function o(t) { var e, i = t[0] / 255, n = t[1] / 255, a = t[2] / 255; return [100 * ((1 - i - (e = Math.min(1 - i, 1 - n, 1 - a))) / (1 - e) || 0), 100 * ((1 - n - e) / (1 - e) || 0), 100 * ((1 - a - e) / (1 - e) || 0), 100 * e] } function s(t) { return _[JSON.stringify(t)] } function l(t) { var e = t[0] / 255, i = t[1] / 255, n = t[2] / 255; return [100 * (.4124 * (e = e > .04045 ? Math.pow((e + .055) / 1.055, 2.4) : e / 12.92) + .3576 * (i = i > .04045 ? Math.pow((i + .055) / 1.055, 2.4) : i / 12.92) + .1805 * (n = n > .04045 ? Math.pow((n + .055) / 1.055, 2.4) : n / 12.92)), 100 * (.2126 * e + .7152 * i + .0722 * n), 100 * (.0193 * e + .1192 * i + .9505 * n)] } function d(t) { var e = l(t), i = e[0], n = e[1], a = e[2]; return n /= 100, a /= 108.883, i = (i /= 95.047) > .008856 ? Math.pow(i, 1 / 3) : 7.787 * i + 16 / 116, [116 * (n = n > .008856 ? Math.pow(n, 1 / 3) : 7.787 * n + 16 / 116) - 16, 500 * (i - n), 200 * (n - (a = a > .008856 ? Math.pow(a, 1 / 3) : 7.787 * a + 16 / 116))] } function u(t) { var e, i, n, a, o, r = t[0] / 360, s = t[1] / 100, l = t[2] / 100; if (0 == s) return [o = 255 * l, o, o]; e = 2 * l - (i = l < .5 ? l * (1 + s) : l + s - l * s), a = [0, 0, 0]; for (var d = 0; d < 3; d++)(n = r + 1 / 3 * -(d - 1)) < 0 && n++, n > 1 && n--, o = 6 * n < 1 ? e + 6 * (i - e) * n : 2 * n < 1 ? i : 3 * n < 2 ? e + (i - e) * (2 / 3 - n) * 6 : e, a[d] = 255 * o; return a } function h(t) { var e = t[0] / 60, i = t[1] / 100, n = t[2] / 100, a = Math.floor(e) % 6, o = e - Math.floor(e), r = 255 * n * (1 - i), s = 255 * n * (1 - i * o), l = 255 * n * (1 - i * (1 - o)); n *= 255; switch (a) { case 0: return [n, l, r]; case 1: return [s, n, r]; case 2: return [r, n, l]; case 3: return [r, s, n]; case 4: return [l, r, n]; case 5: return [n, r, s] } } function c(t) { var e, i, n, a, o = t[0] / 360, s = t[1] / 100, l = t[2] / 100, d = s + l; switch (d > 1 && (s /= d, l /= d), n = 6 * o - (e = Math.floor(6 * o)), 0 != (1 & e) && (n = 1 - n), a = s + n * ((i = 1 - l) - s), e) { default: case 6: case 0: r = i, g = a, b = s; break; case 1: r = a, g = i, b = s; break; case 2: r = s, g = i, b = a; break; case 3: r = s, g = a, b = i; break; case 4: r = a, g = s, b = i; break; case 5: r = i, g = s, b = a }return [255 * r, 255 * g, 255 * b] } function f(t) { var e = t[0] / 100, i = t[1] / 100, n = t[2] / 100, a = t[3] / 100; return [255 * (1 - Math.min(1, e * (1 - a) + a)), 255 * (1 - Math.min(1, i * (1 - a) + a)), 255 * (1 - Math.min(1, n * (1 - a) + a))] } function p(t) { var e, i, n, a = t[0] / 100, o = t[1] / 100, r = t[2] / 100; return i = -.9689 * a + 1.8758 * o + .0415 * r, n = .0557 * a + -.204 * o + 1.057 * r, e = (e = 3.2406 * a + -1.5372 * o + -.4986 * r) > .0031308 ? 1.055 * Math.pow(e, 1 / 2.4) - .055 : e *= 12.92, i = i > .0031308 ? 1.055 * Math.pow(i, 1 / 2.4) - .055 : i *= 12.92, n = n > .0031308 ? 1.055 * Math.pow(n, 1 / 2.4) - .055 : n *= 12.92, [255 * (e = Math.min(Math.max(0, e), 1)), 255 * (i = Math.min(Math.max(0, i), 1)), 255 * (n = Math.min(Math.max(0, n), 1))] } function m(t) { var e = t[0], i = t[1], n = t[2]; return i /= 100, n /= 108.883, e = (e /= 95.047) > .008856 ? Math.pow(e, 1 / 3) : 7.787 * e + 16 / 116, [116 * (i = i > .008856 ? Math.pow(i, 1 / 3) : 7.787 * i + 16 / 116) - 16, 500 * (e - i), 200 * (i - (n = n > .008856 ? Math.pow(n, 1 / 3) : 7.787 * n + 16 / 116))] } function v(t) { var e, i, n, a, o = t[0], r = t[1], s = t[2]; return o <= 8 ? a = (i = 100 * o / 903.3) / 100 * 7.787 + 16 / 116 : (i = 100 * Math.pow((o + 16) / 116, 3), a = Math.pow(i / 100, 1 / 3)), [e = e / 95.047 <= .008856 ? e = 95.047 * (r / 500 + a - 16 / 116) / 7.787 : 95.047 * Math.pow(r / 500 + a, 3), i, n = n / 108.883 <= .008859 ? n = 108.883 * (a - s / 200 - 16 / 116) / 7.787 : 108.883 * Math.pow(a - s / 200, 3)] } function x(t) { var e, i = t[0], n = t[1], a = t[2]; return (e = 360 * Math.atan2(a, n) / 2 / Math.PI) < 0 && (e += 360), [i, Math.sqrt(n * n + a * a), e] } function y(t) { return p(v(t)) } function k(t) { var e, i = t[0], n = t[1]; return e = t[2] / 360 * 2 * Math.PI, [i, n * Math.cos(e), n * Math.sin(e)] } function w(t) { return M[t] } var M = { aliceblue: [240, 248, 255], antiquewhite: [250, 235, 215], aqua: [0, 255, 255], aquamarine: [127, 255, 212], azure: [240, 255, 255], beige: [245, 245, 220], bisque: [255, 228, 196], black: [0, 0, 0], blanchedalmond: [255, 235, 205], blue: [0, 0, 255], blueviolet: [138, 43, 226], brown: [165, 42, 42], burlywood: [222, 184, 135], cadetblue: [95, 158, 160], chartreuse: [127, 255, 0], chocolate: [210, 105, 30], coral: [255, 127, 80], cornflowerblue: [100, 149, 237], cornsilk: [255, 248, 220], crimson: [220, 20, 60], cyan: [0, 255, 255], darkblue: [0, 0, 139], darkcyan: [0, 139, 139], darkgoldenrod: [184, 134, 11], darkgray: [169, 169, 169], darkgreen: [0, 100, 0], darkgrey: [169, 169, 169], darkkhaki: [189, 183, 107], darkmagenta: [139, 0, 139], darkolivegreen: [85, 107, 47], darkorange: [255, 140, 0], darkorchid: [153, 50, 204], darkred: [139, 0, 0], darksalmon: [233, 150, 122], darkseagreen: [143, 188, 143], darkslateblue: [72, 61, 139], darkslategray: [47, 79, 79], darkslategrey: [47, 79, 79], darkturquoise: [0, 206, 209], darkviolet: [148, 0, 211], deeppink: [255, 20, 147], deepskyblue: [0, 191, 255], dimgray: [105, 105, 105], dimgrey: [105, 105, 105], dodgerblue: [30, 144, 255], firebrick: [178, 34, 34], floralwhite: [255, 250, 240], forestgreen: [34, 139, 34], fuchsia: [255, 0, 255], gainsboro: [220, 220, 220], ghostwhite: [248, 248, 255], gold: [255, 215, 0], goldenrod: [218, 165, 32], gray: [128, 128, 128], green: [0, 128, 0], greenyellow: [173, 255, 47], grey: [128, 128, 128], honeydew: [240, 255, 240], hotpink: [255, 105, 180], indianred: [205, 92, 92], indigo: [75, 0, 130], ivory: [255, 255, 240], khaki: [240, 230, 140], lavender: [230, 230, 250], lavenderblush: [255, 240, 245], lawngreen: [124, 252, 0], lemonchiffon: [255, 250, 205], lightblue: [173, 216, 230], lightcoral: [240, 128, 128], lightcyan: [224, 255, 255], lightgoldenrodyellow: [250, 250, 210], lightgray: [211, 211, 211], lightgreen: [144, 238, 144], lightgrey: [211, 211, 211], lightpink: [255, 182, 193], lightsalmon: [255, 160, 122], lightseagreen: [32, 178, 170], lightskyblue: [135, 206, 250], lightslategray: [119, 136, 153], lightslategrey: [119, 136, 153], lightsteelblue: [176, 196, 222], lightyellow: [255, 255, 224], lime: [0, 255, 0], limegreen: [50, 205, 50], linen: [250, 240, 230], magenta: [255, 0, 255], maroon: [128, 0, 0], mediumaquamarine: [102, 205, 170], mediumblue: [0, 0, 205], mediumorchid: [186, 85, 211], mediumpurple: [147, 112, 219], mediumseagreen: [60, 179, 113], mediumslateblue: [123, 104, 238], mediumspringgreen: [0, 250, 154], mediumturquoise: [72, 209, 204], mediumvioletred: [199, 21, 133], midnightblue: [25, 25, 112], mintcream: [245, 255, 250], mistyrose: [255, 228, 225], moccasin: [255, 228, 181], navajowhite: [255, 222, 173], navy: [0, 0, 128], oldlace: [253, 245, 230], olive: [128, 128, 0], olivedrab: [107, 142, 35], orange: [255, 165, 0], orangered: [255, 69, 0], orchid: [218, 112, 214], palegoldenrod: [238, 232, 170], palegreen: [152, 251, 152], paleturquoise: [175, 238, 238], palevioletred: [219, 112, 147], papayawhip: [255, 239, 213], peachpuff: [255, 218, 185], peru: [205, 133, 63], pink: [255, 192, 203], plum: [221, 160, 221], powderblue: [176, 224, 230], purple: [128, 0, 128], rebeccapurple: [102, 51, 153], red: [255, 0, 0], rosybrown: [188, 143, 143], royalblue: [65, 105, 225], saddlebrown: [139, 69, 19], salmon: [250, 128, 114], sandybrown: [244, 164, 96], seagreen: [46, 139, 87], seashell: [255, 245, 238], sienna: [160, 82, 45], silver: [192, 192, 192], skyblue: [135, 206, 235], slateblue: [106, 90, 205], slategray: [112, 128, 144], slategrey: [112, 128, 144], snow: [255, 250, 250], springgreen: [0, 255, 127], steelblue: [70, 130, 180], tan: [210, 180, 140], teal: [0, 128, 128], thistle: [216, 191, 216], tomato: [255, 99, 71], turquoise: [64, 224, 208], violet: [238, 130, 238], wheat: [245, 222, 179], white: [255, 255, 255], whitesmoke: [245, 245, 245], yellow: [255, 255, 0], yellowgreen: [154, 205, 50] }, _ = {}; for (var C in M) _[JSON.stringify(M[C])] = C; var S = function () { return new T }; for (var P in e) { S[P + "Raw"] = function (t) { return function (i) { return "number" == typeof i && (i = Array.prototype.slice.call(arguments)), e[t](i) } }(P); var I = /(\w+)2(\w+)/.exec(P), A = I[1], D = I[2]; (S[A] = S[A] || {})[D] = S[P] = function (t) { return function (i) { "number" == typeof i && (i = Array.prototype.slice.call(arguments)); var n = e[t](i); if ("string" == typeof n || void 0 === n) return n; for (var a = 0; a < n.length; a++)n[a] = Math.round(n[a]); return n } }(P) } var T = function () { this.convs = {} }; T.prototype.routeSpace = function (t, e) { var i = e[0]; return void 0 === i ? this.getValues(t) : ("number" == typeof i && (i = Array.prototype.slice.call(e)), this.setValues(t, i)) }, T.prototype.setValues = function (t, e) { return this.space = t, this.convs = {}, this.convs[t] = e, this }, T.prototype.getValues = function (t) { var e = this.convs[t]; if (!e) { var i = this.space, n = this.convs[i]; e = S[i][t](n), this.convs[t] = e } return e }, ["rgb", "hsl", "hsv", "cmyk", "keyword"].forEach(function (t) { T.prototype[t] = function (e) { return this.routeSpace(t, arguments) } }); var F = S, L = { aliceblue: [240, 248, 255], antiquewhite: [250, 235, 215], aqua: [0, 255, 255], aquamarine: [127, 255, 212], azure: [240, 255, 255], beige: [245, 245, 220], bisque: [255, 228, 196], black: [0, 0, 0], blanchedalmond: [255, 235, 205], blue: [0, 0, 255], blueviolet: [138, 43, 226], brown: [165, 42, 42], burlywood: [222, 184, 135], cadetblue: [95, 158, 160], chartreuse: [127, 255, 0], chocolate: [210, 105, 30], coral: [255, 127, 80], cornflowerblue: [100, 149, 237], cornsilk: [255, 248, 220], crimson: [220, 20, 60], cyan: [0, 255, 255], darkblue: [0, 0, 139], darkcyan: [0, 139, 139], darkgoldenrod: [184, 134, 11], darkgray: [169, 169, 169], darkgreen: [0, 100, 0], darkgrey: [169, 169, 169], darkkhaki: [189, 183, 107], darkmagenta: [139, 0, 139], darkolivegreen: [85, 107, 47], darkorange: [255, 140, 0], darkorchid: [153, 50, 204], darkred: [139, 0, 0], darksalmon: [233, 150, 122], darkseagreen: [143, 188, 143], darkslateblue: [72, 61, 139], darkslategray: [47, 79, 79], darkslategrey: [47, 79, 79], darkturquoise: [0, 206, 209], darkviolet: [148, 0, 211], deeppink: [255, 20, 147], deepskyblue: [0, 191, 255], dimgray: [105, 105, 105], dimgrey: [105, 105, 105], dodgerblue: [30, 144, 255], firebrick: [178, 34, 34], floralwhite: [255, 250, 240], forestgreen: [34, 139, 34], fuchsia: [255, 0, 255], gainsboro: [220, 220, 220], ghostwhite: [248, 248, 255], gold: [255, 215, 0], goldenrod: [218, 165, 32], gray: [128, 128, 128], green: [0, 128, 0], greenyellow: [173, 255, 47], grey: [128, 128, 128], honeydew: [240, 255, 240], hotpink: [255, 105, 180], indianred: [205, 92, 92], indigo: [75, 0, 130], ivory: [255, 255, 240], khaki: [240, 230, 140], lavender: [230, 230, 250], lavenderblush: [255, 240, 245], lawngreen: [124, 252, 0], lemonchiffon: [255, 250, 205], lightblue: [173, 216, 230], lightcoral: [240, 128, 128], lightcyan: [224, 255, 255], lightgoldenrodyellow: [250, 250, 210], lightgray: [211, 211, 211], lightgreen: [144, 238, 144], lightgrey: [211, 211, 211], lightpink: [255, 182, 193], lightsalmon: [255, 160, 122], lightseagreen: [32, 178, 170], lightskyblue: [135, 206, 250], lightslategray: [119, 136, 153], lightslategrey: [119, 136, 153], lightsteelblue: [176, 196, 222], lightyellow: [255, 255, 224], lime: [0, 255, 0], limegreen: [50, 205, 50], linen: [250, 240, 230], magenta: [255, 0, 255], maroon: [128, 0, 0], mediumaquamarine: [102, 205, 170], mediumblue: [0, 0, 205], mediumorchid: [186, 85, 211], mediumpurple: [147, 112, 219], mediumseagreen: [60, 179, 113], mediumslateblue: [123, 104, 238], mediumspringgreen: [0, 250, 154], mediumturquoise: [72, 209, 204], mediumvioletred: [199, 21, 133], midnightblue: [25, 25, 112], mintcream: [245, 255, 250], mistyrose: [255, 228, 225], moccasin: [255, 228, 181], navajowhite: [255, 222, 173], navy: [0, 0, 128], oldlace: [253, 245, 230], olive: [128, 128, 0], olivedrab: [107, 142, 35], orange: [255, 165, 0], orangered: [255, 69, 0], orchid: [218, 112, 214], palegoldenrod: [238, 232, 170], palegreen: [152, 251, 152], paleturquoise: [175, 238, 238], palevioletred: [219, 112, 147], papayawhip: [255, 239, 213], peachpuff: [255, 218, 185], peru: [205, 133, 63], pink: [255, 192, 203], plum: [221, 160, 221], powderblue: [176, 224, 230], purple: [128, 0, 128], rebeccapurple: [102, 51, 153], red: [255, 0, 0], rosybrown: [188, 143, 143], royalblue: [65, 105, 225], saddlebrown: [139, 69, 19], salmon: [250, 128, 114], sandybrown: [244, 164, 96], seagreen: [46, 139, 87], seashell: [255, 245, 238], sienna: [160, 82, 45], silver: [192, 192, 192], skyblue: [135, 206, 235], slateblue: [106, 90, 205], slategray: [112, 128, 144], slategrey: [112, 128, 144], snow: [255, 250, 250], springgreen: [0, 255, 127], steelblue: [70, 130, 180], tan: [210, 180, 140], teal: [0, 128, 128], thistle: [216, 191, 216], tomato: [255, 99, 71], turquoise: [64, 224, 208], violet: [238, 130, 238], wheat: [245, 222, 179], white: [255, 255, 255], whitesmoke: [245, 245, 245], yellow: [255, 255, 0], yellowgreen: [154, 205, 50] }, R = { getRgba: O, getHsla: z, getRgb: function (t) { var e = O(t); return e && e.slice(0, 3) }, getHsl: function (t) { var e = z(t); return e && e.slice(0, 3) }, getHwb: B, getAlpha: function (t) { var e = O(t); if (e) return e[3]; if (e = z(t)) return e[3]; if (e = B(t)) return e[3] }, hexString: function (t, e) { var e = void 0 !== e && 3 === t.length ? e : t[3]; return "#" + H(t[0]) + H(t[1]) + H(t[2]) + (e >= 0 && e < 1 ? H(Math.round(255 * e)) : "") }, rgbString: function (t, e) { if (e < 1 || t[3] && t[3] < 1) return N(t, e); return "rgb(" + t[0] + ", " + t[1] + ", " + t[2] + ")" }, rgbaString: N, percentString: function (t, e) { if (e < 1 || t[3] && t[3] < 1) return W(t, e); var i = Math.round(t[0] / 255 * 100), n = Math.round(t[1] / 255 * 100), a = Math.round(t[2] / 255 * 100); return "rgb(" + i + "%, " + n + "%, " + a + "%)" }, percentaString: W, hslString: function (t, e) { if (e < 1 || t[3] && t[3] < 1) return V(t, e); return "hsl(" + t[0] + ", " + t[1] + "%, " + t[2] + "%)" }, hslaString: V, hwbString: function (t, e) { void 0 === e && (e = void 0 !== t[3] ? t[3] : 1); return "hwb(" + t[0] + ", " + t[1] + "%, " + t[2] + "%" + (void 0 !== e && 1 !== e ? ", " + e : "") + ")" }, keyword: function (t) { return j[t.slice(0, 3)] } }; function O(t) { if (t) { var e = [0, 0, 0], i = 1, n = t.match(/^#([a-fA-F0-9]{3,4})$/i), a = ""; if (n) { a = (n = n[1])[3]; for (var o = 0; o < e.length; o++)e[o] = parseInt(n[o] + n[o], 16); a && (i = Math.round(parseInt(a + a, 16) / 255 * 100) / 100) } else if (n = t.match(/^#([a-fA-F0-9]{6}([a-fA-F0-9]{2})?)$/i)) { a = n[2], n = n[1]; for (o = 0; o < e.length; o++)e[o] = parseInt(n.slice(2 * o, 2 * o + 2), 16); a && (i = Math.round(parseInt(a, 16) / 255 * 100) / 100) } else if (n = t.match(/^rgba?\(\s*([+-]?\d+)\s*,\s*([+-]?\d+)\s*,\s*([+-]?\d+)\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/i)) { for (o = 0; o < e.length; o++)e[o] = parseInt(n[o + 1]); i = parseFloat(n[4]) } else if (n = t.match(/^rgba?\(\s*([+-]?[\d\.]+)\%\s*,\s*([+-]?[\d\.]+)\%\s*,\s*([+-]?[\d\.]+)\%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/i)) { for (o = 0; o < e.length; o++)e[o] = Math.round(2.55 * parseFloat(n[o + 1])); i = parseFloat(n[4]) } else if (n = t.match(/(\w+)/)) { if ("transparent" == n[1]) return [0, 0, 0, 0]; if (!(e = L[n[1]])) return } for (o = 0; o < e.length; o++)e[o] = E(e[o], 0, 255); return i = i || 0 == i ? E(i, 0, 1) : 1, e[3] = i, e } } function z(t) { if (t) { var e = t.match(/^hsla?\(\s*([+-]?\d+)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)/); if (e) { var i = parseFloat(e[4]); return [E(parseInt(e[1]), 0, 360), E(parseFloat(e[2]), 0, 100), E(parseFloat(e[3]), 0, 100), E(isNaN(i) ? 1 : i, 0, 1)] } } } function B(t) { if (t) { var e = t.match(/^hwb\(\s*([+-]?\d+)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)/); if (e) { var i = parseFloat(e[4]); return [E(parseInt(e[1]), 0, 360), E(parseFloat(e[2]), 0, 100), E(parseFloat(e[3]), 0, 100), E(isNaN(i) ? 1 : i, 0, 1)] } } } function N(t, e) { return void 0 === e && (e = void 0 !== t[3] ? t[3] : 1), "rgba(" + t[0] + ", " + t[1] + ", " + t[2] + ", " + e + ")" } function W(t, e) { return "rgba(" + Math.round(t[0] / 255 * 100) + "%, " + Math.round(t[1] / 255 * 100) + "%, " + Math.round(t[2] / 255 * 100) + "%, " + (e || t[3] || 1) + ")" } function V(t, e) { return void 0 === e && (e = void 0 !== t[3] ? t[3] : 1), "hsla(" + t[0] + ", " + t[1] + "%, " + t[2] + "%, " + e + ")" } function E(t, e, i) { return Math.min(Math.max(e, t), i) } function H(t) { var e = t.toString(16).toUpperCase(); return e.length < 2 ? "0" + e : e } var j = {}; for (var q in L) j[L[q]] = q; var Y = function (t) { return t instanceof Y ? t : this instanceof Y ? (this.valid = !1, this.values = { rgb: [0, 0, 0], hsl: [0, 0, 0], hsv: [0, 0, 0], hwb: [0, 0, 0], cmyk: [0, 0, 0, 0], alpha: 1 }, void ("string" == typeof t ? (e = R.getRgba(t)) ? this.setValues("rgb", e) : (e = R.getHsla(t)) ? this.setValues("hsl", e) : (e = R.getHwb(t)) && this.setValues("hwb", e) : "object" == typeof t && (void 0 !== (e = t).r || void 0 !== e.red ? this.setValues("rgb", e) : void 0 !== e.l || void 0 !== e.lightness ? this.setValues("hsl", e) : void 0 !== e.v || void 0 !== e.value ? this.setValues("hsv", e) : void 0 !== e.w || void 0 !== e.whiteness ? this.setValues("hwb", e) : void 0 === e.c && void 0 === e.cyan || this.setValues("cmyk", e)))) : new Y(t); var e }; Y.prototype = { isValid: function () { return this.valid }, rgb: function () { return this.setSpace("rgb", arguments) }, hsl: function () { return this.setSpace("hsl", arguments) }, hsv: function () { return this.setSpace("hsv", arguments) }, hwb: function () { return this.setSpace("hwb", arguments) }, cmyk: function () { return this.setSpace("cmyk", arguments) }, rgbArray: function () { return this.values.rgb }, hslArray: function () { return this.values.hsl }, hsvArray: function () { return this.values.hsv }, hwbArray: function () { var t = this.values; return 1 !== t.alpha ? t.hwb.concat([t.alpha]) : t.hwb }, cmykArray: function () { return this.values.cmyk }, rgbaArray: function () { var t = this.values; return t.rgb.concat([t.alpha]) }, hslaArray: function () { var t = this.values; return t.hsl.concat([t.alpha]) }, alpha: function (t) { return void 0 === t ? this.values.alpha : (this.setValues("alpha", t), this) }, red: function (t) { return this.setChannel("rgb", 0, t) }, green: function (t) { return this.setChannel("rgb", 1, t) }, blue: function (t) { return this.setChannel("rgb", 2, t) }, hue: function (t) { return t && (t = (t %= 360) < 0 ? 360 + t : t), this.setChannel("hsl", 0, t) }, saturation: function (t) { return this.setChannel("hsl", 1, t) }, lightness: function (t) { return this.setChannel("hsl", 2, t) }, saturationv: function (t) { return this.setChannel("hsv", 1, t) }, whiteness: function (t) { return this.setChannel("hwb", 1, t) }, blackness: function (t) { return this.setChannel("hwb", 2, t) }, value: function (t) { return this.setChannel("hsv", 2, t) }, cyan: function (t) { return this.setChannel("cmyk", 0, t) }, magenta: function (t) { return this.setChannel("cmyk", 1, t) }, yellow: function (t) { return this.setChannel("cmyk", 2, t) }, black: function (t) { return this.setChannel("cmyk", 3, t) }, hexString: function () { return R.hexString(this.values.rgb) }, rgbString: function () { return R.rgbString(this.values.rgb, this.values.alpha) }, rgbaString: function () { return R.rgbaString(this.values.rgb, this.values.alpha) }, percentString: function () { return R.percentString(this.values.rgb, this.values.alpha) }, hslString: function () { return R.hslString(this.values.hsl, this.values.alpha) }, hslaString: function () { return R.hslaString(this.values.hsl, this.values.alpha) }, hwbString: function () { return R.hwbString(this.values.hwb, this.values.alpha) }, keyword: function () { return R.keyword(this.values.rgb, this.values.alpha) }, rgbNumber: function () { var t = this.values.rgb; return t[0] << 16 | t[1] << 8 | t[2] }, luminosity: function () { for (var t = this.values.rgb, e = [], i = 0; i < t.length; i++) { var n = t[i] / 255; e[i] = n <= .03928 ? n / 12.92 : Math.pow((n + .055) / 1.055, 2.4) } return .2126 * e[0] + .7152 * e[1] + .0722 * e[2] }, contrast: function (t) { var e = this.luminosity(), i = t.luminosity(); return e > i ? (e + .05) / (i + .05) : (i + .05) / (e + .05) }, level: function (t) { var e = this.contrast(t); return e >= 7.1 ? "AAA" : e >= 4.5 ? "AA" : "" }, dark: function () { var t = this.values.rgb; return (299 * t[0] + 587 * t[1] + 114 * t[2]) / 1e3 < 128 }, light: function () { return !this.dark() }, negate: function () { for (var t = [], e = 0; e < 3; e++)t[e] = 255 - this.values.rgb[e]; return this.setValues("rgb", t), this }, lighten: function (t) { var e = this.values.hsl; return e[2] += e[2] * t, this.setValues("hsl", e), this }, darken: function (t) { var e = this.values.hsl; return e[2] -= e[2] * t, this.setValues("hsl", e), this }, saturate: function (t) { var e = this.values.hsl; return e[1] += e[1] * t, this.setValues("hsl", e), this }, desaturate: function (t) { var e = this.values.hsl; return e[1] -= e[1] * t, this.setValues("hsl", e), this }, whiten: function (t) { var e = this.values.hwb; return e[1] += e[1] * t, this.setValues("hwb", e), this }, blacken: function (t) { var e = this.values.hwb; return e[2] += e[2] * t, this.setValues("hwb", e), this }, greyscale: function () { var t = this.values.rgb, e = .3 * t[0] + .59 * t[1] + .11 * t[2]; return this.setValues("rgb", [e, e, e]), this }, clearer: function (t) { var e = this.values.alpha; return this.setValues("alpha", e - e * t), this }, opaquer: function (t) { var e = this.values.alpha; return this.setValues("alpha", e + e * t), this }, rotate: function (t) { var e = this.values.hsl, i = (e[0] + t) % 360; return e[0] = i < 0 ? 360 + i : i, this.setValues("hsl", e), this }, mix: function (t, e) { var i = t, n = void 0 === e ? .5 : e, a = 2 * n - 1, o = this.alpha() - i.alpha(), r = ((a * o == -1 ? a : (a + o) / (1 + a * o)) + 1) / 2, s = 1 - r; return this.rgb(r * this.red() + s * i.red(), r * this.green() + s * i.green(), r * this.blue() + s * i.blue()).alpha(this.alpha() * n + i.alpha() * (1 - n)) }, toJSON: function () { return this.rgb() }, clone: function () { var t, e, i = new Y, n = this.values, a = i.values; for (var o in n) n.hasOwnProperty(o) && (t = n[o], "[object Array]" === (e = {}.toString.call(t)) ? a[o] = t.slice(0) : "[object Number]" === e ? a[o] = t : console.error("unexpected color value:", t)); return i } }, Y.prototype.spaces = { rgb: ["red", "green", "blue"], hsl: ["hue", "saturation", "lightness"], hsv: ["hue", "saturation", "value"], hwb: ["hue", "whiteness", "blackness"], cmyk: ["cyan", "magenta", "yellow", "black"] }, Y.prototype.maxes = { rgb: [255, 255, 255], hsl: [360, 100, 100], hsv: [360, 100, 100], hwb: [360, 100, 100], cmyk: [100, 100, 100, 100] }, Y.prototype.getValues = function (t) { for (var e = this.values, i = {}, n = 0; n < t.length; n++)i[t.charAt(n)] = e[t][n]; return 1 !== e.alpha && (i.a = e.alpha), i }, Y.prototype.setValues = function (t, e) { var i, n, a = this.values, o = this.spaces, r = this.maxes, s = 1; if (this.valid = !0, "alpha" === t) s = e; else if (e.length) a[t] = e.slice(0, t.length), s = e[t.length]; else if (void 0 !== e[t.charAt(0)]) { for (i = 0; i < t.length; i++)a[t][i] = e[t.charAt(i)]; s = e.a } else if (void 0 !== e[o[t][0]]) { var l = o[t]; for (i = 0; i < t.length; i++)a[t][i] = e[l[i]]; s = e.alpha } if (a.alpha = Math.max(0, Math.min(1, void 0 === s ? a.alpha : s)), "alpha" === t) return !1; for (i = 0; i < t.length; i++)n = Math.max(0, Math.min(r[t][i], a[t][i])), a[t][i] = Math.round(n); for (var d in o) d !== t && (a[d] = F[t][d](a[t])); return !0 }, Y.prototype.setSpace = function (t, e) { var i = e[0]; return void 0 === i ? this.getValues(t) : ("number" == typeof i && (i = Array.prototype.slice.call(e)), this.setValues(t, i), this) }, Y.prototype.setChannel = function (t, e, i) { var n = this.values[t]; return void 0 === i ? n[e] : i === n[e] ? this : (n[e] = i, this.setValues(t, n), this) }, "undefined" != typeof window && (window.Color = Y); var U, X = Y, K = { noop: function () { }, uid: (U = 0, function () { return U++ }), isNullOrUndef: function (t) { return null == t }, isArray: function (t) { if (Array.isArray && Array.isArray(t)) return !0; var e = Object.prototype.toString.call(t); return "[object" === e.substr(0, 7) && "Array]" === e.substr(-6) }, isObject: function (t) { return null !== t && "[object Object]" === Object.prototype.toString.call(t) }, isFinite: function (t) { return ("number" == typeof t || t instanceof Number) && isFinite(t) }, valueOrDefault: function (t, e) { return void 0 === t ? e : t }, valueAtIndexOrDefault: function (t, e, i) { return K.valueOrDefault(K.isArray(t) ? t[e] : t, i) }, callback: function (t, e, i) { if (t && "function" == typeof t.call) return t.apply(i, e) }, each: function (t, e, i, n) { var a, o, r; if (K.isArray(t)) if (o = t.length, n) for (a = o - 1; a >= 0; a--)e.call(i, t[a], a); else for (a = 0; a < o; a++)e.call(i, t[a], a); else if (K.isObject(t)) for (o = (r = Object.keys(t)).length, a = 0; a < o; a++)e.call(i, t[r[a]], r[a]) }, arrayEquals: function (t, e) { var i, n, a, o; if (!t || !e || t.length !== e.length) return !1; for (i = 0, n = t.length; i < n; ++i)if (a = t[i], o = e[i], a instanceof Array && o instanceof Array) { if (!K.arrayEquals(a, o)) return !1 } else if (a !== o) return !1; return !0 }, clone: function (t) { if (K.isArray(t)) return t.map(K.clone); if (K.isObject(t)) { for (var e = {}, i = Object.keys(t), n = i.length, a = 0; a < n; ++a)e[i[a]] = K.clone(t[i[a]]); return e } return t }, _merger: function (t, e, i, n) { var a = e[t], o = i[t]; K.isObject(a) && K.isObject(o) ? K.merge(a, o, n) : e[t] = K.clone(o) }, _mergerIf: function (t, e, i) { var n = e[t], a = i[t]; K.isObject(n) && K.isObject(a) ? K.mergeIf(n, a) : e.hasOwnProperty(t) || (e[t] = K.clone(a)) }, merge: function (t, e, i) { var n, a, o, r, s, l = K.isArray(e) ? e : [e], d = l.length; if (!K.isObject(t)) return t; for (n = (i = i || {}).merger || K._merger, a = 0; a < d; ++a)if (e = l[a], K.isObject(e)) for (s = 0, r = (o = Object.keys(e)).length; s < r; ++s)n(o[s], t, e, i); return t }, mergeIf: function (t, e) { return K.merge(t, e, { merger: K._mergerIf }) }, extend: function (t) { for (var e = function (e, i) { t[i] = e }, i = 1, n = arguments.length; i < n; ++i)K.each(arguments[i], e); return t }, inherits: function (t) { var e = this, i = t && t.hasOwnProperty("constructor") ? t.constructor : function () { return e.apply(this, arguments) }, n = function () { this.constructor = i }; return n.prototype = e.prototype, i.prototype = new n, i.extend = K.inherits, t && K.extend(i.prototype, t), i.__super__ = e.prototype, i } }, G = K; K.callCallback = K.callback, K.indexOf = function (t, e, i) { return Array.prototype.indexOf.call(t, e, i) }, K.getValueOrDefault = K.valueOrDefault, K.getValueAtIndexOrDefault = K.valueAtIndexOrDefault; var Z = { linear: function (t) { return t }, easeInQuad: function (t) { return t * t }, easeOutQuad: function (t) { return -t * (t - 2) }, easeInOutQuad: function (t) { return (t /= .5) < 1 ? .5 * t * t : -.5 * (--t * (t - 2) - 1) }, easeInCubic: function (t) { return t * t * t }, easeOutCubic: function (t) { return (t -= 1) * t * t + 1 }, easeInOutCubic: function (t) { return (t /= .5) < 1 ? .5 * t * t * t : .5 * ((t -= 2) * t * t + 2) }, easeInQuart: function (t) { return t * t * t * t }, easeOutQuart: function (t) { return -((t -= 1) * t * t * t - 1) }, easeInOutQuart: function (t) { return (t /= .5) < 1 ? .5 * t * t * t * t : -.5 * ((t -= 2) * t * t * t - 2) }, easeInQuint: function (t) { return t * t * t * t * t }, easeOutQuint: function (t) { return (t -= 1) * t * t * t * t + 1 }, easeInOutQuint: function (t) { return (t /= .5) < 1 ? .5 * t * t * t * t * t : .5 * ((t -= 2) * t * t * t * t + 2) }, easeInSine: function (t) { return 1 - Math.cos(t * (Math.PI / 2)) }, easeOutSine: function (t) { return Math.sin(t * (Math.PI / 2)) }, easeInOutSine: function (t) { return -.5 * (Math.cos(Math.PI * t) - 1) }, easeInExpo: function (t) { return 0 === t ? 0 : Math.pow(2, 10 * (t - 1)) }, easeOutExpo: function (t) { return 1 === t ? 1 : 1 - Math.pow(2, -10 * t) }, easeInOutExpo: function (t) { return 0 === t ? 0 : 1 === t ? 1 : (t /= .5) < 1 ? .5 * Math.pow(2, 10 * (t - 1)) : .5 * (2 - Math.pow(2, -10 * --t)) }, easeInCirc: function (t) { return t >= 1 ? t : -(Math.sqrt(1 - t * t) - 1) }, easeOutCirc: function (t) { return Math.sqrt(1 - (t -= 1) * t) }, easeInOutCirc: function (t) { return (t /= .5) < 1 ? -.5 * (Math.sqrt(1 - t * t) - 1) : .5 * (Math.sqrt(1 - (t -= 2) * t) + 1) }, easeInElastic: function (t) { var e = 1.70158, i = 0, n = 1; return 0 === t ? 0 : 1 === t ? 1 : (i || (i = .3), n < 1 ? (n = 1, e = i / 4) : e = i / (2 * Math.PI) * Math.asin(1 / n), -n * Math.pow(2, 10 * (t -= 1)) * Math.sin((t - e) * (2 * Math.PI) / i)) }, easeOutElastic: function (t) { var e = 1.70158, i = 0, n = 1; return 0 === t ? 0 : 1 === t ? 1 : (i || (i = .3), n < 1 ? (n = 1, e = i / 4) : e = i / (2 * Math.PI) * Math.asin(1 / n), n * Math.pow(2, -10 * t) * Math.sin((t - e) * (2 * Math.PI) / i) + 1) }, easeInOutElastic: function (t) { var e = 1.70158, i = 0, n = 1; return 0 === t ? 0 : 2 == (t /= .5) ? 1 : (i || (i = .45), n < 1 ? (n = 1, e = i / 4) : e = i / (2 * Math.PI) * Math.asin(1 / n), t < 1 ? n * Math.pow(2, 10 * (t -= 1)) * Math.sin((t - e) * (2 * Math.PI) / i) * -.5 : n * Math.pow(2, -10 * (t -= 1)) * Math.sin((t - e) * (2 * Math.PI) / i) * .5 + 1) }, easeInBack: function (t) { var e = 1.70158; return t * t * ((e + 1) * t - e) }, easeOutBack: function (t) { var e = 1.70158; return (t -= 1) * t * ((e + 1) * t + e) + 1 }, easeInOutBack: function (t) { var e = 1.70158; return (t /= .5) < 1 ? t * t * ((1 + (e *= 1.525)) * t - e) * .5 : .5 * ((t -= 2) * t * ((1 + (e *= 1.525)) * t + e) + 2) }, easeInBounce: function (t) { return 1 - Z.easeOutBounce(1 - t) }, easeOutBounce: function (t) { return t < 1 / 2.75 ? 7.5625 * t * t : t < 2 / 2.75 ? 7.5625 * (t -= 1.5 / 2.75) * t + .75 : t < 2.5 / 2.75 ? 7.5625 * (t -= 2.25 / 2.75) * t + .9375 : 7.5625 * (t -= 2.625 / 2.75) * t + .984375 }, easeInOutBounce: function (t) { return t < .5 ? .5 * Z.easeInBounce(2 * t) : .5 * Z.easeOutBounce(2 * t - 1) + .5 } }, $ = { effects: Z }; G.easingEffects = Z; var J = Math.PI, Q = J / 180, tt = 2 * J, et = J / 2, it = J / 4, nt = 2 * J / 3, at = { clear: function (t) { t.ctx.clearRect(0, 0, t.width, t.height) }, roundedRect: function (t, e, i, n, a, o) { if (o) { var r = Math.min(o, a / 2, n / 2), s = e + r, l = i + r, d = e + n - r, u = i + a - r; t.moveTo(e, l), s < d && l < u ? (t.arc(s, l, r, -J, -et), t.arc(d, l, r, -et, 0), t.arc(d, u, r, 0, et), t.arc(s, u, r, et, J)) : s < d ? (t.moveTo(s, i), t.arc(d, l, r, -et, et), t.arc(s, l, r, et, J + et)) : l < u ? (t.arc(s, l, r, -J, 0), t.arc(s, u, r, 0, J)) : t.arc(s, l, r, -J, J), t.closePath(), t.moveTo(e, i) } else t.rect(e, i, n, a) }, drawPoint: function (t, e, i, n, a, o) { var r, s, l, d, u, h = (o || 0) * Q; if (!e || "object" != typeof e || "[object HTMLImageElement]" !== (r = e.toString()) && "[object HTMLCanvasElement]" !== r) { if (!(isNaN(i) || i <= 0)) { switch (t.beginPath(), e) { default: t.arc(n, a, i, 0, tt), t.closePath(); break; case "triangle": t.moveTo(n + Math.sin(h) * i, a - Math.cos(h) * i), h += nt, t.lineTo(n + Math.sin(h) * i, a - Math.cos(h) * i), h += nt, t.lineTo(n + Math.sin(h) * i, a - Math.cos(h) * i), t.closePath(); break; case "rectRounded": d = i - (u = .516 * i), s = Math.cos(h + it) * d, l = Math.sin(h + it) * d, t.arc(n - s, a - l, u, h - J, h - et), t.arc(n + l, a - s, u, h - et, h), t.arc(n + s, a + l, u, h, h + et), t.arc(n - l, a + s, u, h + et, h + J), t.closePath(); break; case "rect": if (!o) { d = Math.SQRT1_2 * i, t.rect(n - d, a - d, 2 * d, 2 * d); break } h += it; case "rectRot": s = Math.cos(h) * i, l = Math.sin(h) * i, t.moveTo(n - s, a - l), t.lineTo(n + l, a - s), t.lineTo(n + s, a + l), t.lineTo(n - l, a + s), t.closePath(); break; case "crossRot": h += it; case "cross": s = Math.cos(h) * i, l = Math.sin(h) * i, t.moveTo(n - s, a - l), t.lineTo(n + s, a + l), t.moveTo(n + l, a - s), t.lineTo(n - l, a + s); break; case "star": s = Math.cos(h) * i, l = Math.sin(h) * i, t.moveTo(n - s, a - l), t.lineTo(n + s, a + l), t.moveTo(n + l, a - s), t.lineTo(n - l, a + s), h += it, s = Math.cos(h) * i, l = Math.sin(h) * i, t.moveTo(n - s, a - l), t.lineTo(n + s, a + l), t.moveTo(n + l, a - s), t.lineTo(n - l, a + s); break; case "line": s = Math.cos(h) * i, l = Math.sin(h) * i, t.moveTo(n - s, a - l), t.lineTo(n + s, a + l); break; case "dash": t.moveTo(n, a), t.lineTo(n + Math.cos(h) * i, a + Math.sin(h) * i) }t.fill(), t.stroke() } } else t.drawImage(e, n - e.width / 2, a - e.height / 2, e.width, e.height) }, _isPointInArea: function (t, e) { return t.x > e.left - 1e-6 && t.x < e.right + 1e-6 && t.y > e.top - 1e-6 && t.y < e.bottom + 1e-6 }, clipArea: function (t, e) { t.save(), t.beginPath(), t.rect(e.left, e.top, e.right - e.left, e.bottom - e.top), t.clip() }, unclipArea: function (t) { t.restore() }, lineTo: function (t, e, i, n) { var a = i.steppedLine; if (a) { if ("middle" === a) { var o = (e.x + i.x) / 2; t.lineTo(o, n ? i.y : e.y), t.lineTo(o, n ? e.y : i.y) } else "after" === a && !n || "after" !== a && n ? t.lineTo(e.x, i.y) : t.lineTo(i.x, e.y); t.lineTo(i.x, i.y) } else i.tension ? t.bezierCurveTo(n ? e.controlPointPreviousX : e.controlPointNextX, n ? e.controlPointPreviousY : e.controlPointNextY, n ? i.controlPointNextX : i.controlPointPreviousX, n ? i.controlPointNextY : i.controlPointPreviousY, i.x, i.y) : t.lineTo(i.x, i.y) } }, ot = at; G.clear = at.clear, G.drawRoundedRectangle = function (t) { t.beginPath(), at.roundedRect.apply(at, arguments) }; var rt = { _set: function (t, e) { return G.merge(this[t] || (this[t] = {}), e) } }; rt._set("global", { defaultColor: "rgba(0,0,0,0.1)", defaultFontColor: "#666", defaultFontFamily: "'Helvetica Neue', 'Helvetica', 'Arial', sans-serif", defaultFontSize: 12, defaultFontStyle: "normal", defaultLineHeight: 1.2, showLines: !0 }); var st = rt, lt = G.valueOrDefault; var dt = { toLineHeight: function (t, e) { var i = ("" + t).match(/^(normal|(\d+(?:\.\d+)?)(px|em|%)?)$/); if (!i || "normal" === i[1]) return 1.2 * e; switch (t = +i[2], i[3]) { case "px": return t; case "%": t /= 100 }return e * t }, toPadding: function (t) { var e, i, n, a; return G.isObject(t) ? (e = +t.top || 0, i = +t.right || 0, n = +t.bottom || 0, a = +t.left || 0) : e = i = n = a = +t || 0, { top: e, right: i, bottom: n, left: a, height: e + n, width: a + i } }, _parseFont: function (t) { var e = st.global, i = lt(t.fontSize, e.defaultFontSize), n = { family: lt(t.fontFamily, e.defaultFontFamily), lineHeight: G.options.toLineHeight(lt(t.lineHeight, e.defaultLineHeight), i), size: i, style: lt(t.fontStyle, e.defaultFontStyle), weight: null, string: "" }; return n.string = function (t) { return !t || G.isNullOrUndef(t.size) || G.isNullOrUndef(t.family) ? null : (t.style ? t.style + " " : "") + (t.weight ? t.weight + " " : "") + t.size + "px " + t.family }(n), n }, resolve: function (t, e, i) { var n, a, o; for (n = 0, a = t.length; n < a; ++n)if (void 0 !== (o = t[n]) && (void 0 !== e && "function" == typeof o && (o = o(e)), void 0 !== i && G.isArray(o) && (o = o[i]), void 0 !== o)) return o } }, ut = G, ht = $, ct = ot, ft = dt; ut.easing = ht, ut.canvas = ct, ut.options = ft; var gt = function (t) { ut.extend(this, t), this.initialize.apply(this, arguments) }; ut.extend(gt.prototype, { initialize: function () { this.hidden = !1 }, pivot: function () { var t = this; return t._view || (t._view = ut.clone(t._model)), t._start = {}, t }, transition: function (t) { var e = this, i = e._model, n = e._start, a = e._view; return i && 1 !== t ? (a || (a = e._view = {}), n || (n = e._start = {}), function (t, e, i, n) { var a, o, r, s, l, d, u, h, c, f = Object.keys(i); for (a = 0, o = f.length; a < o; ++a)if (d = i[r = f[a]], e.hasOwnProperty(r) || (e[r] = d), (s = e[r]) !== d && "_" !== r[0]) { if (t.hasOwnProperty(r) || (t[r] = s), (u = typeof d) == typeof (l = t[r])) if ("string" === u) { if ((h = X(l)).valid && (c = X(d)).valid) { e[r] = c.mix(h, n).rgbString(); continue } } else if (ut.isFinite(l) && ut.isFinite(d)) { e[r] = l + (d - l) * n; continue } e[r] = d } }(n, a, i, t), e) : (e._view = i, e._start = null, e) }, tooltipPosition: function () { return { x: this._model.x, y: this._model.y } }, hasValue: function () { return ut.isNumber(this._model.x) && ut.isNumber(this._model.y) } }), gt.extend = ut.inherits; var pt = gt, mt = pt.extend({ chart: null, currentStep: 0, numSteps: 60, easing: "", render: null, onAnimationProgress: null, onAnimationComplete: null }), vt = mt; Object.defineProperty(mt.prototype, "animationObject", { get: function () { return this } }), Object.defineProperty(mt.prototype, "chartInstance", { get: function () { return this.chart }, set: function (t) { this.chart = t } }), st._set("global", { animation: { duration: 1e3, easing: "easeOutQuart", onProgress: ut.noop, onComplete: ut.noop } }); var bt = { animations: [], request: null, addAnimation: function (t, e, i, n) { var a, o, r = this.animations; for (e.chart = t, e.startTime = Date.now(), e.duration = i, n || (t.animating = !0), a = 0, o = r.length; a < o; ++a)if (r[a].chart === t) return void (r[a] = e); r.push(e), 1 === r.length && this.requestAnimationFrame() }, cancelAnimation: function (t) { var e = ut.findIndex(this.animations, function (e) { return e.chart === t }); -1 !== e && (this.animations.splice(e, 1), t.animating = !1) }, requestAnimationFrame: function () { var t = this; null === t.request && (t.request = ut.requestAnimFrame.call(window, function () { t.request = null, t.startDigest() })) }, startDigest: function () { this.advance(), this.animations.length > 0 && this.requestAnimationFrame() }, advance: function () { for (var t, e, i, n, a = this.animations, o = 0; o < a.length;)e = (t = a[o]).chart, i = t.numSteps, n = Math.floor((Date.now() - t.startTime) / t.duration * i) + 1, t.currentStep = Math.min(n, i), ut.callback(t.render, [e, t], e), ut.callback(t.onAnimationProgress, [t], e), t.currentStep >= i ? (ut.callback(t.onAnimationComplete, [t], e), e.animating = !1, a.splice(o, 1)) : ++o } }, xt = ut.options.resolve, yt = ["push", "pop", "shift", "splice", "unshift"]; function kt(t, e) { var i = t._chartjs; if (i) { var n = i.listeners, a = n.indexOf(e); -1 !== a && n.splice(a, 1), n.length > 0 || (yt.forEach(function (e) { delete t[e] }), delete t._chartjs) } } var wt = function (t, e) { this.initialize(t, e) }; ut.extend(wt.prototype, { datasetElementType: null, dataElementType: null, initialize: function (t, e) { this.chart = t, this.index = e, this.linkScales(), this.addElements() }, updateIndex: function (t) { this.index = t }, linkScales: function () { var t = this, e = t.getMeta(), i = t.getDataset(); null !== e.xAxisID && e.xAxisID in t.chart.scales || (e.xAxisID = i.xAxisID || t.chart.options.scales.xAxes[0].id), null !== e.yAxisID && e.yAxisID in t.chart.scales || (e.yAxisID = i.yAxisID || t.chart.options.scales.yAxes[0].id) }, getDataset: function () { return this.chart.data.datasets[this.index] }, getMeta: function () { return this.chart.getDatasetMeta(this.index) }, getScaleForId: function (t) { return this.chart.scales[t] }, _getValueScaleId: function () { return this.getMeta().yAxisID }, _getIndexScaleId: function () { return this.getMeta().xAxisID }, _getValueScale: function () { return this.getScaleForId(this._getValueScaleId()) }, _getIndexScale: function () { return this.getScaleForId(this._getIndexScaleId()) }, reset: function () { this.update(!0) }, destroy: function () { this._data && kt(this._data, this) }, createMetaDataset: function () { var t = this.datasetElementType; return t && new t({ _chart: this.chart, _datasetIndex: this.index }) }, createMetaData: function (t) { var e = this.dataElementType; return e && new e({ _chart: this.chart, _datasetIndex: this.index, _index: t }) }, addElements: function () { var t, e, i = this.getMeta(), n = this.getDataset().data || [], a = i.data; for (t = 0, e = n.length; t < e; ++t)a[t] = a[t] || this.createMetaData(t); i.dataset = i.dataset || this.createMetaDataset() }, addElementAndReset: function (t) { var e = this.createMetaData(t); this.getMeta().data.splice(t, 0, e), this.updateElement(e, t, !0) }, buildOrUpdateElements: function () { var t, e, i = this, n = i.getDataset(), a = n.data || (n.data = []); i._data !== a && (i._data && kt(i._data, i), a && Object.isExtensible(a) && (e = i, (t = a)._chartjs ? t._chartjs.listeners.push(e) : (Object.defineProperty(t, "_chartjs", { configurable: !0, enumerable: !1, value: { listeners: [e] } }), yt.forEach(function (e) { var i = "onData" + e.charAt(0).toUpperCase() + e.slice(1), n = t[e]; Object.defineProperty(t, e, { configurable: !0, enumerable: !1, value: function () { var e = Array.prototype.slice.call(arguments), a = n.apply(this, e); return ut.each(t._chartjs.listeners, function (t) { "function" == typeof t[i] && t[i].apply(t, e) }), a } }) }))), i._data = a), i.resyncElements() }, update: ut.noop, transition: function (t) { for (var e = this.getMeta(), i = e.data || [], n = i.length, a = 0; a < n; ++a)i[a].transition(t); e.dataset && e.dataset.transition(t) }, draw: function () { var t = this.getMeta(), e = t.data || [], i = e.length, n = 0; for (t.dataset && t.dataset.draw(); n < i; ++n)e[n].draw() }, removeHoverStyle: function (t) { ut.merge(t._model, t.$previousStyle || {}), delete t.$previousStyle }, setHoverStyle: function (t) { var e = this.chart.data.datasets[t._datasetIndex], i = t._index, n = t.custom || {}, a = t._model, o = ut.getHoverColor; t.$previousStyle = { backgroundColor: a.backgroundColor, borderColor: a.borderColor, borderWidth: a.borderWidth }, a.backgroundColor = xt([n.hoverBackgroundColor, e.hoverBackgroundColor, o(a.backgroundColor)], void 0, i), a.borderColor = xt([n.hoverBorderColor, e.hoverBorderColor, o(a.borderColor)], void 0, i), a.borderWidth = xt([n.hoverBorderWidth, e.hoverBorderWidth, a.borderWidth], void 0, i) }, resyncElements: function () { var t = this.getMeta(), e = this.getDataset().data, i = t.data.length, n = e.length; n < i ? t.data.splice(n, i - n) : n > i && this.insertElements(i, n - i) }, insertElements: function (t, e) { for (var i = 0; i < e; ++i)this.addElementAndReset(t + i) }, onDataPush: function () { var t = arguments.length; this.insertElements(this.getDataset().data.length - t, t) }, onDataPop: function () { this.getMeta().data.pop() }, onDataShift: function () { this.getMeta().data.shift() }, onDataSplice: function (t, e) { this.getMeta().data.splice(t, e), this.insertElements(t, arguments.length - 2) }, onDataUnshift: function () { this.insertElements(0, arguments.length) } }), wt.extend = ut.inherits; var Mt = wt; st._set("global", { elements: { arc: { backgroundColor: st.global.defaultColor, borderColor: "#fff", borderWidth: 2, borderAlign: "center" } } }); var _t = pt.extend({ inLabelRange: function (t) { var e = this._view; return !!e && Math.pow(t - e.x, 2) < Math.pow(e.radius + e.hoverRadius, 2) }, inRange: function (t, e) { var i = this._view; if (i) { for (var n = ut.getAngleFromPoint(i, { x: t, y: e }), a = n.angle, o = n.distance, r = i.startAngle, s = i.endAngle; s < r;)s += 2 * Math.PI; for (; a > s;)a -= 2 * Math.PI; for (; a < r;)a += 2 * Math.PI; var l = a >= r && a <= s, d = o >= i.innerRadius && o <= i.outerRadius; return l && d } return !1 }, getCenterPoint: function () { var t = this._view, e = (t.startAngle + t.endAngle) / 2, i = (t.innerRadius + t.outerRadius) / 2; return { x: t.x + Math.cos(e) * i, y: t.y + Math.sin(e) * i } }, getArea: function () { var t = this._view; return Math.PI * ((t.endAngle - t.startAngle) / (2 * Math.PI)) * (Math.pow(t.outerRadius, 2) - Math.pow(t.innerRadius, 2)) }, tooltipPosition: function () { var t = this._view, e = t.startAngle + (t.endAngle - t.startAngle) / 2, i = (t.outerRadius - t.innerRadius) / 2 + t.innerRadius; return { x: t.x + Math.cos(e) * i, y: t.y + Math.sin(e) * i } }, draw: function () { var t, e = this._chart.ctx, i = this._view, n = i.startAngle, a = i.endAngle, o = "inner" === i.borderAlign ? .33 : 0; e.save(), e.beginPath(), e.arc(i.x, i.y, Math.max(i.outerRadius - o, 0), n, a), e.arc(i.x, i.y, i.innerRadius, a, n, !0), e.closePath(), e.fillStyle = i.backgroundColor, e.fill(), i.borderWidth && ("inner" === i.borderAlign ? (e.beginPath(), t = o / i.outerRadius, e.arc(i.x, i.y, i.outerRadius, n - t, a + t), i.innerRadius > o ? (t = o / i.innerRadius, e.arc(i.x, i.y, i.innerRadius - o, a + t, n - t, !0)) : e.arc(i.x, i.y, o, a + Math.PI / 2, n - Math.PI / 2), e.closePath(), e.clip(), e.beginPath(), e.arc(i.x, i.y, i.outerRadius, n, a), e.arc(i.x, i.y, i.innerRadius, a, n, !0), e.closePath(), e.lineWidth = 2 * i.borderWidth, e.lineJoin = "round") : (e.lineWidth = i.borderWidth, e.lineJoin = "bevel"), e.strokeStyle = i.borderColor, e.stroke()), e.restore() } }), Ct = ut.valueOrDefault, St = st.global.defaultColor; st._set("global", { elements: { line: { tension: .4, backgroundColor: St, borderWidth: 3, borderColor: St, borderCapStyle: "butt", borderDash: [], borderDashOffset: 0, borderJoinStyle: "miter", capBezierPoints: !0, fill: !0 } } }); var Pt = pt.extend({ draw: function () { var t, e, i, n, a = this._view, o = this._chart.ctx, r = a.spanGaps, s = this._children.slice(), l = st.global, d = l.elements.line, u = -1; for (this._loop && s.length && s.push(s[0]), o.save(), o.lineCap = a.borderCapStyle || d.borderCapStyle, o.setLineDash && o.setLineDash(a.borderDash || d.borderDash), o.lineDashOffset = Ct(a.borderDashOffset, d.borderDashOffset), o.lineJoin = a.borderJoinStyle || d.borderJoinStyle, o.lineWidth = Ct(a.borderWidth, d.borderWidth), o.strokeStyle = a.borderColor || l.defaultColor, o.beginPath(), u = -1, t = 0; t < s.length; ++t)e = s[t], i = ut.previousItem(s, t), n = e._view, 0 === t ? n.skip || (o.moveTo(n.x, n.y), u = t) : (i = -1 === u ? i : s[u], n.skip || (u !== t - 1 && !r || -1 === u ? o.moveTo(n.x, n.y) : ut.canvas.lineTo(o, i._view, e._view), u = t)); o.stroke(), o.restore() } }), It = ut.valueOrDefault, At = st.global.defaultColor; function Dt(t) { var e = this._view; return !!e && Math.abs(t - e.x) < e.radius + e.hitRadius } st._set("global", { elements: { point: { radius: 3, pointStyle: "circle", backgroundColor: At, borderColor: At, borderWidth: 1, hitRadius: 1, hoverRadius: 4, hoverBorderWidth: 1 } } }); var Tt = pt.extend({ inRange: function (t, e) { var i = this._view; return !!i && Math.pow(t - i.x, 2) + Math.pow(e - i.y, 2) < Math.pow(i.hitRadius + i.radius, 2) }, inLabelRange: Dt, inXRange: Dt, inYRange: function (t) { var e = this._view; return !!e && Math.abs(t - e.y) < e.radius + e.hitRadius }, getCenterPoint: function () { var t = this._view; return { x: t.x, y: t.y } }, getArea: function () { return Math.PI * Math.pow(this._view.radius, 2) }, tooltipPosition: function () { var t = this._view; return { x: t.x, y: t.y, padding: t.radius + t.borderWidth } }, draw: function (t) { var e = this._view, i = this._chart.ctx, n = e.pointStyle, a = e.rotation, o = e.radius, r = e.x, s = e.y, l = st.global, d = l.defaultColor; e.skip || (void 0 === t || ut.canvas._isPointInArea(e, t)) && (i.strokeStyle = e.borderColor || d, i.lineWidth = It(e.borderWidth, l.elements.point.borderWidth), i.fillStyle = e.backgroundColor || d, ut.canvas.drawPoint(i, n, o, r, s, a)) } }), Ft = st.global.defaultColor; function Lt(t) { return t && void 0 !== t.width } function Rt(t) { var e, i, n, a, o; return Lt(t) ? (o = t.width / 2, e = t.x - o, i = t.x + o, n = Math.min(t.y, t.base), a = Math.max(t.y, t.base)) : (o = t.height / 2, e = Math.min(t.x, t.base), i = Math.max(t.x, t.base), n = t.y - o, a = t.y + o), { left: e, top: n, right: i, bottom: a } } function Ot(t, e, i) { return t === e ? i : t === i ? e : t } function zt(t, e, i) { var n, a, o, r, s = t.borderWidth, l = function (t) { var e = t.borderSkipped, i = {}; return e ? (t.horizontal ? t.base > t.x && (e = Ot(e, "left", "right")) : t.base < t.y && (e = Ot(e, "bottom", "top")), i[e] = !0, i) : i }(t); return ut.isObject(s) ? (n = +s.top || 0, a = +s.right || 0, o = +s.bottom || 0, r = +s.left || 0) : n = a = o = r = +s || 0, { t: l.top || n < 0 ? 0 : n > i ? i : n, r: l.right || a < 0 ? 0 : a > e ? e : a, b: l.bottom || o < 0 ? 0 : o > i ? i : o, l: l.left || r < 0 ? 0 : r > e ? e : r } } function Bt(t, e, i) { var n = null === e, a = null === i, o = !(!t || n && a) && Rt(t); return o && (n || e >= o.left && e <= o.right) && (a || i >= o.top && i <= o.bottom) } st._set("global", { elements: { rectangle: { backgroundColor: Ft, borderColor: Ft, borderSkipped: "bottom", borderWidth: 0 } } }); var Nt = pt.extend({ draw: function () { var t = this._chart.ctx, e = this._view, i = function (t) { var e = Rt(t), i = e.right - e.left, n = e.bottom - e.top, a = zt(t, i / 2, n / 2); return { outer: { x: e.left, y: e.top, w: i, h: n }, inner: { x: e.left + a.l, y: e.top + a.t, w: i - a.l - a.r, h: n - a.t - a.b } } }(e), n = i.outer, a = i.inner; t.fillStyle = e.backgroundColor, t.fillRect(n.x, n.y, n.w, n.h), n.w === a.w && n.h === a.h || (t.save(), t.beginPath(), t.rect(n.x, n.y, n.w, n.h), t.clip(), t.fillStyle = e.borderColor, t.rect(a.x, a.y, a.w, a.h), t.fill("evenodd"), t.restore()) }, height: function () { var t = this._view; return t.base - t.y }, inRange: function (t, e) { return Bt(this._view, t, e) }, inLabelRange: function (t, e) { var i = this._view; return Lt(i) ? Bt(i, t, null) : Bt(i, null, e) }, inXRange: function (t) { return Bt(this._view, t, null) }, inYRange: function (t) { return Bt(this._view, null, t) }, getCenterPoint: function () { var t, e, i = this._view; return Lt(i) ? (t = i.x, e = (i.y + i.base) / 2) : (t = (i.x + i.base) / 2, e = i.y), { x: t, y: e } }, getArea: function () { var t = this._view; return Lt(t) ? t.width * Math.abs(t.y - t.base) : t.height * Math.abs(t.x - t.base) }, tooltipPosition: function () { var t = this._view; return { x: t.x, y: t.y } } }), Wt = {}, Vt = _t, Et = Pt, Ht = Tt, jt = Nt; Wt.Arc = Vt, Wt.Line = Et, Wt.Point = Ht, Wt.Rectangle = jt; var qt = ut.options.resolve; st._set("bar", { hover: { mode: "label" }, scales: { xAxes: [{ type: "category", categoryPercentage: .8, barPercentage: .9, offset: !0, gridLines: { offsetGridLines: !0 } }], yAxes: [{ type: "linear" }] } }); var Yt = Mt.extend({ dataElementType: Wt.Rectangle, initialize: function () { var t; Mt.prototype.initialize.apply(this, arguments), (t = this.getMeta()).stack = this.getDataset().stack, t.bar = !0 }, update: function (t) { var e, i, n = this.getMeta().data; for (this._ruler = this.getRuler(), e = 0, i = n.length; e < i; ++e)this.updateElement(n[e], e, t) }, updateElement: function (t, e, i) { var n = this, a = n.getMeta(), o = n.getDataset(), r = n._resolveElementOptions(t, e); t._xScale = n.getScaleForId(a.xAxisID), t._yScale = n.getScaleForId(a.yAxisID), t._datasetIndex = n.index, t._index = e, t._model = { backgroundColor: r.backgroundColor, borderColor: r.borderColor, borderSkipped: r.borderSkipped, borderWidth: r.borderWidth, datasetLabel: o.label, label: n.chart.data.labels[e] }, n._updateElementGeometry(t, e, i), t.pivot() }, _updateElementGeometry: function (t, e, i) { var n = this, a = t._model, o = n._getValueScale(), r = o.getBasePixel(), s = o.isHorizontal(), l = n._ruler || n.getRuler(), d = n.calculateBarValuePixels(n.index, e), u = n.calculateBarIndexPixels(n.index, e, l); a.horizontal = s, a.base = i ? r : d.base, a.x = s ? i ? r : d.head : u.center, a.y = s ? u.center : i ? r : d.head, a.height = s ? u.size : void 0, a.width = s ? void 0 : u.size }, _getStacks: function (t) { var e, i, n = this.chart, a = this._getIndexScale().options.stacked, o = void 0 === t ? n.data.datasets.length : t + 1, r = []; for (e = 0; e < o; ++e)(i = n.getDatasetMeta(e)).bar && n.isDatasetVisible(e) && (!1 === a || !0 === a && -1 === r.indexOf(i.stack) || void 0 === a && (void 0 === i.stack || -1 === r.indexOf(i.stack))) && r.push(i.stack); return r }, getStackCount: function () { return this._getStacks().length }, getStackIndex: function (t, e) { var i = this._getStacks(t), n = void 0 !== e ? i.indexOf(e) : -1; return -1 === n ? i.length - 1 : n }, getRuler: function () { var t, e, i = this._getIndexScale(), n = this.getStackCount(), a = this.index, o = i.isHorizontal(), r = o ? i.left : i.top, s = r + (o ? i.width : i.height), l = []; for (t = 0, e = this.getMeta().data.length; t < e; ++t)l.push(i.getPixelForValue(null, t, a)); return { min: ut.isNullOrUndef(i.options.barThickness) ? function (t, e) { var i, n, a, o, r = t.isHorizontal() ? t.width : t.height, s = t.getTicks(); for (a = 1, o = e.length; a < o; ++a)r = Math.min(r, Math.abs(e[a] - e[a - 1])); for (a = 0, o = s.length; a < o; ++a)n = t.getPixelForTick(a), r = a > 0 ? Math.min(r, n - i) : r, i = n; return r }(i, l) : -1, pixels: l, start: r, end: s, stackCount: n, scale: i } }, calculateBarValuePixels: function (t, e) { var i, n, a, o, r, s, l = this.chart, d = this.getMeta(), u = this._getValueScale(), h = u.isHorizontal(), c = l.data.datasets, f = +u.getRightValue(c[t].data[e]), g = u.options.minBarLength, p = u.options.stacked, m = d.stack, v = 0; if (p || void 0 === p && void 0 !== m) for (i = 0; i < t; ++i)(n = l.getDatasetMeta(i)).bar && n.stack === m && n.controller._getValueScaleId() === u.id && l.isDatasetVisible(i) && (a = +u.getRightValue(c[i].data[e]), (f < 0 && a < 0 || f >= 0 && a > 0) && (v += a)); return o = u.getPixelForValue(v), s = (r = u.getPixelForValue(v + f)) - o, void 0 !== g && Math.abs(s) < g && (s = g, r = f >= 0 && !h || f < 0 && h ? o - g : o + g), { size: s, base: o, head: r, center: r + s / 2 } }, calculateBarIndexPixels: function (t, e, i) { var n = i.scale.options, a = "flex" === n.barThickness ? function (t, e, i) { var n, a = e.pixels, o = a[t], r = t > 0 ? a[t - 1] : null, s = t < a.length - 1 ? a[t + 1] : null, l = i.categoryPercentage; return null === r && (r = o - (null === s ? e.end - e.start : s - o)), null === s && (s = o + o - r), n = o - (o - Math.min(r, s)) / 2 * l, { chunk: Math.abs(s - r) / 2 * l / e.stackCount, ratio: i.barPercentage, start: n } }(e, i, n) : function (t, e, i) { var n, a, o = i.barThickness, r = e.stackCount, s = e.pixels[t]; return ut.isNullOrUndef(o) ? (n = e.min * i.categoryPercentage, a = i.barPercentage) : (n = o * r, a = 1), { chunk: n / r, ratio: a, start: s - n / 2 } }(e, i, n), o = this.getStackIndex(t, this.getMeta().stack), r = a.start + a.chunk * o + a.chunk / 2, s = Math.min(ut.valueOrDefault(n.maxBarThickness, 1 / 0), a.chunk * a.ratio); return { base: r - s / 2, head: r + s / 2, center: r, size: s } }, draw: function () { var t = this.chart, e = this._getValueScale(), i = this.getMeta().data, n = this.getDataset(), a = i.length, o = 0; for (ut.canvas.clipArea(t.ctx, t.chartArea); o < a; ++o)isNaN(e.getRightValue(n.data[o])) || i[o].draw(); ut.canvas.unclipArea(t.ctx) }, _resolveElementOptions: function (t, e) { var i, n, a, o = this.chart, r = o.data.datasets[this.index], s = t.custom || {}, l = o.options.elements.rectangle, d = {}, u = { chart: o, dataIndex: e, dataset: r, datasetIndex: this.index }, h = ["backgroundColor", "borderColor", "borderSkipped", "borderWidth"]; for (i = 0, n = h.length; i < n; ++i)d[a = h[i]] = qt([s[a], r[a], l[a]], u, e); return d } }), Ut = ut.valueOrDefault, Xt = ut.options.resolve; st._set("bubble", { hover: { mode: "single" }, scales: { xAxes: [{ type: "linear", position: "bottom", id: "x-axis-0" }], yAxes: [{ type: "linear", position: "left", id: "y-axis-0" }] }, tooltips: { callbacks: { title: function () { return "" }, label: function (t, e) { var i = e.datasets[t.datasetIndex].label || "", n = e.datasets[t.datasetIndex].data[t.index]; return i + ": (" + t.xLabel + ", " + t.yLabel + ", " + n.r + ")" } } } }); var Kt = Mt.extend({ dataElementType: Wt.Point, update: function (t) { var e = this, i = e.getMeta().data; ut.each(i, function (i, n) { e.updateElement(i, n, t) }) }, updateElement: function (t, e, i) { var n = this, a = n.getMeta(), o = t.custom || {}, r = n.getScaleForId(a.xAxisID), s = n.getScaleForId(a.yAxisID), l = n._resolveElementOptions(t, e), d = n.getDataset().data[e], u = n.index, h = i ? r.getPixelForDecimal(.5) : r.getPixelForValue("object" == typeof d ? d : NaN, e, u), c = i ? s.getBasePixel() : s.getPixelForValue(d, e, u); t._xScale = r, t._yScale = s, t._options = l, t._datasetIndex = u, t._index = e, t._model = { backgroundColor: l.backgroundColor, borderColor: l.borderColor, borderWidth: l.borderWidth, hitRadius: l.hitRadius, pointStyle: l.pointStyle, rotation: l.rotation, radius: i ? 0 : l.radius, skip: o.skip || isNaN(h) || isNaN(c), x: h, y: c }, t.pivot() }, setHoverStyle: function (t) { var e = t._model, i = t._options, n = ut.getHoverColor; t.$previousStyle = { backgroundColor: e.backgroundColor, borderColor: e.borderColor, borderWidth: e.borderWidth, radius: e.radius }, e.backgroundColor = Ut(i.hoverBackgroundColor, n(i.backgroundColor)), e.borderColor = Ut(i.hoverBorderColor, n(i.borderColor)), e.borderWidth = Ut(i.hoverBorderWidth, i.borderWidth), e.radius = i.radius + i.hoverRadius }, _resolveElementOptions: function (t, e) { var i, n, a, o = this.chart, r = o.data.datasets[this.index], s = t.custom || {}, l = o.options.elements.point, d = r.data[e], u = {}, h = { chart: o, dataIndex: e, dataset: r, datasetIndex: this.index }, c = ["backgroundColor", "borderColor", "borderWidth", "hoverBackgroundColor", "hoverBorderColor", "hoverBorderWidth", "hoverRadius", "hitRadius", "pointStyle", "rotation"]; for (i = 0, n = c.length; i < n; ++i)u[a = c[i]] = Xt([s[a], r[a], l[a]], h, e); return u.radius = Xt([s.radius, d ? d.r : void 0, r.radius, l.radius], h, e), u } }), Gt = ut.options.resolve, Zt = ut.valueOrDefault; st._set("doughnut", { animation: { animateRotate: !0, animateScale: !1 }, hover: { mode: "single" }, legendCallback: function (t) { var e = []; e.push('<ul class="' + t.id + '-legend">'); var i = t.data, n = i.datasets, a = i.labels; if (n.length) for (var o = 0; o < n[0].data.length; ++o)e.push('<li><span style="background-color:' + n[0].backgroundColor[o] + '"></span>'), a[o] && e.push(a[o]), e.push("</li>"); return e.push("</ul>"), e.join("") }, legend: { labels: { generateLabels: function (t) { var e = t.data; return e.labels.length && e.datasets.length ? e.labels.map(function (i, n) { var a = t.getDatasetMeta(0), o = e.datasets[0], r = a.data[n], s = r && r.custom || {}, l = t.options.elements.arc; return { text: i, fillStyle: Gt([s.backgroundColor, o.backgroundColor, l.backgroundColor], void 0, n), strokeStyle: Gt([s.borderColor, o.borderColor, l.borderColor], void 0, n), lineWidth: Gt([s.borderWidth, o.borderWidth, l.borderWidth], void 0, n), hidden: isNaN(o.data[n]) || a.data[n].hidden, index: n } }) : [] } }, onClick: function (t, e) { var i, n, a, o = e.index, r = this.chart; for (i = 0, n = (r.data.datasets || []).length; i < n; ++i)(a = r.getDatasetMeta(i)).data[o] && (a.data[o].hidden = !a.data[o].hidden); r.update() } }, cutoutPercentage: 50, rotation: -.5 * Math.PI, circumference: 2 * Math.PI, tooltips: { callbacks: { title: function () { return "" }, label: function (t, e) { var i = e.labels[t.index], n = ": " + e.datasets[t.datasetIndex].data[t.index]; return ut.isArray(i) ? (i = i.slice())[0] += n : i += n, i } } } }); var $t = Mt.extend({ dataElementType: Wt.Arc, linkScales: ut.noop, getRingIndex: function (t) { for (var e = 0, i = 0; i < t; ++i)this.chart.isDatasetVisible(i) && ++e; return e }, update: function (t) { var e, i, n = this, a = n.chart, o = a.chartArea, r = a.options, s = o.right - o.left, l = o.bottom - o.top, d = Math.min(s, l), u = { x: 0, y: 0 }, h = n.getMeta(), c = h.data, f = r.cutoutPercentage, g = r.circumference, p = n._getRingWeight(n.index); if (g < 2 * Math.PI) { var m = r.rotation % (2 * Math.PI), v = (m += 2 * Math.PI * (m >= Math.PI ? -1 : m < -Math.PI ? 1 : 0)) + g, b = { x: Math.cos(m), y: Math.sin(m) }, x = { x: Math.cos(v), y: Math.sin(v) }, y = m <= 0 && v >= 0 || m <= 2 * Math.PI && 2 * Math.PI <= v, k = m <= .5 * Math.PI && .5 * Math.PI <= v || m <= 2.5 * Math.PI && 2.5 * Math.PI <= v, w = m <= -Math.PI && -Math.PI <= v || m <= Math.PI && Math.PI <= v, M = m <= .5 * -Math.PI && .5 * -Math.PI <= v || m <= 1.5 * Math.PI && 1.5 * Math.PI <= v, _ = f / 100, C = { x: w ? -1 : Math.min(b.x * (b.x < 0 ? 1 : _), x.x * (x.x < 0 ? 1 : _)), y: M ? -1 : Math.min(b.y * (b.y < 0 ? 1 : _), x.y * (x.y < 0 ? 1 : _)) }, S = { x: y ? 1 : Math.max(b.x * (b.x > 0 ? 1 : _), x.x * (x.x > 0 ? 1 : _)), y: k ? 1 : Math.max(b.y * (b.y > 0 ? 1 : _), x.y * (x.y > 0 ? 1 : _)) }, P = { width: .5 * (S.x - C.x), height: .5 * (S.y - C.y) }; d = Math.min(s / P.width, l / P.height), u = { x: -.5 * (S.x + C.x), y: -.5 * (S.y + C.y) } } for (e = 0, i = c.length; e < i; ++e)c[e]._options = n._resolveElementOptions(c[e], e); for (a.borderWidth = n.getMaxBorderWidth(), a.outerRadius = Math.max((d - a.borderWidth) / 2, 0), a.innerRadius = Math.max(f ? a.outerRadius / 100 * f : 0, 0), a.radiusLength = (a.outerRadius - a.innerRadius) / (n._getVisibleDatasetWeightTotal() || 1), a.offsetX = u.x * a.outerRadius, a.offsetY = u.y * a.outerRadius, h.total = n.calculateTotal(), n.outerRadius = a.outerRadius - a.radiusLength * n._getRingWeightOffset(n.index), n.innerRadius = Math.max(n.outerRadius - a.radiusLength * p, 0), e = 0, i = c.length; e < i; ++e)n.updateElement(c[e], e, t) }, updateElement: function (t, e, i) { var n = this, a = n.chart, o = a.chartArea, r = a.options, s = r.animation, l = (o.left + o.right) / 2, d = (o.top + o.bottom) / 2, u = r.rotation, h = r.rotation, c = n.getDataset(), f = i && s.animateRotate ? 0 : t.hidden ? 0 : n.calculateCircumference(c.data[e]) * (r.circumference / (2 * Math.PI)), g = i && s.animateScale ? 0 : n.innerRadius, p = i && s.animateScale ? 0 : n.outerRadius, m = t._options || {}; ut.extend(t, { _datasetIndex: n.index, _index: e, _model: { backgroundColor: m.backgroundColor, borderColor: m.borderColor, borderWidth: m.borderWidth, borderAlign: m.borderAlign, x: l + a.offsetX, y: d + a.offsetY, startAngle: u, endAngle: h, circumference: f, outerRadius: p, innerRadius: g, label: ut.valueAtIndexOrDefault(c.label, e, a.data.labels[e]) } }); var v = t._model; i && s.animateRotate || (v.startAngle = 0 === e ? r.rotation : n.getMeta().data[e - 1]._model.endAngle, v.endAngle = v.startAngle + v.circumference), t.pivot() }, calculateTotal: function () { var t, e = this.getDataset(), i = this.getMeta(), n = 0; return ut.each(i.data, function (i, a) { t = e.data[a], isNaN(t) || i.hidden || (n += Math.abs(t)) }), n }, calculateCircumference: function (t) { var e = this.getMeta().total; return e > 0 && !isNaN(t) ? 2 * Math.PI * (Math.abs(t) / e) : 0 }, getMaxBorderWidth: function (t) { var e, i, n, a, o, r, s, l, d = 0, u = this.chart; if (!t) for (e = 0, i = u.data.datasets.length; e < i; ++e)if (u.isDatasetVisible(e)) { t = (n = u.getDatasetMeta(e)).data, e !== this.index && (o = n.controller); break } if (!t) return 0; for (e = 0, i = t.length; e < i; ++e)a = t[e], "inner" !== (r = o ? o._resolveElementOptions(a, e) : a._options).borderAlign && (s = r.borderWidth, d = (l = r.hoverBorderWidth) > (d = s > d ? s : d) ? l : d); return d }, setHoverStyle: function (t) { var e = t._model, i = t._options, n = ut.getHoverColor; t.$previousStyle = { backgroundColor: e.backgroundColor, borderColor: e.borderColor, borderWidth: e.borderWidth }, e.backgroundColor = Zt(i.hoverBackgroundColor, n(i.backgroundColor)), e.borderColor = Zt(i.hoverBorderColor, n(i.borderColor)), e.borderWidth = Zt(i.hoverBorderWidth, i.borderWidth) }, _resolveElementOptions: function (t, e) { var i, n, a, o = this.chart, r = this.getDataset(), s = t.custom || {}, l = o.options.elements.arc, d = {}, u = { chart: o, dataIndex: e, dataset: r, datasetIndex: this.index }, h = ["backgroundColor", "borderColor", "borderWidth", "borderAlign", "hoverBackgroundColor", "hoverBorderColor", "hoverBorderWidth"]; for (i = 0, n = h.length; i < n; ++i)d[a = h[i]] = Gt([s[a], r[a], l[a]], u, e); return d }, _getRingWeightOffset: function (t) { for (var e = 0, i = 0; i < t; ++i)this.chart.isDatasetVisible(i) && (e += this._getRingWeight(i)); return e }, _getRingWeight: function (t) { return Math.max(Zt(this.chart.data.datasets[t].weight, 1), 0) }, _getVisibleDatasetWeightTotal: function () { return this._getRingWeightOffset(this.chart.data.datasets.length) } }); st._set("horizontalBar", { hover: { mode: "index", axis: "y" }, scales: { xAxes: [{ type: "linear", position: "bottom" }], yAxes: [{ type: "category", position: "left", categoryPercentage: .8, barPercentage: .9, offset: !0, gridLines: { offsetGridLines: !0 } }] }, elements: { rectangle: { borderSkipped: "left" } }, tooltips: { mode: "index", axis: "y" } }); var Jt = Yt.extend({ _getValueScaleId: function () { return this.getMeta().xAxisID }, _getIndexScaleId: function () { return this.getMeta().yAxisID } }), Qt = ut.valueOrDefault, te = ut.options.resolve, ee = ut.canvas._isPointInArea; function ie(t, e) { return Qt(t.showLine, e.showLines) } st._set("line", { showLines: !0, spanGaps: !1, hover: { mode: "label" }, scales: { xAxes: [{ type: "category", id: "x-axis-0" }], yAxes: [{ type: "linear", id: "y-axis-0" }] } }); var ne = Mt.extend({ datasetElementType: Wt.Line, dataElementType: Wt.Point, update: function (t) { var e, i, n = this, a = n.getMeta(), o = a.dataset, r = a.data || [], s = n.getScaleForId(a.yAxisID), l = n.getDataset(), d = ie(l, n.chart.options); for (d && (void 0 !== l.tension && void 0 === l.lineTension && (l.lineTension = l.tension), o._scale = s, o._datasetIndex = n.index, o._children = r, o._model = n._resolveLineOptions(o), o.pivot()), e = 0, i = r.length; e < i; ++e)n.updateElement(r[e], e, t); for (d && 0 !== o._model.tension && n.updateBezierControlPoints(), e = 0, i = r.length; e < i; ++e)r[e].pivot() }, updateElement: function (t, e, i) { var n, a, o = this, r = o.getMeta(), s = t.custom || {}, l = o.getDataset(), d = o.index, u = l.data[e], h = o.getScaleForId(r.yAxisID), c = o.getScaleForId(r.xAxisID), f = r.dataset._model, g = o._resolvePointOptions(t, e); n = c.getPixelForValue("object" == typeof u ? u : NaN, e, d), a = i ? h.getBasePixel() : o.calculatePointY(u, e, d), t._xScale = c, t._yScale = h, t._options = g, t._datasetIndex = d, t._index = e, t._model = { x: n, y: a, skip: s.skip || isNaN(n) || isNaN(a), radius: g.radius, pointStyle: g.pointStyle, rotation: g.rotation, backgroundColor: g.backgroundColor, borderColor: g.borderColor, borderWidth: g.borderWidth, tension: Qt(s.tension, f ? f.tension : 0), steppedLine: !!f && f.steppedLine, hitRadius: g.hitRadius } }, _resolvePointOptions: function (t, e) { var i, n, a, o = this.chart, r = o.data.datasets[this.index], s = t.custom || {}, l = o.options.elements.point, d = {}, u = { chart: o, dataIndex: e, dataset: r, datasetIndex: this.index }, h = { backgroundColor: "pointBackgroundColor", borderColor: "pointBorderColor", borderWidth: "pointBorderWidth", hitRadius: "pointHitRadius", hoverBackgroundColor: "pointHoverBackgroundColor", hoverBorderColor: "pointHoverBorderColor", hoverBorderWidth: "pointHoverBorderWidth", hoverRadius: "pointHoverRadius", pointStyle: "pointStyle", radius: "pointRadius", rotation: "pointRotation" }, c = Object.keys(h); for (i = 0, n = c.length; i < n; ++i)d[a = c[i]] = te([s[a], r[h[a]], r[a], l[a]], u, e); return d }, _resolveLineOptions: function (t) { var e, i, n, a = this.chart, o = a.data.datasets[this.index], r = t.custom || {}, s = a.options, l = s.elements.line, d = {}, u = ["backgroundColor", "borderWidth", "borderColor", "borderCapStyle", "borderDash", "borderDashOffset", "borderJoinStyle", "fill", "cubicInterpolationMode"]; for (e = 0, i = u.length; e < i; ++e)d[n = u[e]] = te([r[n], o[n], l[n]]); return d.spanGaps = Qt(o.spanGaps, s.spanGaps), d.tension = Qt(o.lineTension, l.tension), d.steppedLine = te([r.steppedLine, o.steppedLine, l.stepped]), d }, calculatePointY: function (t, e, i) { var n, a, o, r = this.chart, s = this.getMeta(), l = this.getScaleForId(s.yAxisID), d = 0, u = 0; if (l.options.stacked) { for (n = 0; n < i; n++)if (a = r.data.datasets[n], "line" === (o = r.getDatasetMeta(n)).type && o.yAxisID === l.id && r.isDatasetVisible(n)) { var h = Number(l.getRightValue(a.data[e])); h < 0 ? u += h || 0 : d += h || 0 } var c = Number(l.getRightValue(t)); return c < 0 ? l.getPixelForValue(u + c) : l.getPixelForValue(d + c) } return l.getPixelForValue(t) }, updateBezierControlPoints: function () { var t, e, i, n, a = this.chart, o = this.getMeta(), r = o.dataset._model, s = a.chartArea, l = o.data || []; function d(t, e, i) { return Math.max(Math.min(t, i), e) } if (r.spanGaps && (l = l.filter(function (t) { return !t._model.skip })), "monotone" === r.cubicInterpolationMode) ut.splineCurveMonotone(l); else for (t = 0, e = l.length; t < e; ++t)i = l[t]._model, n = ut.splineCurve(ut.previousItem(l, t)._model, i, ut.nextItem(l, t)._model, r.tension), i.controlPointPreviousX = n.previous.x, i.controlPointPreviousY = n.previous.y, i.controlPointNextX = n.next.x, i.controlPointNextY = n.next.y; if (a.options.elements.line.capBezierPoints) for (t = 0, e = l.length; t < e; ++t)i = l[t]._model, ee(i, s) && (t > 0 && ee(l[t - 1]._model, s) && (i.controlPointPreviousX = d(i.controlPointPreviousX, s.left, s.right), i.controlPointPreviousY = d(i.controlPointPreviousY, s.top, s.bottom)), t < l.length - 1 && ee(l[t + 1]._model, s) && (i.controlPointNextX = d(i.controlPointNextX, s.left, s.right), i.controlPointNextY = d(i.controlPointNextY, s.top, s.bottom))) }, draw: function () { var t, e = this.chart, i = this.getMeta(), n = i.data || [], a = e.chartArea, o = n.length, r = 0; for (ie(this.getDataset(), e.options) && (t = (i.dataset._model.borderWidth || 0) / 2, ut.canvas.clipArea(e.ctx, { left: a.left, right: a.right, top: a.top - t, bottom: a.bottom + t }), i.dataset.draw(), ut.canvas.unclipArea(e.ctx)); r < o; ++r)n[r].draw(a) }, setHoverStyle: function (t) { var e = t._model, i = t._options, n = ut.getHoverColor; t.$previousStyle = { backgroundColor: e.backgroundColor, borderColor: e.borderColor, borderWidth: e.borderWidth, radius: e.radius }, e.backgroundColor = Qt(i.hoverBackgroundColor, n(i.backgroundColor)), e.borderColor = Qt(i.hoverBorderColor, n(i.borderColor)), e.borderWidth = Qt(i.hoverBorderWidth, i.borderWidth), e.radius = Qt(i.hoverRadius, i.radius) } }), ae = ut.options.resolve; st._set("polarArea", { scale: { type: "radialLinear", angleLines: { display: !1 }, gridLines: { circular: !0 }, pointLabels: { display: !1 }, ticks: { beginAtZero: !0 } }, animation: { animateRotate: !0, animateScale: !0 }, startAngle: -.5 * Math.PI, legendCallback: function (t) { var e = []; e.push('<ul class="' + t.id + '-legend">'); var i = t.data, n = i.datasets, a = i.labels; if (n.length) for (var o = 0; o < n[0].data.length; ++o)e.push('<li><span style="background-color:' + n[0].backgroundColor[o] + '"></span>'), a[o] && e.push(a[o]), e.push("</li>"); return e.push("</ul>"), e.join("") }, legend: { labels: { generateLabels: function (t) { var e = t.data; return e.labels.length && e.datasets.length ? e.labels.map(function (i, n) { var a = t.getDatasetMeta(0), o = e.datasets[0], r = a.data[n].custom || {}, s = t.options.elements.arc; return { text: i, fillStyle: ae([r.backgroundColor, o.backgroundColor, s.backgroundColor], void 0, n), strokeStyle: ae([r.borderColor, o.borderColor, s.borderColor], void 0, n), lineWidth: ae([r.borderWidth, o.borderWidth, s.borderWidth], void 0, n), hidden: isNaN(o.data[n]) || a.data[n].hidden, index: n } }) : [] } }, onClick: function (t, e) { var i, n, a, o = e.index, r = this.chart; for (i = 0, n = (r.data.datasets || []).length; i < n; ++i)(a = r.getDatasetMeta(i)).data[o].hidden = !a.data[o].hidden; r.update() } }, tooltips: { callbacks: { title: function () { return "" }, label: function (t, e) { return e.labels[t.index] + ": " + t.yLabel } } } }); var oe = Mt.extend({ dataElementType: Wt.Arc, linkScales: ut.noop, update: function (t) { var e, i, n, a = this, o = a.getDataset(), r = a.getMeta(), s = a.chart.options.startAngle || 0, l = a._starts = [], d = a._angles = [], u = r.data; for (a._updateRadius(), r.count = a.countVisibleElements(), e = 0, i = o.data.length; e < i; e++)l[e] = s, n = a._computeAngle(e), d[e] = n, s += n; for (e = 0, i = u.length; e < i; ++e)u[e]._options = a._resolveElementOptions(u[e], e), a.updateElement(u[e], e, t) }, _updateRadius: function () { var t = this, e = t.chart, i = e.chartArea, n = e.options, a = Math.min(i.right - i.left, i.bottom - i.top); e.outerRadius = Math.max(a / 2, 0), e.innerRadius = Math.max(n.cutoutPercentage ? e.outerRadius / 100 * n.cutoutPercentage : 1, 0), e.radiusLength = (e.outerRadius - e.innerRadius) / e.getVisibleDatasetCount(), t.outerRadius = e.outerRadius - e.radiusLength * t.index, t.innerRadius = t.outerRadius - e.radiusLength }, updateElement: function (t, e, i) { var n = this, a = n.chart, o = n.getDataset(), r = a.options, s = r.animation, l = a.scale, d = a.data.labels, u = l.xCenter, h = l.yCenter, c = r.startAngle, f = t.hidden ? 0 : l.getDistanceFromCenterForValue(o.data[e]), g = n._starts[e], p = g + (t.hidden ? 0 : n._angles[e]), m = s.animateScale ? 0 : l.getDistanceFromCenterForValue(o.data[e]), v = t._options || {}; ut.extend(t, { _datasetIndex: n.index, _index: e, _scale: l, _model: { backgroundColor: v.backgroundColor, borderColor: v.borderColor, borderWidth: v.borderWidth, borderAlign: v.borderAlign, x: u, y: h, innerRadius: 0, outerRadius: i ? m : f, startAngle: i && s.animateRotate ? c : g, endAngle: i && s.animateRotate ? c : p, label: ut.valueAtIndexOrDefault(d, e, d[e]) } }), t.pivot() }, countVisibleElements: function () { var t = this.getDataset(), e = this.getMeta(), i = 0; return ut.each(e.data, function (e, n) { isNaN(t.data[n]) || e.hidden || i++ }), i }, setHoverStyle: function (t) { var e = t._model, i = t._options, n = ut.getHoverColor, a = ut.valueOrDefault; t.$previousStyle = { backgroundColor: e.backgroundColor, borderColor: e.borderColor, borderWidth: e.borderWidth }, e.backgroundColor = a(i.hoverBackgroundColor, n(i.backgroundColor)), e.borderColor = a(i.hoverBorderColor, n(i.borderColor)), e.borderWidth = a(i.hoverBorderWidth, i.borderWidth) }, _resolveElementOptions: function (t, e) { var i, n, a, o = this.chart, r = this.getDataset(), s = t.custom || {}, l = o.options.elements.arc, d = {}, u = { chart: o, dataIndex: e, dataset: r, datasetIndex: this.index }, h = ["backgroundColor", "borderColor", "borderWidth", "borderAlign", "hoverBackgroundColor", "hoverBorderColor", "hoverBorderWidth"]; for (i = 0, n = h.length; i < n; ++i)d[a = h[i]] = ae([s[a], r[a], l[a]], u, e); return d }, _computeAngle: function (t) { var e = this, i = this.getMeta().count, n = e.getDataset(), a = e.getMeta(); if (isNaN(n.data[t]) || a.data[t].hidden) return 0; var o = { chart: e.chart, dataIndex: t, dataset: n, datasetIndex: e.index }; return ae([e.chart.options.elements.arc.angle, 2 * Math.PI / i], o, t) } }); st._set("pie", ut.clone(st.doughnut)), st._set("pie", { cutoutPercentage: 0 }); var re = $t, se = ut.valueOrDefault, le = ut.options.resolve; st._set("radar", { scale: { type: "radialLinear" }, elements: { line: { tension: 0 } } }); var de = Mt.extend({ datasetElementType: Wt.Line, dataElementType: Wt.Point, linkScales: ut.noop, update: function (t) { var e, i, n = this, a = n.getMeta(), o = a.dataset, r = a.data || [], s = n.chart.scale, l = n.getDataset(); for (void 0 !== l.tension && void 0 === l.lineTension && (l.lineTension = l.tension), o._scale = s, o._datasetIndex = n.index, o._children = r, o._loop = !0, o._model = n._resolveLineOptions(o), o.pivot(), e = 0, i = r.length; e < i; ++e)n.updateElement(r[e], e, t); for (n.updateBezierControlPoints(), e = 0, i = r.length; e < i; ++e)r[e].pivot() }, updateElement: function (t, e, i) { var n = this, a = t.custom || {}, o = n.getDataset(), r = n.chart.scale, s = r.getPointPositionForValue(e, o.data[e]), l = n._resolvePointOptions(t, e), d = n.getMeta().dataset._model, u = i ? r.xCenter : s.x, h = i ? r.yCenter : s.y; t._scale = r, t._options = l, t._datasetIndex = n.index, t._index = e, t._model = { x: u, y: h, skip: a.skip || isNaN(u) || isNaN(h), radius: l.radius, pointStyle: l.pointStyle, rotation: l.rotation, backgroundColor: l.backgroundColor, borderColor: l.borderColor, borderWidth: l.borderWidth, tension: se(a.tension, d ? d.tension : 0), hitRadius: l.hitRadius } }, _resolvePointOptions: function (t, e) { var i, n, a, o = this.chart, r = o.data.datasets[this.index], s = t.custom || {}, l = o.options.elements.point, d = {}, u = { chart: o, dataIndex: e, dataset: r, datasetIndex: this.index }, h = { backgroundColor: "pointBackgroundColor", borderColor: "pointBorderColor", borderWidth: "pointBorderWidth", hitRadius: "pointHitRadius", hoverBackgroundColor: "pointHoverBackgroundColor", hoverBorderColor: "pointHoverBorderColor", hoverBorderWidth: "pointHoverBorderWidth", hoverRadius: "pointHoverRadius", pointStyle: "pointStyle", radius: "pointRadius", rotation: "pointRotation" }, c = Object.keys(h); for (i = 0, n = c.length; i < n; ++i)d[a = c[i]] = le([s[a], r[h[a]], r[a], l[a]], u, e); return d }, _resolveLineOptions: function (t) { var e, i, n, a = this.chart, o = a.data.datasets[this.index], r = t.custom || {}, s = a.options.elements.line, l = {}, d = ["backgroundColor", "borderWidth", "borderColor", "borderCapStyle", "borderDash", "borderDashOffset", "borderJoinStyle", "fill"]; for (e = 0, i = d.length; e < i; ++e)l[n = d[e]] = le([r[n], o[n], s[n]]); return l.tension = se(o.lineTension, s.tension), l }, updateBezierControlPoints: function () { var t, e, i, n, a = this.getMeta(), o = this.chart.chartArea, r = a.data || []; function s(t, e, i) { return Math.max(Math.min(t, i), e) } for (t = 0, e = r.length; t < e; ++t)i = r[t]._model, n = ut.splineCurve(ut.previousItem(r, t, !0)._model, i, ut.nextItem(r, t, !0)._model, i.tension), i.controlPointPreviousX = s(n.previous.x, o.left, o.right), i.controlPointPreviousY = s(n.previous.y, o.top, o.bottom), i.controlPointNextX = s(n.next.x, o.left, o.right), i.controlPointNextY = s(n.next.y, o.top, o.bottom) }, setHoverStyle: function (t) { var e = t._model, i = t._options, n = ut.getHoverColor; t.$previousStyle = { backgroundColor: e.backgroundColor, borderColor: e.borderColor, borderWidth: e.borderWidth, radius: e.radius }, e.backgroundColor = se(i.hoverBackgroundColor, n(i.backgroundColor)), e.borderColor = se(i.hoverBorderColor, n(i.borderColor)), e.borderWidth = se(i.hoverBorderWidth, i.borderWidth), e.radius = se(i.hoverRadius, i.radius) } }); st._set("scatter", { hover: { mode: "single" }, scales: { xAxes: [{ id: "x-axis-1", type: "linear", position: "bottom" }], yAxes: [{ id: "y-axis-1", type: "linear", position: "left" }] }, showLines: !1, tooltips: { callbacks: { title: function () { return "" }, label: function (t) { return "(" + t.xLabel + ", " + t.yLabel + ")" } } } }); var ue = { bar: Yt, bubble: Kt, doughnut: $t, horizontalBar: Jt, line: ne, polarArea: oe, pie: re, radar: de, scatter: ne }; function he(t, e) { return t.native ? { x: t.x, y: t.y } : ut.getRelativePosition(t, e) } function ce(t, e) { var i, n, a, o, r; for (n = 0, o = t.data.datasets.length; n < o; ++n)if (t.isDatasetVisible(n)) for (a = 0, r = (i = t.getDatasetMeta(n)).data.length; a < r; ++a) { var s = i.data[a]; s._view.skip || e(s) } } function fe(t, e) { var i = []; return ce(t, function (t) { t.inRange(e.x, e.y) && i.push(t) }), i } function ge(t, e, i, n) { var a = Number.POSITIVE_INFINITY, o = []; return ce(t, function (t) { if (!i || t.inRange(e.x, e.y)) { var r = t.getCenterPoint(), s = n(e, r); s < a ? (o = [t], a = s) : s === a && o.push(t) } }), o } function pe(t) { var e = -1 !== t.indexOf("x"), i = -1 !== t.indexOf("y"); return function (t, n) { var a = e ? Math.abs(t.x - n.x) : 0, o = i ? Math.abs(t.y - n.y) : 0; return Math.sqrt(Math.pow(a, 2) + Math.pow(o, 2)) } } function me(t, e, i) { var n = he(e, t); i.axis = i.axis || "x"; var a = pe(i.axis), o = i.intersect ? fe(t, n) : ge(t, n, !1, a), r = []; return o.length ? (t.data.datasets.forEach(function (e, i) { if (t.isDatasetVisible(i)) { var n = t.getDatasetMeta(i).data[o[0]._index]; n && !n._view.skip && r.push(n) } }), r) : [] } var ve = { modes: { single: function (t, e) { var i = he(e, t), n = []; return ce(t, function (t) { if (t.inRange(i.x, i.y)) return n.push(t), n }), n.slice(0, 1) }, label: me, index: me, dataset: function (t, e, i) { var n = he(e, t); i.axis = i.axis || "xy"; var a = pe(i.axis), o = i.intersect ? fe(t, n) : ge(t, n, !1, a); return o.length > 0 && (o = t.getDatasetMeta(o[0]._datasetIndex).data), o }, "x-axis": function (t, e) { return me(t, e, { intersect: !1 }) }, point: function (t, e) { return fe(t, he(e, t)) }, nearest: function (t, e, i) { var n = he(e, t); i.axis = i.axis || "xy"; var a = pe(i.axis); return ge(t, n, i.intersect, a) }, x: function (t, e, i) { var n = he(e, t), a = [], o = !1; return ce(t, function (t) { t.inXRange(n.x) && a.push(t), t.inRange(n.x, n.y) && (o = !0) }), i.intersect && !o && (a = []), a }, y: function (t, e, i) { var n = he(e, t), a = [], o = !1; return ce(t, function (t) { t.inYRange(n.y) && a.push(t), t.inRange(n.x, n.y) && (o = !0) }), i.intersect && !o && (a = []), a } } }; function be(t, e) { return ut.where(t, function (t) { return t.position === e }) } function xe(t, e) { t.forEach(function (t, e) { return t._tmpIndex_ = e, t }), t.sort(function (t, i) { var n = e ? i : t, a = e ? t : i; return n.weight === a.weight ? n._tmpIndex_ - a._tmpIndex_ : n.weight - a.weight }), t.forEach(function (t) { delete t._tmpIndex_ }) } function ye(t, e) { ut.each(t, function (t) { e[t.position] += t.isHorizontal() ? t.height : t.width }) } st._set("global", { layout: { padding: { top: 0, right: 0, bottom: 0, left: 0 } } }); var ke = { defaults: {}, addBox: function (t, e) { t.boxes || (t.boxes = []), e.fullWidth = e.fullWidth || !1, e.position = e.position || "top", e.weight = e.weight || 0, t.boxes.push(e) }, removeBox: function (t, e) { var i = t.boxes ? t.boxes.indexOf(e) : -1; -1 !== i && t.boxes.splice(i, 1) }, configure: function (t, e, i) { for (var n, a = ["fullWidth", "position", "weight"], o = a.length, r = 0; r < o; ++r)n = a[r], i.hasOwnProperty(n) && (e[n] = i[n]) }, update: function (t, e, i) { if (t) { var n = t.options.layout || {}, a = ut.options.toPadding(n.padding), o = a.left, r = a.right, s = a.top, l = a.bottom, d = be(t.boxes, "left"), u = be(t.boxes, "right"), h = be(t.boxes, "top"), c = be(t.boxes, "bottom"), f = be(t.boxes, "chartArea"); xe(d, !0), xe(u, !1), xe(h, !0), xe(c, !1); var g, p = d.concat(u), m = h.concat(c), v = p.concat(m), b = e - o - r, x = i - s - l, y = (e - b / 2) / p.length, k = b, w = x, M = { top: s, left: o, bottom: l, right: r }, _ = []; ut.each(v, function (t) { var e, i = t.isHorizontal(); i ? (e = t.update(t.fullWidth ? b : k, x / 2), w -= e.height) : (e = t.update(y, w), k -= e.width), _.push({ horizontal: i, width: e.width, box: t }) }), g = function (t) { var e = 0, i = 0, n = 0, a = 0; return ut.each(t, function (t) { if (t.getPadding) { var o = t.getPadding(); e = Math.max(e, o.top), i = Math.max(i, o.left), n = Math.max(n, o.bottom), a = Math.max(a, o.right) } }), { top: e, left: i, bottom: n, right: a } }(v), ut.each(p, T), ye(p, M), ut.each(m, T), ye(m, M), ut.each(p, function (t) { var e = ut.findNextWhere(_, function (e) { return e.box === t }), i = { left: 0, right: 0, top: M.top, bottom: M.bottom }; e && t.update(e.width, w, i) }), ye(v, M = { top: s, left: o, bottom: l, right: r }); var C = Math.max(g.left - M.left, 0); M.left += C, M.right += Math.max(g.right - M.right, 0); var S = Math.max(g.top - M.top, 0); M.top += S, M.bottom += Math.max(g.bottom - M.bottom, 0); var P = i - M.top - M.bottom, I = e - M.left - M.right; I === k && P === w || (ut.each(p, function (t) { t.height = P }), ut.each(m, function (t) { t.fullWidth || (t.width = I) }), w = P, k = I); var A = o + C, D = s + S; ut.each(d.concat(h), F), A += k, D += w, ut.each(u, F), ut.each(c, F), t.chartArea = { left: M.left, top: M.top, right: M.left + k, bottom: M.top + w }, ut.each(f, function (e) { e.left = t.chartArea.left, e.top = t.chartArea.top, e.right = t.chartArea.right, e.bottom = t.chartArea.bottom, e.update(k, w) }) } function T(t) { var e = ut.findNextWhere(_, function (e) { return e.box === t }); if (e) if (e.horizontal) { var i = { left: Math.max(M.left, g.left), right: Math.max(M.right, g.right), top: 0, bottom: 0 }; t.update(t.fullWidth ? b : k, x / 2, i) } else t.update(e.width, w) } function F(t) { t.isHorizontal() ? (t.left = t.fullWidth ? o : M.left, t.right = t.fullWidth ? e - r : M.left + k, t.top = D, t.bottom = D + t.height, D = t.bottom) : (t.left = A, t.right = A + t.width, t.top = M.top, t.bottom = M.top + w, A = t.right) } } }; var we, Me = (we = Object.freeze({ default: "@keyframes chartjs-render-animation{from{opacity:.99}to{opacity:1}}.chartjs-render-monitor{animation:chartjs-render-animation 1ms}.chartjs-size-monitor,.chartjs-size-monitor-expand,.chartjs-size-monitor-shrink{position:absolute;direction:ltr;left:0;top:0;right:0;bottom:0;overflow:hidden;pointer-events:none;visibility:hidden;z-index:-1}.chartjs-size-monitor-expand>div{position:absolute;width:1000000px;height:1000000px;left:0;top:0}.chartjs-size-monitor-shrink>div{position:absolute;width:200%;height:200%;left:0;top:0}" })) && we.default || we, _e = "$chartjs", Ce = "chartjs-size-monitor", Se = "chartjs-render-monitor", Pe = "chartjs-render-animation", Ie = ["animationstart", "webkitAnimationStart"], Ae = { touchstart: "mousedown", touchmove: "mousemove", touchend: "mouseup", pointerenter: "mouseenter", pointerdown: "mousedown", pointermove: "mousemove", pointerup: "mouseup", pointerleave: "mouseout", pointerout: "mouseout" }; function De(t, e) { var i = ut.getStyle(t, e), n = i && i.match(/^(\d+)(\.\d+)?px$/); return n ? Number(n[1]) : void 0 } var Te = !!function () { var t = !1; try { var e = Object.defineProperty({}, "passive", { get: function () { t = !0 } }); window.addEventListener("e", null, e) } catch (t) { } return t }() && { passive: !0 }; function Fe(t, e, i) { t.addEventListener(e, i, Te) } function Le(t, e, i) { t.removeEventListener(e, i, Te) } function Re(t, e, i, n, a) { return { type: t, chart: e, native: a || null, x: void 0 !== i ? i : null, y: void 0 !== n ? n : null } } function Oe(t) { var e = document.createElement("div"); return e.className = t || "", e } function ze(t, e, i) { var n, a, o, r, s = t[_e] || (t[_e] = {}), l = s.resizer = function (t) { var e = Oe(Ce), i = Oe(Ce + "-expand"), n = Oe(Ce + "-shrink"); i.appendChild(Oe()), n.appendChild(Oe()), e.appendChild(i), e.appendChild(n), e._reset = function () { i.scrollLeft = 1e6, i.scrollTop = 1e6, n.scrollLeft = 1e6, n.scrollTop = 1e6 }; var a = function () { e._reset(), t() }; return Fe(i, "scroll", a.bind(i, "expand")), Fe(n, "scroll", a.bind(n, "shrink")), e }((n = function () { if (s.resizer) { var n = i.options.maintainAspectRatio && t.parentNode, a = n ? n.clientWidth : 0; e(Re("resize", i)), n && n.clientWidth < a && i.canvas && e(Re("resize", i)) } }, o = !1, r = [], function () { r = Array.prototype.slice.call(arguments), a = a || this, o || (o = !0, ut.requestAnimFrame.call(window, function () { o = !1, n.apply(a, r) })) })); !function (t, e) { var i = t[_e] || (t[_e] = {}), n = i.renderProxy = function (t) { t.animationName === Pe && e() }; ut.each(Ie, function (e) { Fe(t, e, n) }), i.reflow = !!t.offsetParent, t.classList.add(Se) }(t, function () { if (s.resizer) { var e = t.parentNode; e && e !== l.parentNode && e.insertBefore(l, e.firstChild), l._reset() } }) } function Be(t) { var e = t[_e] || {}, i = e.resizer; delete e.resizer, function (t) { var e = t[_e] || {}, i = e.renderProxy; i && (ut.each(Ie, function (e) { Le(t, e, i) }), delete e.renderProxy), t.classList.remove(Se) }(t), i && i.parentNode && i.parentNode.removeChild(i) } var Ne = { disableCSSInjection: !1, _enabled: "undefined" != typeof window && "undefined" != typeof document, _ensureLoaded: function () { var t, e, i; this._loaded || (this._loaded = !0, this.disableCSSInjection || (e = Me, i = (t = this)._style || document.createElement("style"), t._style || (t._style = i, e = "/* Chart.js */\n" + e, i.setAttribute("type", "text/css"), document.getElementsByTagName("head")[0].appendChild(i)), i.appendChild(document.createTextNode(e)))) }, acquireContext: function (t, e) { "string" == typeof t ? t = document.getElementById(t) : t.length && (t = t[0]), t && t.canvas && (t = t.canvas); var i = t && t.getContext && t.getContext("2d"); return this._ensureLoaded(), i && i.canvas === t ? (function (t, e) { var i = t.style, n = t.getAttribute("height"), a = t.getAttribute("width"); if (t[_e] = { initial: { height: n, width: a, style: { display: i.display, height: i.height, width: i.width } } }, i.display = i.display || "block", null === a || "" === a) { var o = De(t, "width"); void 0 !== o && (t.width = o) } if (null === n || "" === n) if ("" === t.style.height) t.height = t.width / (e.options.aspectRatio || 2); else { var r = De(t, "height"); void 0 !== o && (t.height = r) } }(t, e), i) : null }, releaseContext: function (t) { var e = t.canvas; if (e[_e]) { var i = e[_e].initial;["height", "width"].forEach(function (t) { var n = i[t]; ut.isNullOrUndef(n) ? e.removeAttribute(t) : e.setAttribute(t, n) }), ut.each(i.style || {}, function (t, i) { e.style[i] = t }), e.width = e.width, delete e[_e] } }, addEventListener: function (t, e, i) { var n = t.canvas; if ("resize" !== e) { var a = i[_e] || (i[_e] = {}); Fe(n, e, (a.proxies || (a.proxies = {}))[t.id + "_" + e] = function (e) { i(function (t, e) { var i = Ae[t.type] || t.type, n = ut.getRelativePosition(t, e); return Re(i, e, n.x, n.y, t) }(e, t)) }) } else ze(n, i, t) }, removeEventListener: function (t, e, i) { var n = t.canvas; if ("resize" !== e) { var a = ((i[_e] || {}).proxies || {})[t.id + "_" + e]; a && Le(n, e, a) } else Be(n) } }; ut.addEvent = Fe, ut.removeEvent = Le; var We = Ne._enabled ? Ne : { acquireContext: function (t) { return t && t.canvas && (t = t.canvas), t && t.getContext("2d") || null } }, Ve = ut.extend({ initialize: function () { }, acquireContext: function () { }, releaseContext: function () { }, addEventListener: function () { }, removeEventListener: function () { } }, We); st._set("global", { plugins: {} }); var Ee = { _plugins: [], _cacheId: 0, register: function (t) { var e = this._plugins;[].concat(t).forEach(function (t) { -1 === e.indexOf(t) && e.push(t) }), this._cacheId++ }, unregister: function (t) { var e = this._plugins;[].concat(t).forEach(function (t) { var i = e.indexOf(t); -1 !== i && e.splice(i, 1) }), this._cacheId++ }, clear: function () { this._plugins = [], this._cacheId++ }, count: function () { return this._plugins.length }, getAll: function () { return this._plugins }, notify: function (t, e, i) { var n, a, o, r, s, l = this.descriptors(t), d = l.length; for (n = 0; n < d; ++n)if ("function" == typeof (s = (o = (a = l[n]).plugin)[e]) && ((r = [t].concat(i || [])).push(a.options), !1 === s.apply(o, r))) return !1; return !0 }, descriptors: function (t) { var e = t.$plugins || (t.$plugins = {}); if (e.id === this._cacheId) return e.descriptors; var i = [], n = [], a = t && t.config || {}, o = a.options && a.options.plugins || {}; return this._plugins.concat(a.plugins || []).forEach(function (t) { if (-1 === i.indexOf(t)) { var e = t.id, a = o[e]; !1 !== a && (!0 === a && (a = ut.clone(st.global.plugins[e])), i.push(t), n.push({ plugin: t, options: a || {} })) } }), e.descriptors = n, e.id = this._cacheId, n }, _invalidate: function (t) { delete t.$plugins } }, He = { constructors: {}, defaults: {}, registerScaleType: function (t, e, i) { this.constructors[t] = e, this.defaults[t] = ut.clone(i) }, getScaleConstructor: function (t) { return this.constructors.hasOwnProperty(t) ? this.constructors[t] : void 0 }, getScaleDefaults: function (t) { return this.defaults.hasOwnProperty(t) ? ut.merge({}, [st.scale, this.defaults[t]]) : {} }, updateScaleDefaults: function (t, e) { this.defaults.hasOwnProperty(t) && (this.defaults[t] = ut.extend(this.defaults[t], e)) }, addScalesToLayout: function (t) { ut.each(t.scales, function (e) { e.fullWidth = e.options.fullWidth, e.position = e.options.position, e.weight = e.options.weight, ke.addBox(t, e) }) } }, je = ut.valueOrDefault; st._set("global", { tooltips: { enabled: !0, custom: null, mode: "nearest", position: "average", intersect: !0, backgroundColor: "rgba(0,0,0,0.8)", titleFontStyle: "bold", titleSpacing: 2, titleMarginBottom: 6, titleFontColor: "#fff", titleAlign: "left", bodySpacing: 2, bodyFontColor: "#fff", bodyAlign: "left", footerFontStyle: "bold", footerSpacing: 2, footerMarginTop: 6, footerFontColor: "#fff", footerAlign: "left", yPadding: 6, xPadding: 6, caretPadding: 2, caretSize: 5, cornerRadius: 6, multiKeyBackground: "#fff", displayColors: !0, borderColor: "rgba(0,0,0,0)", borderWidth: 0, callbacks: { beforeTitle: ut.noop, title: function (t, e) { var i = "", n = e.labels, a = n ? n.length : 0; if (t.length > 0) { var o = t[0]; o.label ? i = o.label : o.xLabel ? i = o.xLabel : a > 0 && o.index < a && (i = n[o.index]) } return i }, afterTitle: ut.noop, beforeBody: ut.noop, beforeLabel: ut.noop, label: function (t, e) { var i = e.datasets[t.datasetIndex].label || ""; return i && (i += ": "), ut.isNullOrUndef(t.value) ? i += t.yLabel : i += t.value, i }, labelColor: function (t, e) { var i = e.getDatasetMeta(t.datasetIndex).data[t.index]._view; return { borderColor: i.borderColor, backgroundColor: i.backgroundColor } }, labelTextColor: function () { return this._options.bodyFontColor }, afterLabel: ut.noop, afterBody: ut.noop, beforeFooter: ut.noop, footer: ut.noop, afterFooter: ut.noop } } }); var qe = { average: function (t) { if (!t.length) return !1; var e, i, n = 0, a = 0, o = 0; for (e = 0, i = t.length; e < i; ++e) { var r = t[e]; if (r && r.hasValue()) { var s = r.tooltipPosition(); n += s.x, a += s.y, ++o } } return { x: n / o, y: a / o } }, nearest: function (t, e) { var i, n, a, o = e.x, r = e.y, s = Number.POSITIVE_INFINITY; for (i = 0, n = t.length; i < n; ++i) { var l = t[i]; if (l && l.hasValue()) { var d = l.getCenterPoint(), u = ut.distanceBetweenPoints(e, d); u < s && (s = u, a = l) } } if (a) { var h = a.tooltipPosition(); o = h.x, r = h.y } return { x: o, y: r } } }; function Ye(t, e) { return e && (ut.isArray(e) ? Array.prototype.push.apply(t, e) : t.push(e)), t } function Ue(t) { return ("string" == typeof t || t instanceof String) && t.indexOf("\n") > -1 ? t.split("\n") : t } function Xe(t) { var e = st.global; return { xPadding: t.xPadding, yPadding: t.yPadding, xAlign: t.xAlign, yAlign: t.yAlign, bodyFontColor: t.bodyFontColor, _bodyFontFamily: je(t.bodyFontFamily, e.defaultFontFamily), _bodyFontStyle: je(t.bodyFontStyle, e.defaultFontStyle), _bodyAlign: t.bodyAlign, bodyFontSize: je(t.bodyFontSize, e.defaultFontSize), bodySpacing: t.bodySpacing, titleFontColor: t.titleFontColor, _titleFontFamily: je(t.titleFontFamily, e.defaultFontFamily), _titleFontStyle: je(t.titleFontStyle, e.defaultFontStyle), titleFontSize: je(t.titleFontSize, e.defaultFontSize), _titleAlign: t.titleAlign, titleSpacing: t.titleSpacing, titleMarginBottom: t.titleMarginBottom, footerFontColor: t.footerFontColor, _footerFontFamily: je(t.footerFontFamily, e.defaultFontFamily), _footerFontStyle: je(t.footerFontStyle, e.defaultFontStyle), footerFontSize: je(t.footerFontSize, e.defaultFontSize), _footerAlign: t.footerAlign, footerSpacing: t.footerSpacing, footerMarginTop: t.footerMarginTop, caretSize: t.caretSize, cornerRadius: t.cornerRadius, backgroundColor: t.backgroundColor, opacity: 0, legendColorBackground: t.multiKeyBackground, displayColors: t.displayColors, borderColor: t.borderColor, borderWidth: t.borderWidth } } function Ke(t, e) { return "center" === e ? t.x + t.width / 2 : "right" === e ? t.x + t.width - t.xPadding : t.x + t.xPadding } function Ge(t) { return Ye([], Ue(t)) } var Ze = pt.extend({ initialize: function () { this._model = Xe(this._options), this._lastActive = [] }, getTitle: function () { var t = this._options.callbacks, e = t.beforeTitle.apply(this, arguments), i = t.title.apply(this, arguments), n = t.afterTitle.apply(this, arguments), a = []; return a = Ye(a, Ue(e)), a = Ye(a, Ue(i)), a = Ye(a, Ue(n)) }, getBeforeBody: function () { return Ge(this._options.callbacks.beforeBody.apply(this, arguments)) }, getBody: function (t, e) { var i = this, n = i._options.callbacks, a = []; return ut.each(t, function (t) { var o = { before: [], lines: [], after: [] }; Ye(o.before, Ue(n.beforeLabel.call(i, t, e))), Ye(o.lines, n.label.call(i, t, e)), Ye(o.after, Ue(n.afterLabel.call(i, t, e))), a.push(o) }), a }, getAfterBody: function () { return Ge(this._options.callbacks.afterBody.apply(this, arguments)) }, getFooter: function () { var t = this._options.callbacks, e = t.beforeFooter.apply(this, arguments), i = t.footer.apply(this, arguments), n = t.afterFooter.apply(this, arguments), a = []; return a = Ye(a, Ue(e)), a = Ye(a, Ue(i)), a = Ye(a, Ue(n)) }, update: function (t) { var e, i, n, a, o, r, s, l, d, u, h = this, c = h._options, f = h._model, g = h._model = Xe(c), p = h._active, m = h._data, v = { xAlign: f.xAlign, yAlign: f.yAlign }, b = { x: f.x, y: f.y }, x = { width: f.width, height: f.height }, y = { x: f.caretX, y: f.caretY }; if (p.length) { g.opacity = 1; var k = [], w = []; y = qe[c.position].call(h, p, h._eventPosition); var M = []; for (e = 0, i = p.length; e < i; ++e)M.push((n = p[e], a = void 0, o = void 0, r = void 0, s = void 0, l = void 0, d = void 0, u = void 0, a = n._xScale, o = n._yScale || n._scale, r = n._index, s = n._datasetIndex, l = n._chart.getDatasetMeta(s).controller, d = l._getIndexScale(), u = l._getValueScale(), { xLabel: a ? a.getLabelForIndex(r, s) : "", yLabel: o ? o.getLabelForIndex(r, s) : "", label: d ? "" + d.getLabelForIndex(r, s) : "", value: u ? "" + u.getLabelForIndex(r, s) : "", index: r, datasetIndex: s, x: n._model.x, y: n._model.y })); c.filter && (M = M.filter(function (t) { return c.filter(t, m) })), c.itemSort && (M = M.sort(function (t, e) { return c.itemSort(t, e, m) })), ut.each(M, function (t) { k.push(c.callbacks.labelColor.call(h, t, h._chart)), w.push(c.callbacks.labelTextColor.call(h, t, h._chart)) }), g.title = h.getTitle(M, m), g.beforeBody = h.getBeforeBody(M, m), g.body = h.getBody(M, m), g.afterBody = h.getAfterBody(M, m), g.footer = h.getFooter(M, m), g.x = y.x, g.y = y.y, g.caretPadding = c.caretPadding, g.labelColors = k, g.labelTextColors = w, g.dataPoints = M, x = function (t, e) { var i = t._chart.ctx, n = 2 * e.yPadding, a = 0, o = e.body, r = o.reduce(function (t, e) { return t + e.before.length + e.lines.length + e.after.length }, 0); r += e.beforeBody.length + e.afterBody.length; var s = e.title.length, l = e.footer.length, d = e.titleFontSize, u = e.bodyFontSize, h = e.footerFontSize; n += s * d, n += s ? (s - 1) * e.titleSpacing : 0, n += s ? e.titleMarginBottom : 0, n += r * u, n += r ? (r - 1) * e.bodySpacing : 0, n += l ? e.footerMarginTop : 0, n += l * h, n += l ? (l - 1) * e.footerSpacing : 0; var c = 0, f = function (t) { a = Math.max(a, i.measureText(t).width + c) }; return i.font = ut.fontString(d, e._titleFontStyle, e._titleFontFamily), ut.each(e.title, f), i.font = ut.fontString(u, e._bodyFontStyle, e._bodyFontFamily), ut.each(e.beforeBody.concat(e.afterBody), f), c = e.displayColors ? u + 2 : 0, ut.each(o, function (t) { ut.each(t.before, f), ut.each(t.lines, f), ut.each(t.after, f) }), c = 0, i.font = ut.fontString(h, e._footerFontStyle, e._footerFontFamily), ut.each(e.footer, f), { width: a += 2 * e.xPadding, height: n } }(this, g), b = function (t, e, i, n) { var a = t.x, o = t.y, r = t.caretSize, s = t.caretPadding, l = t.cornerRadius, d = i.xAlign, u = i.yAlign, h = r + s, c = l + s; return "right" === d ? a -= e.width : "center" === d && ((a -= e.width / 2) + e.width > n.width && (a = n.width - e.width), a < 0 && (a = 0)), "top" === u ? o += h : o -= "bottom" === u ? e.height + h : e.height / 2, "center" === u ? "left" === d ? a += h : "right" === d && (a -= h) : "left" === d ? a -= c : "right" === d && (a += c), { x: a, y: o } }(g, x, v = function (t, e) { var i, n, a, o, r, s = t._model, l = t._chart, d = t._chart.chartArea, u = "center", h = "center"; s.y < e.height ? h = "top" : s.y > l.height - e.height && (h = "bottom"); var c = (d.left + d.right) / 2, f = (d.top + d.bottom) / 2; "center" === h ? (i = function (t) { return t <= c }, n = function (t) { return t > c }) : (i = function (t) { return t <= e.width / 2 }, n = function (t) { return t >= l.width - e.width / 2 }), a = function (t) { return t + e.width + s.caretSize + s.caretPadding > l.width }, o = function (t) { return t - e.width - s.caretSize - s.caretPadding < 0 }, r = function (t) { return t <= f ? "top" : "bottom" }, i(s.x) ? (u = "left", a(s.x) && (u = "center", h = r(s.y))) : n(s.x) && (u = "right", o(s.x) && (u = "center", h = r(s.y))); var g = t._options; return { xAlign: g.xAlign ? g.xAlign : u, yAlign: g.yAlign ? g.yAlign : h } }(this, x), h._chart) } else g.opacity = 0; return g.xAlign = v.xAlign, g.yAlign = v.yAlign, g.x = b.x, g.y = b.y, g.width = x.width, g.height = x.height, g.caretX = y.x, g.caretY = y.y, h._model = g, t && c.custom && c.custom.call(h, g), h }, drawCaret: function (t, e) { var i = this._chart.ctx, n = this._view, a = this.getCaretPosition(t, e, n); i.lineTo(a.x1, a.y1), i.lineTo(a.x2, a.y2), i.lineTo(a.x3, a.y3) }, getCaretPosition: function (t, e, i) { var n, a, o, r, s, l, d = i.caretSize, u = i.cornerRadius, h = i.xAlign, c = i.yAlign, f = t.x, g = t.y, p = e.width, m = e.height; if ("center" === c) s = g + m / 2, "left" === h ? (a = (n = f) - d, o = n, r = s + d, l = s - d) : (a = (n = f + p) + d, o = n, r = s - d, l = s + d); else if ("left" === h ? (n = (a = f + u + d) - d, o = a + d) : "right" === h ? (n = (a = f + p - u - d) - d, o = a + d) : (n = (a = i.caretX) - d, o = a + d), "top" === c) s = (r = g) - d, l = r; else { s = (r = g + m) + d, l = r; var v = o; o = n, n = v } return { x1: n, x2: a, x3: o, y1: r, y2: s, y3: l } }, drawTitle: function (t, e, i) { var n = e.title; if (n.length) { t.x = Ke(e, e._titleAlign), i.textAlign = e._titleAlign, i.textBaseline = "top"; var a, o, r = e.titleFontSize, s = e.titleSpacing; for (i.fillStyle = e.titleFontColor, i.font = ut.fontString(r, e._titleFontStyle, e._titleFontFamily), a = 0, o = n.length; a < o; ++a)i.fillText(n[a], t.x, t.y), t.y += r + s, a + 1 === n.length && (t.y += e.titleMarginBottom - s) } }, drawBody: function (t, e, i) { var n, a = e.bodyFontSize, o = e.bodySpacing, r = e._bodyAlign, s = e.body, l = e.displayColors, d = e.labelColors, u = 0, h = l ? Ke(e, "left") : 0; i.textAlign = r, i.textBaseline = "top", i.font = ut.fontString(a, e._bodyFontStyle, e._bodyFontFamily), t.x = Ke(e, r); var c = function (e) { i.fillText(e, t.x + u, t.y), t.y += a + o }; i.fillStyle = e.bodyFontColor, ut.each(e.beforeBody, c), u = l && "right" !== r ? "center" === r ? a / 2 + 1 : a + 2 : 0, ut.each(s, function (o, r) { n = e.labelTextColors[r], i.fillStyle = n, ut.each(o.before, c), ut.each(o.lines, function (o) { l && (i.fillStyle = e.legendColorBackground, i.fillRect(h, t.y, a, a), i.lineWidth = 1, i.strokeStyle = d[r].borderColor, i.strokeRect(h, t.y, a, a), i.fillStyle = d[r].backgroundColor, i.fillRect(h + 1, t.y + 1, a - 2, a - 2), i.fillStyle = n), c(o) }), ut.each(o.after, c) }), u = 0, ut.each(e.afterBody, c), t.y -= o }, drawFooter: function (t, e, i) { var n = e.footer; n.length && (t.x = Ke(e, e._footerAlign), t.y += e.footerMarginTop, i.textAlign = e._footerAlign, i.textBaseline = "top", i.fillStyle = e.footerFontColor, i.font = ut.fontString(e.footerFontSize, e._footerFontStyle, e._footerFontFamily), ut.each(n, function (n) { i.fillText(n, t.x, t.y), t.y += e.footerFontSize + e.footerSpacing })) }, drawBackground: function (t, e, i, n) { i.fillStyle = e.backgroundColor, i.strokeStyle = e.borderColor, i.lineWidth = e.borderWidth; var a = e.xAlign, o = e.yAlign, r = t.x, s = t.y, l = n.width, d = n.height, u = e.cornerRadius; i.beginPath(), i.moveTo(r + u, s), "top" === o && this.drawCaret(t, n), i.lineTo(r + l - u, s), i.quadraticCurveTo(r + l, s, r + l, s + u), "center" === o && "right" === a && this.drawCaret(t, n), i.lineTo(r + l, s + d - u), i.quadraticCurveTo(r + l, s + d, r + l - u, s + d), "bottom" === o && this.drawCaret(t, n), i.lineTo(r + u, s + d), i.quadraticCurveTo(r, s + d, r, s + d - u), "center" === o && "left" === a && this.drawCaret(t, n), i.lineTo(r, s + u), i.quadraticCurveTo(r, s, r + u, s), i.closePath(), i.fill(), e.borderWidth > 0 && i.stroke() }, draw: function () { var t = this._chart.ctx, e = this._view; if (0 !== e.opacity) { var i = { width: e.width, height: e.height }, n = { x: e.x, y: e.y }, a = Math.abs(e.opacity < .001) ? 0 : e.opacity, o = e.title.length || e.beforeBody.length || e.body.length || e.afterBody.length || e.footer.length; this._options.enabled && o && (t.save(), t.globalAlpha = a, this.drawBackground(n, e, t, i), n.y += e.yPadding, this.drawTitle(n, e, t), this.drawBody(n, e, t), this.drawFooter(n, e, t), t.restore()) } }, handleEvent: function (t) { var e, i = this, n = i._options; return i._lastActive = i._lastActive || [], "mouseout" === t.type ? i._active = [] : i._active = i._chart.getElementsAtEventForMode(t, n.mode, n), (e = !ut.arrayEquals(i._active, i._lastActive)) && (i._lastActive = i._active, (n.enabled || n.custom) && (i._eventPosition = { x: t.x, y: t.y }, i.update(!0), i.pivot())), e } }), $e = qe, Je = Ze; Je.positioners = $e; var Qe = ut.valueOrDefault; function ti() { return ut.merge({}, [].slice.call(arguments), { merger: function (t, e, i, n) { if ("xAxes" === t || "yAxes" === t) { var a, o, r, s = i[t].length; for (e[t] || (e[t] = []), a = 0; a < s; ++a)r = i[t][a], o = Qe(r.type, "xAxes" === t ? "category" : "linear"), a >= e[t].length && e[t].push({}), !e[t][a].type || r.type && r.type !== e[t][a].type ? ut.merge(e[t][a], [He.getScaleDefaults(o), r]) : ut.merge(e[t][a], r) } else ut._merger(t, e, i, n) } }) } function ei() { return ut.merge({}, [].slice.call(arguments), { merger: function (t, e, i, n) { var a = e[t] || {}, o = i[t]; "scales" === t ? e[t] = ti(a, o) : "scale" === t ? e[t] = ut.merge(a, [He.getScaleDefaults(o.type), o]) : ut._merger(t, e, i, n) } }) } function ii(t) { return "top" === t || "bottom" === t } st._set("global", { elements: {}, events: ["mousemove", "mouseout", "click", "touchstart", "touchmove"], hover: { onHover: null, mode: "nearest", intersect: !0, animationDuration: 400 }, onClick: null, maintainAspectRatio: !0, responsive: !0, responsiveAnimationDuration: 0 }); var ni = function (t, e) { return this.construct(t, e), this }; ut.extend(ni.prototype, { construct: function (t, e) { var i = this; e = function (t) { var e = (t = t || {}).data = t.data || {}; return e.datasets = e.datasets || [], e.labels = e.labels || [], t.options = ei(st.global, st[t.type], t.options || {}), t }(e); var n = Ve.acquireContext(t, e), a = n && n.canvas, o = a && a.height, r = a && a.width; i.id = ut.uid(), i.ctx = n, i.canvas = a, i.config = e, i.width = r, i.height = o, i.aspectRatio = o ? r / o : null, i.options = e.options, i._bufferedRender = !1, i.chart = i, i.controller = i, ni.instances[i.id] = i, Object.defineProperty(i, "data", { get: function () { return i.config.data }, set: function (t) { i.config.data = t } }), n && a ? (i.initialize(), i.update()) : console.error("Failed to create chart: can't acquire context from the given item") }, initialize: function () { var t = this; return Ee.notify(t, "beforeInit"), ut.retinaScale(t, t.options.devicePixelRatio), t.bindEvents(), t.options.responsive && t.resize(!0), t.ensureScalesHaveIDs(), t.buildOrUpdateScales(), t.initToolTip(), Ee.notify(t, "afterInit"), t }, clear: function () { return ut.canvas.clear(this), this }, stop: function () { return bt.cancelAnimation(this), this }, resize: function (t) { var e = this, i = e.options, n = e.canvas, a = i.maintainAspectRatio && e.aspectRatio || null, o = Math.max(0, Math.floor(ut.getMaximumWidth(n))), r = Math.max(0, Math.floor(a ? o / a : ut.getMaximumHeight(n))); if ((e.width !== o || e.height !== r) && (n.width = e.width = o, n.height = e.height = r, n.style.width = o + "px", n.style.height = r + "px", ut.retinaScale(e, i.devicePixelRatio), !t)) { var s = { width: o, height: r }; Ee.notify(e, "resize", [s]), i.onResize && i.onResize(e, s), e.stop(), e.update({ duration: i.responsiveAnimationDuration }) } }, ensureScalesHaveIDs: function () { var t = this.options, e = t.scales || {}, i = t.scale; ut.each(e.xAxes, function (t, e) { t.id = t.id || "x-axis-" + e }), ut.each(e.yAxes, function (t, e) { t.id = t.id || "y-axis-" + e }), i && (i.id = i.id || "scale") }, buildOrUpdateScales: function () { var t = this, e = t.options, i = t.scales || {}, n = [], a = Object.keys(i).reduce(function (t, e) { return t[e] = !1, t }, {}); e.scales && (n = n.concat((e.scales.xAxes || []).map(function (t) { return { options: t, dtype: "category", dposition: "bottom" } }), (e.scales.yAxes || []).map(function (t) { return { options: t, dtype: "linear", dposition: "left" } }))), e.scale && n.push({ options: e.scale, dtype: "radialLinear", isDefault: !0, dposition: "chartArea" }), ut.each(n, function (e) { var n = e.options, o = n.id, r = Qe(n.type, e.dtype); ii(n.position) !== ii(e.dposition) && (n.position = e.dposition), a[o] = !0; var s = null; if (o in i && i[o].type === r) (s = i[o]).options = n, s.ctx = t.ctx, s.chart = t; else { var l = He.getScaleConstructor(r); if (!l) return; s = new l({ id: o, type: r, options: n, ctx: t.ctx, chart: t }), i[s.id] = s } s.mergeTicksOptions(), e.isDefault && (t.scale = s) }), ut.each(a, function (t, e) { t || delete i[e] }), t.scales = i, He.addScalesToLayout(this) }, buildOrUpdateControllers: function () { var t = this, e = []; return ut.each(t.data.datasets, function (i, n) { var a = t.getDatasetMeta(n), o = i.type || t.config.type; if (a.type && a.type !== o && (t.destroyDatasetMeta(n), a = t.getDatasetMeta(n)), a.type = o, a.controller) a.controller.updateIndex(n), a.controller.linkScales(); else { var r = ue[a.type]; if (void 0 === r) throw new Error('"' + a.type + '" is not a chart type.'); a.controller = new r(t, n), e.push(a.controller) } }, t), e }, resetElements: function () { var t = this; ut.each(t.data.datasets, function (e, i) { t.getDatasetMeta(i).controller.reset() }, t) }, reset: function () { this.resetElements(), this.tooltip.initialize() }, update: function (t) { var e, i, n = this; if (t && "object" == typeof t || (t = { duration: t, lazy: arguments[1] }), i = (e = n).options, ut.each(e.scales, function (t) { ke.removeBox(e, t) }), i = ei(st.global, st[e.config.type], i), e.options = e.config.options = i, e.ensureScalesHaveIDs(), e.buildOrUpdateScales(), e.tooltip._options = i.tooltips, e.tooltip.initialize(), Ee._invalidate(n), !1 !== Ee.notify(n, "beforeUpdate")) { n.tooltip._data = n.data; var a = n.buildOrUpdateControllers(); ut.each(n.data.datasets, function (t, e) { n.getDatasetMeta(e).controller.buildOrUpdateElements() }, n), n.updateLayout(), n.options.animation && n.options.animation.duration && ut.each(a, function (t) { t.reset() }), n.updateDatasets(), n.tooltip.initialize(), n.lastActive = [], Ee.notify(n, "afterUpdate"), n._bufferedRender ? n._bufferedRequest = { duration: t.duration, easing: t.easing, lazy: t.lazy } : n.render(t) } }, updateLayout: function () { !1 !== Ee.notify(this, "beforeLayout") && (ke.update(this, this.width, this.height), Ee.notify(this, "afterScaleUpdate"), Ee.notify(this, "afterLayout")) }, updateDatasets: function () { if (!1 !== Ee.notify(this, "beforeDatasetsUpdate")) { for (var t = 0, e = this.data.datasets.length; t < e; ++t)this.updateDataset(t); Ee.notify(this, "afterDatasetsUpdate") } }, updateDataset: function (t) { var e = this.getDatasetMeta(t), i = { meta: e, index: t }; !1 !== Ee.notify(this, "beforeDatasetUpdate", [i]) && (e.controller.update(), Ee.notify(this, "afterDatasetUpdate", [i])) }, render: function (t) { var e = this; t && "object" == typeof t || (t = { duration: t, lazy: arguments[1] }); var i = e.options.animation, n = Qe(t.duration, i && i.duration), a = t.lazy; if (!1 !== Ee.notify(e, "beforeRender")) { var o = function (t) { Ee.notify(e, "afterRender"), ut.callback(i && i.onComplete, [t], e) }; if (i && n) { var r = new vt({ numSteps: n / 16.66, easing: t.easing || i.easing, render: function (t, e) { var i = ut.easing.effects[e.easing], n = e.currentStep, a = n / e.numSteps; t.draw(i(a), a, n) }, onAnimationProgress: i.onProgress, onAnimationComplete: o }); bt.addAnimation(e, r, n, a) } else e.draw(), o(new vt({ numSteps: 0, chart: e })); return e } }, draw: function (t) { var e = this; e.clear(), ut.isNullOrUndef(t) && (t = 1), e.transition(t), e.width <= 0 || e.height <= 0 || !1 !== Ee.notify(e, "beforeDraw", [t]) && (ut.each(e.boxes, function (t) { t.draw(e.chartArea) }, e), e.drawDatasets(t), e._drawTooltip(t), Ee.notify(e, "afterDraw", [t])) }, transition: function (t) { for (var e = 0, i = (this.data.datasets || []).length; e < i; ++e)this.isDatasetVisible(e) && this.getDatasetMeta(e).controller.transition(t); this.tooltip.transition(t) }, drawDatasets: function (t) { var e = this; if (!1 !== Ee.notify(e, "beforeDatasetsDraw", [t])) { for (var i = (e.data.datasets || []).length - 1; i >= 0; --i)e.isDatasetVisible(i) && e.drawDataset(i, t); Ee.notify(e, "afterDatasetsDraw", [t]) } }, drawDataset: function (t, e) { var i = this.getDatasetMeta(t), n = { meta: i, index: t, easingValue: e }; !1 !== Ee.notify(this, "beforeDatasetDraw", [n]) && (i.controller.draw(e), Ee.notify(this, "afterDatasetDraw", [n])) }, _drawTooltip: function (t) { var e = this.tooltip, i = { tooltip: e, easingValue: t }; !1 !== Ee.notify(this, "beforeTooltipDraw", [i]) && (e.draw(), Ee.notify(this, "afterTooltipDraw", [i])) }, getElementAtEvent: function (t) { return ve.modes.single(this, t) }, getElementsAtEvent: function (t) { return ve.modes.label(this, t, { intersect: !0 }) }, getElementsAtXAxis: function (t) { return ve.modes["x-axis"](this, t, { intersect: !0 }) }, getElementsAtEventForMode: function (t, e, i) { var n = ve.modes[e]; return "function" == typeof n ? n(this, t, i) : [] }, getDatasetAtEvent: function (t) { return ve.modes.dataset(this, t, { intersect: !0 }) }, getDatasetMeta: function (t) { var e = this.data.datasets[t]; e._meta || (e._meta = {}); var i = e._meta[this.id]; return i || (i = e._meta[this.id] = { type: null, data: [], dataset: null, controller: null, hidden: null, xAxisID: null, yAxisID: null }), i }, getVisibleDatasetCount: function () { for (var t = 0, e = 0, i = this.data.datasets.length; e < i; ++e)this.isDatasetVisible(e) && t++; return t }, isDatasetVisible: function (t) { var e = this.getDatasetMeta(t); return "boolean" == typeof e.hidden ? !e.hidden : !this.data.datasets[t].hidden }, generateLegend: function () { return this.options.legendCallback(this) }, destroyDatasetMeta: function (t) { var e = this.id, i = this.data.datasets[t], n = i._meta && i._meta[e]; n && (n.controller.destroy(), delete i._meta[e]) }, destroy: function () { var t, e, i = this, n = i.canvas; for (i.stop(), t = 0, e = i.data.datasets.length; t < e; ++t)i.destroyDatasetMeta(t); n && (i.unbindEvents(), ut.canvas.clear(i), Ve.releaseContext(i.ctx), i.canvas = null, i.ctx = null), Ee.notify(i, "destroy"), delete ni.instances[i.id] }, toBase64Image: function () { return this.canvas.toDataURL.apply(this.canvas, arguments) }, initToolTip: function () { var t = this; t.tooltip = new Je({ _chart: t, _chartInstance: t, _data: t.data, _options: t.options.tooltips }, t) }, bindEvents: function () { var t = this, e = t._listeners = {}, i = function () { t.eventHandler.apply(t, arguments) }; ut.each(t.options.events, function (n) { Ve.addEventListener(t, n, i), e[n] = i }), t.options.responsive && (i = function () { t.resize() }, Ve.addEventListener(t, "resize", i), e.resize = i) }, unbindEvents: function () { var t = this, e = t._listeners; e && (delete t._listeners, ut.each(e, function (e, i) { Ve.removeEventListener(t, i, e) })) }, updateHoverStyle: function (t, e, i) { var n, a, o, r = i ? "setHoverStyle" : "removeHoverStyle"; for (a = 0, o = t.length; a < o; ++a)(n = t[a]) && this.getDatasetMeta(n._datasetIndex).controller[r](n) }, eventHandler: function (t) { var e = this, i = e.tooltip; if (!1 !== Ee.notify(e, "beforeEvent", [t])) { e._bufferedRender = !0, e._bufferedRequest = null; var n = e.handleEvent(t); i && (n = i._start ? i.handleEvent(t) : n | i.handleEvent(t)), Ee.notify(e, "afterEvent", [t]); var a = e._bufferedRequest; return a ? e.render(a) : n && !e.animating && (e.stop(), e.render({ duration: e.options.hover.animationDuration, lazy: !0 })), e._bufferedRender = !1, e._bufferedRequest = null, e } }, handleEvent: function (t) { var e, i = this, n = i.options || {}, a = n.hover; return i.lastActive = i.lastActive || [], "mouseout" === t.type ? i.active = [] : i.active = i.getElementsAtEventForMode(t, a.mode, a), ut.callback(n.onHover || n.hover.onHover, [t.native, i.active], i), "mouseup" !== t.type && "click" !== t.type || n.onClick && n.onClick.call(i, t.native, i.active), i.lastActive.length && i.updateHoverStyle(i.lastActive, a.mode, !1), i.active.length && a.mode && i.updateHoverStyle(i.active, a.mode, !0), e = !ut.arrayEquals(i.active, i.lastActive), i.lastActive = i.active, e } }), ni.instances = {}; var ai = ni; ni.Controller = ni, ni.types = {}, ut.configMerge = ei, ut.scaleMerge = ti; function oi() { throw new Error("This method is not implemented: either no adapter can be found or an incomplete integration was provided.") } function ri(t) { this.options = t || {} } ut.extend(ri.prototype, { formats: oi, parse: oi, format: oi, add: oi, diff: oi, startOf: oi, endOf: oi, _create: function (t) { return t } }), ri.override = function (t) { ut.extend(ri.prototype, t) }; var si = { _date: ri }, li = { formatters: { values: function (t) { return ut.isArray(t) ? t : "" + t }, linear: function (t, e, i) { var n = i.length > 3 ? i[2] - i[1] : i[1] - i[0]; Math.abs(n) > 1 && t !== Math.floor(t) && (n = t - Math.floor(t)); var a = ut.log10(Math.abs(n)), o = ""; if (0 !== t) if (Math.max(Math.abs(i[0]), Math.abs(i[i.length - 1])) < 1e-4) { var r = ut.log10(Math.abs(t)); o = t.toExponential(Math.floor(r) - Math.floor(a)) } else { var s = -1 * Math.floor(a); s = Math.max(Math.min(s, 20), 0), o = t.toFixed(s) } else o = "0"; return o }, logarithmic: function (t, e, i) { var n = t / Math.pow(10, Math.floor(ut.log10(t))); return 0 === t ? "0" : 1 === n || 2 === n || 5 === n || 0 === e || e === i.length - 1 ? t.toExponential() : "" } } }, di = ut.valueOrDefault, ui = ut.valueAtIndexOrDefault; function hi(t) { var e, i, n = []; for (e = 0, i = t.length; e < i; ++e)n.push(t[e].label); return n } function ci(t, e, i) { return ut.isArray(e) ? ut.longestText(t, i, e) : t.measureText(e).width } st._set("scale", { display: !0, position: "left", offset: !1, gridLines: { display: !0, color: "rgba(0, 0, 0, 0.1)", lineWidth: 1, drawBorder: !0, drawOnChartArea: !0, drawTicks: !0, tickMarkLength: 10, zeroLineWidth: 1, zeroLineColor: "rgba(0,0,0,0.25)", zeroLineBorderDash: [], zeroLineBorderDashOffset: 0, offsetGridLines: !1, borderDash: [], borderDashOffset: 0 }, scaleLabel: { display: !1, labelString: "", padding: { top: 4, bottom: 4 } }, ticks: { beginAtZero: !1, minRotation: 0, maxRotation: 50, mirror: !1, padding: 0, reverse: !1, display: !0, autoSkip: !0, autoSkipPadding: 0, labelOffset: 0, callback: li.formatters.values, minor: {}, major: {} } }); var fi = pt.extend({ getPadding: function () { return { left: this.paddingLeft || 0, top: this.paddingTop || 0, right: this.paddingRight || 0, bottom: this.paddingBottom || 0 } }, getTicks: function () { return this._ticks }, mergeTicksOptions: function () { var t = this.options.ticks; for (var e in !1 === t.minor && (t.minor = { display: !1 }), !1 === t.major && (t.major = { display: !1 }), t) "major" !== e && "minor" !== e && (void 0 === t.minor[e] && (t.minor[e] = t[e]), void 0 === t.major[e] && (t.major[e] = t[e])) }, beforeUpdate: function () { ut.callback(this.options.beforeUpdate, [this]) }, update: function (t, e, i) { var n, a, o, r, s, l, d = this; for (d.beforeUpdate(), d.maxWidth = t, d.maxHeight = e, d.margins = ut.extend({ left: 0, right: 0, top: 0, bottom: 0 }, i), d._maxLabelLines = 0, d.longestLabelWidth = 0, d.longestTextCache = d.longestTextCache || {}, d.beforeSetDimensions(), d.setDimensions(), d.afterSetDimensions(), d.beforeDataLimits(), d.determineDataLimits(), d.afterDataLimits(), d.beforeBuildTicks(), s = d.buildTicks() || [], s = d.afterBuildTicks(s) || s, d.beforeTickToLabelConversion(), o = d.convertTicksToLabels(s) || d.ticks, d.afterTickToLabelConversion(), d.ticks = o, n = 0, a = o.length; n < a; ++n)r = o[n], (l = s[n]) ? l.label = r : s.push(l = { label: r, major: !1 }); return d._ticks = s, d.beforeCalculateTickRotation(), d.calculateTickRotation(), d.afterCalculateTickRotation(), d.beforeFit(), d.fit(), d.afterFit(), d.afterUpdate(), d.minSize }, afterUpdate: function () { ut.callback(this.options.afterUpdate, [this]) }, beforeSetDimensions: function () { ut.callback(this.options.beforeSetDimensions, [this]) }, setDimensions: function () { var t = this; t.isHorizontal() ? (t.width = t.maxWidth, t.left = 0, t.right = t.width) : (t.height = t.maxHeight, t.top = 0, t.bottom = t.height), t.paddingLeft = 0, t.paddingTop = 0, t.paddingRight = 0, t.paddingBottom = 0 }, afterSetDimensions: function () { ut.callback(this.options.afterSetDimensions, [this]) }, beforeDataLimits: function () { ut.callback(this.options.beforeDataLimits, [this]) }, determineDataLimits: ut.noop, afterDataLimits: function () { ut.callback(this.options.afterDataLimits, [this]) }, beforeBuildTicks: function () { ut.callback(this.options.beforeBuildTicks, [this]) }, buildTicks: ut.noop, afterBuildTicks: function (t) { var e = this; return ut.isArray(t) && t.length ? ut.callback(e.options.afterBuildTicks, [e, t]) : (e.ticks = ut.callback(e.options.afterBuildTicks, [e, e.ticks]) || e.ticks, t) }, beforeTickToLabelConversion: function () { ut.callback(this.options.beforeTickToLabelConversion, [this]) }, convertTicksToLabels: function () { var t = this.options.ticks; this.ticks = this.ticks.map(t.userCallback || t.callback, this) }, afterTickToLabelConversion: function () { ut.callback(this.options.afterTickToLabelConversion, [this]) }, beforeCalculateTickRotation: function () { ut.callback(this.options.beforeCalculateTickRotation, [this]) }, calculateTickRotation: function () { var t = this, e = t.ctx, i = t.options.ticks, n = hi(t._ticks), a = ut.options._parseFont(i); e.font = a.string; var o = i.minRotation || 0; if (n.length && t.options.display && t.isHorizontal()) for (var r, s = ut.longestText(e, a.string, n, t.longestTextCache), l = s, d = t.getPixelForTick(1) - t.getPixelForTick(0) - 6; l > d && o < i.maxRotation;) { var u = ut.toRadians(o); if (r = Math.cos(u), Math.sin(u) * s > t.maxHeight) { o--; break } o++, l = r * s } t.labelRotation = o }, afterCalculateTickRotation: function () { ut.callback(this.options.afterCalculateTickRotation, [this]) }, beforeFit: function () { ut.callback(this.options.beforeFit, [this]) }, fit: function () { var t = this, e = t.minSize = { width: 0, height: 0 }, i = hi(t._ticks), n = t.options, a = n.ticks, o = n.scaleLabel, r = n.gridLines, s = t._isVisible(), l = n.position, d = t.isHorizontal(), u = ut.options._parseFont, h = u(a), c = n.gridLines.tickMarkLength; if (e.width = d ? t.isFullWidth() ? t.maxWidth - t.margins.left - t.margins.right : t.maxWidth : s && r.drawTicks ? c : 0, e.height = d ? s && r.drawTicks ? c : 0 : t.maxHeight, o.display && s) { var f = u(o), g = ut.options.toPadding(o.padding), p = f.lineHeight + g.height; d ? e.height += p : e.width += p } if (a.display && s) { var m = ut.longestText(t.ctx, h.string, i, t.longestTextCache), v = ut.numberOfLabelLines(i), b = .5 * h.size, x = t.options.ticks.padding; if (t._maxLabelLines = v, t.longestLabelWidth = m, d) { var y = ut.toRadians(t.labelRotation), k = Math.cos(y), w = Math.sin(y) * m + h.lineHeight * v + b; e.height = Math.min(t.maxHeight, e.height + w + x), t.ctx.font = h.string; var M, _, C = ci(t.ctx, i[0], h.string), S = ci(t.ctx, i[i.length - 1], h.string), P = t.getPixelForTick(0) - t.left, I = t.right - t.getPixelForTick(i.length - 1); 0 !== t.labelRotation ? (M = "bottom" === l ? k * C : k * b, _ = "bottom" === l ? k * b : k * S) : (M = C / 2, _ = S / 2), t.paddingLeft = Math.max(M - P, 0) + 3, t.paddingRight = Math.max(_ - I, 0) + 3 } else a.mirror ? m = 0 : m += x + b, e.width = Math.min(t.maxWidth, e.width + m), t.paddingTop = h.size / 2, t.paddingBottom = h.size / 2 } t.handleMargins(), t.width = e.width, t.height = e.height }, handleMargins: function () { var t = this; t.margins && (t.paddingLeft = Math.max(t.paddingLeft - t.margins.left, 0), t.paddingTop = Math.max(t.paddingTop - t.margins.top, 0), t.paddingRight = Math.max(t.paddingRight - t.margins.right, 0), t.paddingBottom = Math.max(t.paddingBottom - t.margins.bottom, 0)) }, afterFit: function () { ut.callback(this.options.afterFit, [this]) }, isHorizontal: function () { return "top" === this.options.position || "bottom" === this.options.position }, isFullWidth: function () { return this.options.fullWidth }, getRightValue: function (t) { if (ut.isNullOrUndef(t)) return NaN; if (("number" == typeof t || t instanceof Number) && !isFinite(t)) return NaN; if (t) if (this.isHorizontal()) { if (void 0 !== t.x) return this.getRightValue(t.x) } else if (void 0 !== t.y) return this.getRightValue(t.y); return t }, getLabelForIndex: ut.noop, getPixelForValue: ut.noop, getValueForPixel: ut.noop, getPixelForTick: function (t) { var e = this, i = e.options.offset; if (e.isHorizontal()) { var n = (e.width - (e.paddingLeft + e.paddingRight)) / Math.max(e._ticks.length - (i ? 0 : 1), 1), a = n * t + e.paddingLeft; i && (a += n / 2); var o = e.left + a; return o += e.isFullWidth() ? e.margins.left : 0 } var r = e.height - (e.paddingTop + e.paddingBottom); return e.top + t * (r / (e._ticks.length - 1)) }, getPixelForDecimal: function (t) { var e = this; if (e.isHorizontal()) { var i = (e.width - (e.paddingLeft + e.paddingRight)) * t + e.paddingLeft, n = e.left + i; return n += e.isFullWidth() ? e.margins.left : 0 } return e.top + t * e.height }, getBasePixel: function () { return this.getPixelForValue(this.getBaseValue()) }, getBaseValue: function () { var t = this.min, e = this.max; return this.beginAtZero ? 0 : t < 0 && e < 0 ? e : t > 0 && e > 0 ? t : 0 }, _autoSkip: function (t) { var e, i, n = this, a = n.isHorizontal(), o = n.options.ticks.minor, r = t.length, s = !1, l = o.maxTicksLimit, d = n._tickSize() * (r - 1), u = a ? n.width - (n.paddingLeft + n.paddingRight) : n.height - (n.paddingTop + n.PaddingBottom), h = []; for (d > u && (s = 1 + Math.floor(d / u)), r > l && (s = Math.max(s, 1 + Math.floor(r / l))), e = 0; e < r; e++)i = t[e], s > 1 && e % s > 0 && delete i.label, h.push(i); return h }, _tickSize: function () { var t = this, e = t.isHorizontal(), i = t.options.ticks.minor, n = ut.toRadians(t.labelRotation), a = Math.abs(Math.cos(n)), o = Math.abs(Math.sin(n)), r = i.autoSkipPadding || 0, s = t.longestLabelWidth + r || 0, l = ut.options._parseFont(i), d = t._maxLabelLines * l.lineHeight + r || 0; return e ? d * a > s * o ? s / a : d / o : d * o < s * a ? d / a : s / o }, _isVisible: function () { var t, e, i, n = this.chart, a = this.options.display; if ("auto" !== a) return !!a; for (t = 0, e = n.data.datasets.length; t < e; ++t)if (n.isDatasetVisible(t) && ((i = n.getDatasetMeta(t)).xAxisID === this.id || i.yAxisID === this.id)) return !0; return !1 }, draw: function (t) { var e = this, i = e.options; if (e._isVisible()) { var n, a, o, r = e.chart, s = e.ctx, l = st.global.defaultFontColor, d = i.ticks.minor, u = i.ticks.major || d, h = i.gridLines, c = i.scaleLabel, f = i.position, g = 0 !== e.labelRotation, p = d.mirror, m = e.isHorizontal(), v = ut.options._parseFont, b = d.display && d.autoSkip ? e._autoSkip(e.getTicks()) : e.getTicks(), x = di(d.fontColor, l), y = v(d), k = y.lineHeight, w = di(u.fontColor, l), M = v(u), _ = d.padding, C = d.labelOffset, S = h.drawTicks ? h.tickMarkLength : 0, P = di(c.fontColor, l), I = v(c), A = ut.options.toPadding(c.padding), D = ut.toRadians(e.labelRotation), T = [], F = h.drawBorder ? ui(h.lineWidth, 0, 0) : 0, L = ut._alignPixel; "top" === f ? (n = L(r, e.bottom, F), a = e.bottom - S, o = n - F / 2) : "bottom" === f ? (n = L(r, e.top, F), a = n + F / 2, o = e.top + S) : "left" === f ? (n = L(r, e.right, F), a = e.right - S, o = n - F / 2) : (n = L(r, e.left, F), a = n + F / 2, o = e.left + S); if (ut.each(b, function (n, s) { if (!ut.isNullOrUndef(n.label)) { var l, d, u, c, v, b, x, y, w, M, P, I, A, R, O, z, B = n.label; s === e.zeroLineIndex && i.offset === h.offsetGridLines ? (l = h.zeroLineWidth, d = h.zeroLineColor, u = h.zeroLineBorderDash || [], c = h.zeroLineBorderDashOffset || 0) : (l = ui(h.lineWidth, s), d = ui(h.color, s), u = h.borderDash || [], c = h.borderDashOffset || 0); var N = ut.isArray(B) ? B.length : 1, W = function (t, e, i) { var n = t.getPixelForTick(e); return i && (1 === t.getTicks().length ? n -= t.isHorizontal() ? Math.max(n - t.left, t.right - n) : Math.max(n - t.top, t.bottom - n) : n -= 0 === e ? (t.getPixelForTick(1) - n) / 2 : (n - t.getPixelForTick(e - 1)) / 2), n }(e, s, h.offsetGridLines); if (m) { var V = S + _; W < e.left - 1e-7 && (d = "rgba(0,0,0,0)"), v = x = w = P = L(r, W, l), b = a, y = o, A = e.getPixelForTick(s) + C, "top" === f ? (M = L(r, t.top, F) + F / 2, I = t.bottom, O = ((g ? 1 : .5) - N) * k, z = g ? "left" : "center", R = e.bottom - V) : (M = t.top, I = L(r, t.bottom, F) - F / 2, O = (g ? 0 : .5) * k, z = g ? "right" : "center", R = e.top + V) } else { var E = (p ? 0 : S) + _; W < e.top - 1e-7 && (d = "rgba(0,0,0,0)"), v = a, x = o, b = y = M = I = L(r, W, l), R = e.getPixelForTick(s) + C, O = (1 - N) * k / 2, "left" === f ? (w = L(r, t.left, F) + F / 2, P = t.right, z = p ? "left" : "right", A = e.right - E) : (w = t.left, P = L(r, t.right, F) - F / 2, z = p ? "right" : "left", A = e.left + E) } T.push({ tx1: v, ty1: b, tx2: x, ty2: y, x1: w, y1: M, x2: P, y2: I, labelX: A, labelY: R, glWidth: l, glColor: d, glBorderDash: u, glBorderDashOffset: c, rotation: -1 * D, label: B, major: n.major, textOffset: O, textAlign: z }) } }), ut.each(T, function (t) { var e = t.glWidth, i = t.glColor; if (h.display && e && i && (s.save(), s.lineWidth = e, s.strokeStyle = i, s.setLineDash && (s.setLineDash(t.glBorderDash), s.lineDashOffset = t.glBorderDashOffset), s.beginPath(), h.drawTicks && (s.moveTo(t.tx1, t.ty1), s.lineTo(t.tx2, t.ty2)), h.drawOnChartArea && (s.moveTo(t.x1, t.y1), s.lineTo(t.x2, t.y2)), s.stroke(), s.restore()), d.display) { s.save(), s.translate(t.labelX, t.labelY), s.rotate(t.rotation), s.font = t.major ? M.string : y.string, s.fillStyle = t.major ? w : x, s.textBaseline = "middle", s.textAlign = t.textAlign; var n = t.label, a = t.textOffset; if (ut.isArray(n)) for (var o = 0; o < n.length; ++o)s.fillText("" + n[o], 0, a), a += k; else s.fillText(n, 0, a); s.restore() } }), c.display) { var R, O, z = 0, B = I.lineHeight / 2; if (m) R = e.left + (e.right - e.left) / 2, O = "bottom" === f ? e.bottom - B - A.bottom : e.top + B + A.top; else { var N = "left" === f; R = N ? e.left + B + A.top : e.right - B - A.top, O = e.top + (e.bottom - e.top) / 2, z = N ? -.5 * Math.PI : .5 * Math.PI } s.save(), s.translate(R, O), s.rotate(z), s.textAlign = "center", s.textBaseline = "middle", s.fillStyle = P, s.font = I.string, s.fillText(c.labelString, 0, 0), s.restore() } if (F) { var W, V, E, H, j = F, q = ui(h.lineWidth, b.length - 1, 0); m ? (W = L(r, e.left, j) - j / 2, V = L(r, e.right, q) + q / 2, E = H = n) : (E = L(r, e.top, j) - j / 2, H = L(r, e.bottom, q) + q / 2, W = V = n), s.lineWidth = F, s.strokeStyle = ui(h.color, 0), s.beginPath(), s.moveTo(W, E), s.lineTo(V, H), s.stroke() } } } }), gi = fi.extend({ getLabels: function () { var t = this.chart.data; return this.options.labels || (this.isHorizontal() ? t.xLabels : t.yLabels) || t.labels }, determineDataLimits: function () { var t, e = this, i = e.getLabels(); e.minIndex = 0, e.maxIndex = i.length - 1, void 0 !== e.options.ticks.min && (t = i.indexOf(e.options.ticks.min), e.minIndex = -1 !== t ? t : e.minIndex), void 0 !== e.options.ticks.max && (t = i.indexOf(e.options.ticks.max), e.maxIndex = -1 !== t ? t : e.maxIndex), e.min = i[e.minIndex], e.max = i[e.maxIndex] }, buildTicks: function () { var t = this, e = t.getLabels(); t.ticks = 0 === t.minIndex && t.maxIndex === e.length - 1 ? e : e.slice(t.minIndex, t.maxIndex + 1) }, getLabelForIndex: function (t, e) { var i = this, n = i.chart; return n.getDatasetMeta(e).controller._getValueScaleId() === i.id ? i.getRightValue(n.data.datasets[e].data[t]) : i.ticks[t - i.minIndex] }, getPixelForValue: function (t, e) { var i, n = this, a = n.options.offset, o = Math.max(n.maxIndex + 1 - n.minIndex - (a ? 0 : 1), 1); if (null != t && (i = n.isHorizontal() ? t.x : t.y), void 0 !== i || void 0 !== t && isNaN(e)) { t = i || t; var r = n.getLabels().indexOf(t); e = -1 !== r ? r : e } if (n.isHorizontal()) { var s = n.width / o, l = s * (e - n.minIndex); return a && (l += s / 2), n.left + l } var d = n.height / o, u = d * (e - n.minIndex); return a && (u += d / 2), n.top + u }, getPixelForTick: function (t) { return this.getPixelForValue(this.ticks[t], t + this.minIndex, null) }, getValueForPixel: function (t) { var e = this, i = e.options.offset, n = Math.max(e._ticks.length - (i ? 0 : 1), 1), a = e.isHorizontal(), o = (a ? e.width : e.height) / n; return t -= a ? e.left : e.top, i && (t -= o / 2), (t <= 0 ? 0 : Math.round(t / o)) + e.minIndex }, getBasePixel: function () { return this.bottom } }), pi = { position: "bottom" }; gi._defaults = pi; var mi = ut.noop, vi = ut.isNullOrUndef; var bi = fi.extend({ getRightValue: function (t) { return "string" == typeof t ? +t : fi.prototype.getRightValue.call(this, t) }, handleTickRangeOptions: function () { var t = this, e = t.options.ticks; if (e.beginAtZero) { var i = ut.sign(t.min), n = ut.sign(t.max); i < 0 && n < 0 ? t.max = 0 : i > 0 && n > 0 && (t.min = 0) } var a = void 0 !== e.min || void 0 !== e.suggestedMin, o = void 0 !== e.max || void 0 !== e.suggestedMax; void 0 !== e.min ? t.min = e.min : void 0 !== e.suggestedMin && (null === t.min ? t.min = e.suggestedMin : t.min = Math.min(t.min, e.suggestedMin)), void 0 !== e.max ? t.max = e.max : void 0 !== e.suggestedMax && (null === t.max ? t.max = e.suggestedMax : t.max = Math.max(t.max, e.suggestedMax)), a !== o && t.min >= t.max && (a ? t.max = t.min + 1 : t.min = t.max - 1), t.min === t.max && (t.max++, e.beginAtZero || t.min--) }, getTickLimit: function () { var t, e = this.options.ticks, i = e.stepSize, n = e.maxTicksLimit; return i ? t = Math.ceil(this.max / i) - Math.floor(this.min / i) + 1 : (t = this._computeTickLimit(), n = n || 11), n && (t = Math.min(n, t)), t }, _computeTickLimit: function () { return Number.POSITIVE_INFINITY }, handleDirectionalChanges: mi, buildTicks: function () { var t = this, e = t.options.ticks, i = t.getTickLimit(), n = { maxTicks: i = Math.max(2, i), min: e.min, max: e.max, precision: e.precision, stepSize: ut.valueOrDefault(e.fixedStepSize, e.stepSize) }, a = t.ticks = function (t, e) { var i, n, a, o, r = [], s = t.stepSize, l = s || 1, d = t.maxTicks - 1, u = t.min, h = t.max, c = t.precision, f = e.min, g = e.max, p = ut.niceNum((g - f) / d / l) * l; if (p < 1e-14 && vi(u) && vi(h)) return [f, g]; (o = Math.ceil(g / p) - Math.floor(f / p)) > d && (p = ut.niceNum(o * p / d / l) * l), s || vi(c) ? i = Math.pow(10, ut._decimalPlaces(p)) : (i = Math.pow(10, c), p = Math.ceil(p * i) / i), n = Math.floor(f / p) * p, a = Math.ceil(g / p) * p, s && (!vi(u) && ut.almostWhole(u / p, p / 1e3) && (n = u), !vi(h) && ut.almostWhole(h / p, p / 1e3) && (a = h)), o = (a - n) / p, o = ut.almostEquals(o, Math.round(o), p / 1e3) ? Math.round(o) : Math.ceil(o), n = Math.round(n * i) / i, a = Math.round(a * i) / i, r.push(vi(u) ? n : u); for (var m = 1; m < o; ++m)r.push(Math.round((n + m * p) * i) / i); return r.push(vi(h) ? a : h), r }(n, t); t.handleDirectionalChanges(), t.max = ut.max(a), t.min = ut.min(a), e.reverse ? (a.reverse(), t.start = t.max, t.end = t.min) : (t.start = t.min, t.end = t.max) }, convertTicksToLabels: function () { var t = this; t.ticksAsNumbers = t.ticks.slice(), t.zeroLineIndex = t.ticks.indexOf(0), fi.prototype.convertTicksToLabels.call(t) } }), xi = { position: "left", ticks: { callback: li.formatters.linear } }, yi = bi.extend({ determineDataLimits: function () { var t = this, e = t.options, i = t.chart, n = i.data.datasets, a = t.isHorizontal(); function o(e) { return a ? e.xAxisID === t.id : e.yAxisID === t.id } t.min = null, t.max = null; var r = e.stacked; if (void 0 === r && ut.each(n, function (t, e) { if (!r) { var n = i.getDatasetMeta(e); i.isDatasetVisible(e) && o(n) && void 0 !== n.stack && (r = !0) } }), e.stacked || r) { var s = {}; ut.each(n, function (n, a) { var r = i.getDatasetMeta(a), l = [r.type, void 0 === e.stacked && void 0 === r.stack ? a : "", r.stack].join("."); void 0 === s[l] && (s[l] = { positiveValues: [], negativeValues: [] }); var d = s[l].positiveValues, u = s[l].negativeValues; i.isDatasetVisible(a) && o(r) && ut.each(n.data, function (i, n) { var a = +t.getRightValue(i); isNaN(a) || r.data[n].hidden || (d[n] = d[n] || 0, u[n] = u[n] || 0, e.relativePoints ? d[n] = 100 : a < 0 ? u[n] += a : d[n] += a) }) }), ut.each(s, function (e) { var i = e.positiveValues.concat(e.negativeValues), n = ut.min(i), a = ut.max(i); t.min = null === t.min ? n : Math.min(t.min, n), t.max = null === t.max ? a : Math.max(t.max, a) }) } else ut.each(n, function (e, n) { var a = i.getDatasetMeta(n); i.isDatasetVisible(n) && o(a) && ut.each(e.data, function (e, i) { var n = +t.getRightValue(e); isNaN(n) || a.data[i].hidden || (null === t.min ? t.min = n : n < t.min && (t.min = n), null === t.max ? t.max = n : n > t.max && (t.max = n)) }) }); t.min = isFinite(t.min) && !isNaN(t.min) ? t.min : 0, t.max = isFinite(t.max) && !isNaN(t.max) ? t.max : 1, this.handleTickRangeOptions() }, _computeTickLimit: function () { var t; return this.isHorizontal() ? Math.ceil(this.width / 40) : (t = ut.options._parseFont(this.options.ticks), Math.ceil(this.height / t.lineHeight)) }, handleDirectionalChanges: function () { this.isHorizontal() || this.ticks.reverse() }, getLabelForIndex: function (t, e) { return +this.getRightValue(this.chart.data.datasets[e].data[t]) }, getPixelForValue: function (t) { var e = this, i = e.start, n = +e.getRightValue(t), a = e.end - i; return e.isHorizontal() ? e.left + e.width / a * (n - i) : e.bottom - e.height / a * (n - i) }, getValueForPixel: function (t) { var e = this, i = e.isHorizontal(), n = i ? e.width : e.height, a = (i ? t - e.left : e.bottom - t) / n; return e.start + (e.end - e.start) * a }, getPixelForTick: function (t) { return this.getPixelForValue(this.ticksAsNumbers[t]) } }), ki = xi; yi._defaults = ki; var wi = ut.valueOrDefault; var Mi = { position: "left", ticks: { callback: li.formatters.logarithmic } }; function _i(t, e) { return ut.isFinite(t) && t >= 0 ? t : e } var Ci = fi.extend({ determineDataLimits: function () { var t = this, e = t.options, i = t.chart, n = i.data.datasets, a = t.isHorizontal(); function o(e) { return a ? e.xAxisID === t.id : e.yAxisID === t.id } t.min = null, t.max = null, t.minNotZero = null; var r = e.stacked; if (void 0 === r && ut.each(n, function (t, e) { if (!r) { var n = i.getDatasetMeta(e); i.isDatasetVisible(e) && o(n) && void 0 !== n.stack && (r = !0) } }), e.stacked || r) { var s = {}; ut.each(n, function (n, a) { var r = i.getDatasetMeta(a), l = [r.type, void 0 === e.stacked && void 0 === r.stack ? a : "", r.stack].join("."); i.isDatasetVisible(a) && o(r) && (void 0 === s[l] && (s[l] = []), ut.each(n.data, function (e, i) { var n = s[l], a = +t.getRightValue(e); isNaN(a) || r.data[i].hidden || a < 0 || (n[i] = n[i] || 0, n[i] += a) })) }), ut.each(s, function (e) { if (e.length > 0) { var i = ut.min(e), n = ut.max(e); t.min = null === t.min ? i : Math.min(t.min, i), t.max = null === t.max ? n : Math.max(t.max, n) } }) } else ut.each(n, function (e, n) { var a = i.getDatasetMeta(n); i.isDatasetVisible(n) && o(a) && ut.each(e.data, function (e, i) { var n = +t.getRightValue(e); isNaN(n) || a.data[i].hidden || n < 0 || (null === t.min ? t.min = n : n < t.min && (t.min = n), null === t.max ? t.max = n : n > t.max && (t.max = n), 0 !== n && (null === t.minNotZero || n < t.minNotZero) && (t.minNotZero = n)) }) }); this.handleTickRangeOptions() }, handleTickRangeOptions: function () { var t = this, e = t.options.ticks; t.min = _i(e.min, t.min), t.max = _i(e.max, t.max), t.min === t.max && (0 !== t.min && null !== t.min ? (t.min = Math.pow(10, Math.floor(ut.log10(t.min)) - 1), t.max = Math.pow(10, Math.floor(ut.log10(t.max)) + 1)) : (t.min = 1, t.max = 10)), null === t.min && (t.min = Math.pow(10, Math.floor(ut.log10(t.max)) - 1)), null === t.max && (t.max = 0 !== t.min ? Math.pow(10, Math.floor(ut.log10(t.min)) + 1) : 10), null === t.minNotZero && (t.min > 0 ? t.minNotZero = t.min : t.max < 1 ? t.minNotZero = Math.pow(10, Math.floor(ut.log10(t.max))) : t.minNotZero = 1) }, buildTicks: function () { var t = this, e = t.options.ticks, i = !t.isHorizontal(), n = { min: _i(e.min), max: _i(e.max) }, a = t.ticks = function (t, e) { var i, n, a = [], o = wi(t.min, Math.pow(10, Math.floor(ut.log10(e.min)))), r = Math.floor(ut.log10(e.max)), s = Math.ceil(e.max / Math.pow(10, r)); 0 === o ? (i = Math.floor(ut.log10(e.minNotZero)), n = Math.floor(e.minNotZero / Math.pow(10, i)), a.push(o), o = n * Math.pow(10, i)) : (i = Math.floor(ut.log10(o)), n = Math.floor(o / Math.pow(10, i))); var l = i < 0 ? Math.pow(10, Math.abs(i)) : 1; do { a.push(o), 10 == ++n && (n = 1, l = ++i >= 0 ? 1 : l), o = Math.round(n * Math.pow(10, i) * l) / l } while (i < r || i === r && n < s); var d = wi(t.max, o); return a.push(d), a }(n, t); t.max = ut.max(a), t.min = ut.min(a), e.reverse ? (i = !i, t.start = t.max, t.end = t.min) : (t.start = t.min, t.end = t.max), i && a.reverse() }, convertTicksToLabels: function () { this.tickValues = this.ticks.slice(), fi.prototype.convertTicksToLabels.call(this) }, getLabelForIndex: function (t, e) { return +this.getRightValue(this.chart.data.datasets[e].data[t]) }, getPixelForTick: function (t) { return this.getPixelForValue(this.tickValues[t]) }, _getFirstTickValue: function (t) { var e = Math.floor(ut.log10(t)); return Math.floor(t / Math.pow(10, e)) * Math.pow(10, e) }, getPixelForValue: function (t) { var e, i, n, a, o, r = this, s = r.options.ticks, l = s.reverse, d = ut.log10, u = r._getFirstTickValue(r.minNotZero), h = 0; return t = +r.getRightValue(t), l ? (n = r.end, a = r.start, o = -1) : (n = r.start, a = r.end, o = 1), r.isHorizontal() ? (e = r.width, i = l ? r.right : r.left) : (e = r.height, o *= -1, i = l ? r.top : r.bottom), t !== n && (0 === n && (e -= h = wi(s.fontSize, st.global.defaultFontSize), n = u), 0 !== t && (h += e / (d(a) - d(n)) * (d(t) - d(n))), i += o * h), i }, getValueForPixel: function (t) { var e, i, n, a, o = this, r = o.options.ticks, s = r.reverse, l = ut.log10, d = o._getFirstTickValue(o.minNotZero); if (s ? (i = o.end, n = o.start) : (i = o.start, n = o.end), o.isHorizontal() ? (e = o.width, a = s ? o.right - t : t - o.left) : (e = o.height, a = s ? t - o.top : o.bottom - t), a !== i) { if (0 === i) { var u = wi(r.fontSize, st.global.defaultFontSize); a -= u, e -= u, i = d } a *= l(n) - l(i), a /= e, a = Math.pow(10, l(i) + a) } return a } }), Si = Mi; Ci._defaults = Si; var Pi = ut.valueOrDefault, Ii = ut.valueAtIndexOrDefault, Ai = ut.options.resolve, Di = { display: !0, animate: !0, position: "chartArea", angleLines: { display: !0, color: "rgba(0, 0, 0, 0.1)", lineWidth: 1, borderDash: [], borderDashOffset: 0 }, gridLines: { circular: !1 }, ticks: { showLabelBackdrop: !0, backdropColor: "rgba(255,255,255,0.75)", backdropPaddingY: 2, backdropPaddingX: 2, callback: li.formatters.linear }, pointLabels: { display: !0, fontSize: 10, callback: function (t) { return t } } }; function Ti(t) { var e = t.options; return e.angleLines.display || e.pointLabels.display ? t.chart.data.labels.length : 0 } function Fi(t) { var e = t.ticks; return e.display && t.display ? Pi(e.fontSize, st.global.defaultFontSize) + 2 * e.backdropPaddingY : 0 } function Li(t, e, i, n, a) { return t === n || t === a ? { start: e - i / 2, end: e + i / 2 } : t < n || t > a ? { start: e - i, end: e } : { start: e, end: e + i } } function Ri(t) { return 0 === t || 180 === t ? "center" : t < 180 ? "left" : "right" } function Oi(t, e, i, n) { var a, o, r = i.y + n / 2; if (ut.isArray(e)) for (a = 0, o = e.length; a < o; ++a)t.fillText(e[a], i.x, r), r += n; else t.fillText(e, i.x, r) } function zi(t, e, i) { 90 === t || 270 === t ? i.y -= e.h / 2 : (t > 270 || t < 90) && (i.y -= e.h) } function Bi(t) { return ut.isNumber(t) ? t : 0 } var Ni = bi.extend({ setDimensions: function () { var t = this; t.width = t.maxWidth, t.height = t.maxHeight, t.paddingTop = Fi(t.options) / 2, t.xCenter = Math.floor(t.width / 2), t.yCenter = Math.floor((t.height - t.paddingTop) / 2), t.drawingArea = Math.min(t.height - t.paddingTop, t.width) / 2 }, determineDataLimits: function () { var t = this, e = t.chart, i = Number.POSITIVE_INFINITY, n = Number.NEGATIVE_INFINITY; ut.each(e.data.datasets, function (a, o) { if (e.isDatasetVisible(o)) { var r = e.getDatasetMeta(o); ut.each(a.data, function (e, a) { var o = +t.getRightValue(e); isNaN(o) || r.data[a].hidden || (i = Math.min(o, i), n = Math.max(o, n)) }) } }), t.min = i === Number.POSITIVE_INFINITY ? 0 : i, t.max = n === Number.NEGATIVE_INFINITY ? 0 : n, t.handleTickRangeOptions() }, _computeTickLimit: function () { return Math.ceil(this.drawingArea / Fi(this.options)) }, convertTicksToLabels: function () { var t = this; bi.prototype.convertTicksToLabels.call(t), t.pointLabels = t.chart.data.labels.map(t.options.pointLabels.callback, t) }, getLabelForIndex: function (t, e) { return +this.getRightValue(this.chart.data.datasets[e].data[t]) }, fit: function () { var t = this.options; t.display && t.pointLabels.display ? function (t) { var e, i, n, a = ut.options._parseFont(t.options.pointLabels), o = { l: 0, r: t.width, t: 0, b: t.height - t.paddingTop }, r = {}; t.ctx.font = a.string, t._pointLabelSizes = []; var s, l, d, u = Ti(t); for (e = 0; e < u; e++) { n = t.getPointPosition(e, t.drawingArea + 5), s = t.ctx, l = a.lineHeight, d = t.pointLabels[e] || "", i = ut.isArray(d) ? { w: ut.longestText(s, s.font, d), h: d.length * l } : { w: s.measureText(d).width, h: l }, t._pointLabelSizes[e] = i; var h = t.getIndexAngle(e), c = ut.toDegrees(h) % 360, f = Li(c, n.x, i.w, 0, 180), g = Li(c, n.y, i.h, 90, 270); f.start < o.l && (o.l = f.start, r.l = h), f.end > o.r && (o.r = f.end, r.r = h), g.start < o.t && (o.t = g.start, r.t = h), g.end > o.b && (o.b = g.end, r.b = h) } t.setReductions(t.drawingArea, o, r) }(this) : this.setCenterPoint(0, 0, 0, 0) }, setReductions: function (t, e, i) { var n = this, a = e.l / Math.sin(i.l), o = Math.max(e.r - n.width, 0) / Math.sin(i.r), r = -e.t / Math.cos(i.t), s = -Math.max(e.b - (n.height - n.paddingTop), 0) / Math.cos(i.b); a = Bi(a), o = Bi(o), r = Bi(r), s = Bi(s), n.drawingArea = Math.min(Math.floor(t - (a + o) / 2), Math.floor(t - (r + s) / 2)), n.setCenterPoint(a, o, r, s) }, setCenterPoint: function (t, e, i, n) { var a = this, o = a.width - e - a.drawingArea, r = t + a.drawingArea, s = i + a.drawingArea, l = a.height - a.paddingTop - n - a.drawingArea; a.xCenter = Math.floor((r + o) / 2 + a.left), a.yCenter = Math.floor((s + l) / 2 + a.top + a.paddingTop) }, getIndexAngle: function (t) { return t * (2 * Math.PI / Ti(this)) + (this.chart.options && this.chart.options.startAngle ? this.chart.options.startAngle : 0) * Math.PI * 2 / 360 }, getDistanceFromCenterForValue: function (t) { var e = this; if (null === t) return 0; var i = e.drawingArea / (e.max - e.min); return e.options.ticks.reverse ? (e.max - t) * i : (t - e.min) * i }, getPointPosition: function (t, e) { var i = this.getIndexAngle(t) - Math.PI / 2; return { x: Math.cos(i) * e + this.xCenter, y: Math.sin(i) * e + this.yCenter } }, getPointPositionForValue: function (t, e) { return this.getPointPosition(t, this.getDistanceFromCenterForValue(e)) }, getBasePosition: function () { var t = this.min, e = this.max; return this.getPointPositionForValue(0, this.beginAtZero ? 0 : t < 0 && e < 0 ? e : t > 0 && e > 0 ? t : 0) }, draw: function () { var t = this, e = t.options, i = e.gridLines, n = e.ticks; if (e.display) { var a = t.ctx, o = this.getIndexAngle(0), r = ut.options._parseFont(n); (e.angleLines.display || e.pointLabels.display) && function (t) { var e = t.ctx, i = t.options, n = i.angleLines, a = i.gridLines, o = i.pointLabels, r = Pi(n.lineWidth, a.lineWidth), s = Pi(n.color, a.color), l = Fi(i); e.save(), e.lineWidth = r, e.strokeStyle = s, e.setLineDash && (e.setLineDash(Ai([n.borderDash, a.borderDash, []])), e.lineDashOffset = Ai([n.borderDashOffset, a.borderDashOffset, 0])); var d = t.getDistanceFromCenterForValue(i.ticks.reverse ? t.min : t.max), u = ut.options._parseFont(o); e.font = u.string, e.textBaseline = "middle"; for (var h = Ti(t) - 1; h >= 0; h--) { if (n.display && r && s) { var c = t.getPointPosition(h, d); e.beginPath(), e.moveTo(t.xCenter, t.yCenter), e.lineTo(c.x, c.y), e.stroke() } if (o.display) { var f = 0 === h ? l / 2 : 0, g = t.getPointPosition(h, d + f + 5), p = Ii(o.fontColor, h, st.global.defaultFontColor); e.fillStyle = p; var m = t.getIndexAngle(h), v = ut.toDegrees(m); e.textAlign = Ri(v), zi(v, t._pointLabelSizes[h], g), Oi(e, t.pointLabels[h] || "", g, u.lineHeight) } } e.restore() }(t), ut.each(t.ticks, function (e, s) { if (s > 0 || n.reverse) { var l = t.getDistanceFromCenterForValue(t.ticksAsNumbers[s]); if (i.display && 0 !== s && function (t, e, i, n) { var a, o = t.ctx, r = e.circular, s = Ti(t), l = Ii(e.color, n - 1), d = Ii(e.lineWidth, n - 1); if ((r || s) && l && d) { if (o.save(), o.strokeStyle = l, o.lineWidth = d, o.setLineDash && (o.setLineDash(e.borderDash || []), o.lineDashOffset = e.borderDashOffset || 0), o.beginPath(), r) o.arc(t.xCenter, t.yCenter, i, 0, 2 * Math.PI); else { a = t.getPointPosition(0, i), o.moveTo(a.x, a.y); for (var u = 1; u < s; u++)a = t.getPointPosition(u, i), o.lineTo(a.x, a.y) } o.closePath(), o.stroke(), o.restore() } }(t, i, l, s), n.display) { var d = Pi(n.fontColor, st.global.defaultFontColor); if (a.font = r.string, a.save(), a.translate(t.xCenter, t.yCenter), a.rotate(o), n.showLabelBackdrop) { var u = a.measureText(e).width; a.fillStyle = n.backdropColor, a.fillRect(-u / 2 - n.backdropPaddingX, -l - r.size / 2 - n.backdropPaddingY, u + 2 * n.backdropPaddingX, r.size + 2 * n.backdropPaddingY) } a.textAlign = "center", a.textBaseline = "middle", a.fillStyle = d, a.fillText(e, 0, -l), a.restore() } } }) } } }), Wi = Di; Ni._defaults = Wi; var Vi = ut.valueOrDefault, Ei = Number.MIN_SAFE_INTEGER || -9007199254740991, Hi = Number.MAX_SAFE_INTEGER || 9007199254740991, ji = { millisecond: { common: !0, size: 1, steps: [1, 2, 5, 10, 20, 50, 100, 250, 500] }, second: { common: !0, size: 1e3, steps: [1, 2, 5, 10, 15, 30] }, minute: { common: !0, size: 6e4, steps: [1, 2, 5, 10, 15, 30] }, hour: { common: !0, size: 36e5, steps: [1, 2, 3, 6, 12] }, day: { common: !0, size: 864e5, steps: [1, 2, 5] }, week: { common: !1, size: 6048e5, steps: [1, 2, 3, 4] }, month: { common: !0, size: 2628e6, steps: [1, 2, 3] }, quarter: { common: !1, size: 7884e6, steps: [1, 2, 3, 4] }, year: { common: !0, size: 3154e7 } }, qi = Object.keys(ji); function Yi(t, e) { return t - e } function Ui(t) { var e, i, n, a = {}, o = []; for (e = 0, i = t.length; e < i; ++e)a[n = t[e]] || (a[n] = !0, o.push(n)); return o } function Xi(t, e, i, n) { var a = function (t, e, i) { for (var n, a, o, r = 0, s = t.length - 1; r >= 0 && r <= s;) { if (a = t[(n = r + s >> 1) - 1] || null, o = t[n], !a) return { lo: null, hi: o }; if (o[e] < i) r = n + 1; else { if (!(a[e] > i)) return { lo: a, hi: o }; s = n - 1 } } return { lo: o, hi: null } }(t, e, i), o = a.lo ? a.hi ? a.lo : t[t.length - 2] : t[0], r = a.lo ? a.hi ? a.hi : t[t.length - 1] : t[1], s = r[e] - o[e], l = s ? (i - o[e]) / s : 0, d = (r[n] - o[n]) * l; return o[n] + d } function Ki(t, e) { var i = t._adapter, n = t.options.time, a = n.parser, o = a || n.format, r = e; return "function" == typeof a && (r = a(r)), ut.isFinite(r) || (r = "string" == typeof o ? i.parse(r, o) : i.parse(r)), null !== r ? +r : (a || "function" != typeof o || (r = o(e), ut.isFinite(r) || (r = i.parse(r))), r) } function Gi(t, e) { if (ut.isNullOrUndef(e)) return null; var i = t.options.time, n = Ki(t, t.getRightValue(e)); return null === n ? n : (i.round && (n = +t._adapter.startOf(n, i.round)), n) } function Zi(t) { for (var e = qi.indexOf(t) + 1, i = qi.length; e < i; ++e)if (ji[qi[e]].common) return qi[e] } function $i(t, e, i, n) { var a, o = t._adapter, r = t.options, s = r.time, l = s.unit || function (t, e, i, n) { var a, o, r, s = qi.length; for (a = qi.indexOf(t); a < s - 1; ++a)if (r = (o = ji[qi[a]]).steps ? o.steps[o.steps.length - 1] : Hi, o.common && Math.ceil((i - e) / (r * o.size)) <= n) return qi[a]; return qi[s - 1] }(s.minUnit, e, i, n), d = Zi(l), u = Vi(s.stepSize, s.unitStepSize), h = "week" === l && s.isoWeekday, c = r.ticks.major.enabled, f = ji[l], g = e, p = i, m = []; for (u || (u = function (t, e, i, n) { var a, o, r, s = e - t, l = ji[i], d = l.size, u = l.steps; if (!u) return Math.ceil(s / (n * d)); for (a = 0, o = u.length; a < o && (r = u[a], !(Math.ceil(s / (d * r)) <= n)); ++a); return r }(e, i, l, n)), h && (g = +o.startOf(g, "isoWeek", h), p = +o.startOf(p, "isoWeek", h)), g = +o.startOf(g, h ? "day" : l), (p = +o.startOf(p, h ? "day" : l)) < i && (p = +o.add(p, 1, l)), a = g, c && d && !h && !s.round && (a = +o.startOf(a, d), a = +o.add(a, ~~((g - a) / (f.size * u)) * u, l)); a < p; a = +o.add(a, u, l))m.push(+a); return m.push(+a), m } var Ji = fi.extend({ initialize: function () { this.mergeTicksOptions(), fi.prototype.initialize.call(this) }, update: function () { var t = this.options, e = t.time || (t.time = {}), i = this._adapter = new si._date(t.adapters.date); return e.format && console.warn("options.time.format is deprecated and replaced by options.time.parser."), ut.mergeIf(e.displayFormats, i.formats()), fi.prototype.update.apply(this, arguments) }, getRightValue: function (t) { return t && void 0 !== t.t && (t = t.t), fi.prototype.getRightValue.call(this, t) }, determineDataLimits: function () { var t, e, i, n, a, o, r = this, s = r.chart, l = r._adapter, d = r.options.time, u = d.unit || "day", h = Hi, c = Ei, f = [], g = [], p = [], m = s.data.labels || []; for (t = 0, i = m.length; t < i; ++t)p.push(Gi(r, m[t])); for (t = 0, i = (s.data.datasets || []).length; t < i; ++t)if (s.isDatasetVisible(t)) if (a = s.data.datasets[t].data, ut.isObject(a[0])) for (g[t] = [], e = 0, n = a.length; e < n; ++e)o = Gi(r, a[e]), f.push(o), g[t][e] = o; else { for (e = 0, n = p.length; e < n; ++e)f.push(p[e]); g[t] = p.slice(0) } else g[t] = []; p.length && (p = Ui(p).sort(Yi), h = Math.min(h, p[0]), c = Math.max(c, p[p.length - 1])), f.length && (f = Ui(f).sort(Yi), h = Math.min(h, f[0]), c = Math.max(c, f[f.length - 1])), h = Gi(r, d.min) || h, c = Gi(r, d.max) || c, h = h === Hi ? +l.startOf(Date.now(), u) : h, c = c === Ei ? +l.endOf(Date.now(), u) + 1 : c, r.min = Math.min(h, c), r.max = Math.max(h + 1, c), r._horizontal = r.isHorizontal(), r._table = [], r._timestamps = { data: f, datasets: g, labels: p } }, buildTicks: function () { var t, e, i, n = this, a = n.min, o = n.max, r = n.options, s = r.time, l = [], d = []; switch (r.ticks.source) { case "data": l = n._timestamps.data; break; case "labels": l = n._timestamps.labels; break; case "auto": default: l = $i(n, a, o, n.getLabelCapacity(a)) }for ("ticks" === r.bounds && l.length && (a = l[0], o = l[l.length - 1]), a = Gi(n, s.min) || a, o = Gi(n, s.max) || o, t = 0, e = l.length; t < e; ++t)(i = l[t]) >= a && i <= o && d.push(i); return n.min = a, n.max = o, n._unit = s.unit || function (t, e, i, n, a) { var o, r; for (o = qi.length - 1; o >= qi.indexOf(i); o--)if (r = qi[o], ji[r].common && t._adapter.diff(a, n, r) >= e.length) return r; return qi[i ? qi.indexOf(i) : 0] }(n, d, s.minUnit, n.min, n.max), n._majorUnit = Zi(n._unit), n._table = function (t, e, i, n) { if ("linear" === n || !t.length) return [{ time: e, pos: 0 }, { time: i, pos: 1 }]; var a, o, r, s, l, d = [], u = [e]; for (a = 0, o = t.length; a < o; ++a)(s = t[a]) > e && s < i && u.push(s); for (u.push(i), a = 0, o = u.length; a < o; ++a)l = u[a + 1], r = u[a - 1], s = u[a], void 0 !== r && void 0 !== l && Math.round((l + r) / 2) === s || d.push({ time: s, pos: a / (o - 1) }); return d }(n._timestamps.data, a, o, r.distribution), n._offsets = function (t, e, i, n, a) { var o, r, s = 0, l = 0; return a.offset && e.length && (a.time.min || (o = Xi(t, "time", e[0], "pos"), s = 1 === e.length ? 1 - o : (Xi(t, "time", e[1], "pos") - o) / 2), a.time.max || (r = Xi(t, "time", e[e.length - 1], "pos"), l = 1 === e.length ? r : (r - Xi(t, "time", e[e.length - 2], "pos")) / 2)), { start: s, end: l } }(n._table, d, 0, 0, r), r.ticks.reverse && d.reverse(), function (t, e, i) { var n, a, o, r, s = []; for (n = 0, a = e.length; n < a; ++n)o = e[n], r = !!i && o === +t._adapter.startOf(o, i), s.push({ value: o, major: r }); return s }(n, d, n._majorUnit) }, getLabelForIndex: function (t, e) { var i = this, n = i._adapter, a = i.chart.data, o = i.options.time, r = a.labels && t < a.labels.length ? a.labels[t] : "", s = a.datasets[e].data[t]; return ut.isObject(s) && (r = i.getRightValue(s)), o.tooltipFormat ? n.format(Ki(i, r), o.tooltipFormat) : "string" == typeof r ? r : n.format(Ki(i, r), o.displayFormats.datetime) }, tickFormatFunction: function (t, e, i, n) { var a = this._adapter, o = this.options, r = o.time.displayFormats, s = r[this._unit], l = this._majorUnit, d = r[l], u = +a.startOf(t, l), h = o.ticks.major, c = h.enabled && l && d && t === u, f = a.format(t, n || (c ? d : s)), g = c ? h : o.ticks.minor, p = Vi(g.callback, g.userCallback); return p ? p(f, e, i) : f }, convertTicksToLabels: function (t) { var e, i, n = []; for (e = 0, i = t.length; e < i; ++e)n.push(this.tickFormatFunction(t[e].value, e, t)); return n }, getPixelForOffset: function (t) { var e = this, i = e.options.ticks.reverse, n = e._horizontal ? e.width : e.height, a = e._horizontal ? i ? e.right : e.left : i ? e.bottom : e.top, o = Xi(e._table, "time", t, "pos"), r = n * (e._offsets.start + o) / (e._offsets.start + 1 + e._offsets.end); return i ? a - r : a + r }, getPixelForValue: function (t, e, i) { var n = null; if (void 0 !== e && void 0 !== i && (n = this._timestamps.datasets[i][e]), null === n && (n = Gi(this, t)), null !== n) return this.getPixelForOffset(n) }, getPixelForTick: function (t) { var e = this.getTicks(); return t >= 0 && t < e.length ? this.getPixelForOffset(e[t].value) : null }, getValueForPixel: function (t) { var e = this, i = e._horizontal ? e.width : e.height, n = e._horizontal ? e.left : e.top, a = (i ? (t - n) / i : 0) * (e._offsets.start + 1 + e._offsets.start) - e._offsets.end, o = Xi(e._table, "pos", a, "time"); return e._adapter._create(o) }, getLabelWidth: function (t) { var e = this.options.ticks, i = this.ctx.measureText(t).width, n = ut.toRadians(e.maxRotation), a = Math.cos(n), o = Math.sin(n); return i * a + Vi(e.fontSize, st.global.defaultFontSize) * o }, getLabelCapacity: function (t) { var e = this, i = e.options.time.displayFormats.millisecond, n = e.tickFormatFunction(t, 0, [], i), a = e.getLabelWidth(n), o = e.isHorizontal() ? e.width : e.height, r = Math.floor(o / a); return r > 0 ? r : 1 } }), Qi = { position: "bottom", distribution: "linear", bounds: "data", adapters: {}, time: { parser: !1, format: !1, unit: !1, round: !1, displayFormat: !1, isoWeekday: !1, minUnit: "millisecond", displayFormats: {} }, ticks: { autoSkip: !1, source: "auto", major: { enabled: !1 } } }; Ji._defaults = Qi; var tn = { category: gi, linear: yi, logarithmic: Ci, radialLinear: Ni, time: Ji }, en = { datetime: "MMM D, YYYY, h:mm:ss a", millisecond: "h:mm:ss.SSS a", second: "h:mm:ss a", minute: "h:mm a", hour: "hA", day: "MMM D", week: "ll", month: "MMM YYYY", quarter: "[Q]Q - YYYY", year: "YYYY" }; si._date.override("function" == typeof t ? { _id: "moment", formats: function () { return en }, parse: function (e, i) { return "string" == typeof e && "string" == typeof i ? e = t(e, i) : e instanceof t || (e = t(e)), e.isValid() ? e.valueOf() : null }, format: function (e, i) { return t(e).format(i) }, add: function (e, i, n) { return t(e).add(i, n).valueOf() }, diff: function (e, i, n) { return t.duration(t(e).diff(t(i))).as(n) }, startOf: function (e, i, n) { return e = t(e), "isoWeek" === i ? e.isoWeekday(n).valueOf() : e.startOf(i).valueOf() }, endOf: function (e, i) { return t(e).endOf(i).valueOf() }, _create: function (e) { return t(e) } } : {}), st._set("global", { plugins: { filler: { propagate: !0 } } }); var nn = { dataset: function (t) { var e = t.fill, i = t.chart, n = i.getDatasetMeta(e), a = n && i.isDatasetVisible(e) && n.dataset._children || [], o = a.length || 0; return o ? function (t, e) { return e < o && a[e]._view || null } : null }, boundary: function (t) { var e = t.boundary, i = e ? e.x : null, n = e ? e.y : null; return function (t) { return { x: null === i ? t.x : i, y: null === n ? t.y : n } } } }; function an(t, e, i) { var n, a = t._model || {}, o = a.fill; if (void 0 === o && (o = !!a.backgroundColor), !1 === o || null === o) return !1; if (!0 === o) return "origin"; if (n = parseFloat(o, 10), isFinite(n) && Math.floor(n) === n) return "-" !== o[0] && "+" !== o[0] || (n = e + n), !(n === e || n < 0 || n >= i) && n; switch (o) { case "bottom": return "start"; case "top": return "end"; case "zero": return "origin"; case "origin": case "start": case "end": return o; default: return !1 } } function on(t) { var e, i = t.el._model || {}, n = t.el._scale || {}, a = t.fill, o = null; if (isFinite(a)) return null; if ("start" === a ? o = void 0 === i.scaleBottom ? n.bottom : i.scaleBottom : "end" === a ? o = void 0 === i.scaleTop ? n.top : i.scaleTop : void 0 !== i.scaleZero ? o = i.scaleZero : n.getBasePosition ? o = n.getBasePosition() : n.getBasePixel && (o = n.getBasePixel()), null != o) { if (void 0 !== o.x && void 0 !== o.y) return o; if (ut.isFinite(o)) return { x: (e = n.isHorizontal()) ? o : null, y: e ? null : o } } return null } function rn(t, e, i) { var n, a = t[e].fill, o = [e]; if (!i) return a; for (; !1 !== a && -1 === o.indexOf(a);) { if (!isFinite(a)) return a; if (!(n = t[a])) return !1; if (n.visible) return a; o.push(a), a = n.fill } return !1 } function sn(t) { var e = t.fill, i = "dataset"; return !1 === e ? null : (isFinite(e) || (i = "boundary"), nn[i](t)) } function ln(t) { return t && !t.skip } function dn(t, e, i, n, a) { var o; if (n && a) { for (t.moveTo(e[0].x, e[0].y), o = 1; o < n; ++o)ut.canvas.lineTo(t, e[o - 1], e[o]); for (t.lineTo(i[a - 1].x, i[a - 1].y), o = a - 1; o > 0; --o)ut.canvas.lineTo(t, i[o], i[o - 1], !0) } } var un = { id: "filler", afterDatasetsUpdate: function (t, e) { var i, n, a, o, r = (t.data.datasets || []).length, s = e.propagate, l = []; for (n = 0; n < r; ++n)o = null, (a = (i = t.getDatasetMeta(n)).dataset) && a._model && a instanceof Wt.Line && (o = { visible: t.isDatasetVisible(n), fill: an(a, n, r), chart: t, el: a }), i.$filler = o, l.push(o); for (n = 0; n < r; ++n)(o = l[n]) && (o.fill = rn(l, n, s), o.boundary = on(o), o.mapper = sn(o)) }, beforeDatasetDraw: function (t, e) { var i = e.meta.$filler; if (i) { var n = t.ctx, a = i.el, o = a._view, r = a._children || [], s = i.mapper, l = o.backgroundColor || st.global.defaultColor; s && l && r.length && (ut.canvas.clipArea(n, t.chartArea), function (t, e, i, n, a, o) { var r, s, l, d, u, h, c, f = e.length, g = n.spanGaps, p = [], m = [], v = 0, b = 0; for (t.beginPath(), r = 0, s = f + !!o; r < s; ++r)u = i(d = e[l = r % f]._view, l, n), h = ln(d), c = ln(u), h && c ? (v = p.push(d), b = m.push(u)) : v && b && (g ? (h && p.push(d), c && m.push(u)) : (dn(t, p, m, v, b), v = b = 0, p = [], m = [])); dn(t, p, m, v, b), t.closePath(), t.fillStyle = a, t.fill() }(n, r, s, o, l, a._loop), ut.canvas.unclipArea(n)) } } }, hn = ut.noop, cn = ut.valueOrDefault; function fn(t, e) { return t.usePointStyle && t.boxWidth > e ? e : t.boxWidth } st._set("global", { legend: { display: !0, position: "top", fullWidth: !0, reverse: !1, weight: 1e3, onClick: function (t, e) { var i = e.datasetIndex, n = this.chart, a = n.getDatasetMeta(i); a.hidden = null === a.hidden ? !n.data.datasets[i].hidden : null, n.update() }, onHover: null, onLeave: null, labels: { boxWidth: 40, padding: 10, generateLabels: function (t) { var e = t.data; return ut.isArray(e.datasets) ? e.datasets.map(function (e, i) { return { text: e.label, fillStyle: ut.isArray(e.backgroundColor) ? e.backgroundColor[0] : e.backgroundColor, hidden: !t.isDatasetVisible(i), lineCap: e.borderCapStyle, lineDash: e.borderDash, lineDashOffset: e.borderDashOffset, lineJoin: e.borderJoinStyle, lineWidth: e.borderWidth, strokeStyle: e.borderColor, pointStyle: e.pointStyle, datasetIndex: i } }, this) : [] } } }, legendCallback: function (t) { var e = []; e.push('<ul class="' + t.id + '-legend">'); for (var i = 0; i < t.data.datasets.length; i++)e.push('<li><span style="background-color:' + t.data.datasets[i].backgroundColor + '"></span>'), t.data.datasets[i].label && e.push(t.data.datasets[i].label), e.push("</li>"); return e.push("</ul>"), e.join("") } }); var gn = pt.extend({ initialize: function (t) { ut.extend(this, t), this.legendHitBoxes = [], this._hoveredItem = null, this.doughnutMode = !1 }, beforeUpdate: hn, update: function (t, e, i) { var n = this; return n.beforeUpdate(), n.maxWidth = t, n.maxHeight = e, n.margins = i, n.beforeSetDimensions(), n.setDimensions(), n.afterSetDimensions(), n.beforeBuildLabels(), n.buildLabels(), n.afterBuildLabels(), n.beforeFit(), n.fit(), n.afterFit(), n.afterUpdate(), n.minSize }, afterUpdate: hn, beforeSetDimensions: hn, setDimensions: function () { var t = this; t.isHorizontal() ? (t.width = t.maxWidth, t.left = 0, t.right = t.width) : (t.height = t.maxHeight, t.top = 0, t.bottom = t.height), t.paddingLeft = 0, t.paddingTop = 0, t.paddingRight = 0, t.paddingBottom = 0, t.minSize = { width: 0, height: 0 } }, afterSetDimensions: hn, beforeBuildLabels: hn, buildLabels: function () { var t = this, e = t.options.labels || {}, i = ut.callback(e.generateLabels, [t.chart], t) || []; e.filter && (i = i.filter(function (i) { return e.filter(i, t.chart.data) })), t.options.reverse && i.reverse(), t.legendItems = i }, afterBuildLabels: hn, beforeFit: hn, fit: function () { var t = this, e = t.options, i = e.labels, n = e.display, a = t.ctx, o = ut.options._parseFont(i), r = o.size, s = t.legendHitBoxes = [], l = t.minSize, d = t.isHorizontal(); if (d ? (l.width = t.maxWidth, l.height = n ? 10 : 0) : (l.width = n ? 10 : 0, l.height = t.maxHeight), n) if (a.font = o.string, d) { var u = t.lineWidths = [0], h = 0; a.textAlign = "left", a.textBaseline = "top", ut.each(t.legendItems, function (t, e) { var n = fn(i, r) + r / 2 + a.measureText(t.text).width; (0 === e || u[u.length - 1] + n + i.padding > l.width) && (h += r + i.padding, u[u.length - (e > 0 ? 0 : 1)] = i.padding), s[e] = { left: 0, top: 0, width: n, height: r }, u[u.length - 1] += n + i.padding }), l.height += h } else { var c = i.padding, f = t.columnWidths = [], g = i.padding, p = 0, m = 0, v = r + c; ut.each(t.legendItems, function (t, e) { var n = fn(i, r) + r / 2 + a.measureText(t.text).width; e > 0 && m + v > l.height - c && (g += p + i.padding, f.push(p), p = 0, m = 0), p = Math.max(p, n), m += v, s[e] = { left: 0, top: 0, width: n, height: r } }), g += p, f.push(p), l.width += g } t.width = l.width, t.height = l.height }, afterFit: hn, isHorizontal: function () { return "top" === this.options.position || "bottom" === this.options.position }, draw: function () { var t = this, e = t.options, i = e.labels, n = st.global, a = n.defaultColor, o = n.elements.line, r = t.width, s = t.lineWidths; if (e.display) { var l, d = t.ctx, u = cn(i.fontColor, n.defaultFontColor), h = ut.options._parseFont(i), c = h.size; d.textAlign = "left", d.textBaseline = "middle", d.lineWidth = .5, d.strokeStyle = u, d.fillStyle = u, d.font = h.string; var f = fn(i, c), g = t.legendHitBoxes, p = t.isHorizontal(); l = p ? { x: t.left + (r - s[0]) / 2 + i.padding, y: t.top + i.padding, line: 0 } : { x: t.left + i.padding, y: t.top + i.padding, line: 0 }; var m = c + i.padding; ut.each(t.legendItems, function (n, u) { var h = d.measureText(n.text).width, v = f + c / 2 + h, b = l.x, x = l.y; p ? u > 0 && b + v + i.padding > t.left + t.minSize.width && (x = l.y += m, l.line++, b = l.x = t.left + (r - s[l.line]) / 2 + i.padding) : u > 0 && x + m > t.top + t.minSize.height && (b = l.x = b + t.columnWidths[l.line] + i.padding, x = l.y = t.top + i.padding, l.line++), function (t, i, n) { if (!(isNaN(f) || f <= 0)) { d.save(); var r = cn(n.lineWidth, o.borderWidth); if (d.fillStyle = cn(n.fillStyle, a), d.lineCap = cn(n.lineCap, o.borderCapStyle), d.lineDashOffset = cn(n.lineDashOffset, o.borderDashOffset), d.lineJoin = cn(n.lineJoin, o.borderJoinStyle), d.lineWidth = r, d.strokeStyle = cn(n.strokeStyle, a), d.setLineDash && d.setLineDash(cn(n.lineDash, o.borderDash)), e.labels && e.labels.usePointStyle) { var s = f * Math.SQRT2 / 2, l = t + f / 2, u = i + c / 2; ut.canvas.drawPoint(d, n.pointStyle, s, l, u) } else 0 !== r && d.strokeRect(t, i, f, c), d.fillRect(t, i, f, c); d.restore() } }(b, x, n), g[u].left = b, g[u].top = x, function (t, e, i, n) { var a = c / 2, o = f + a + t, r = e + a; d.fillText(i.text, o, r), i.hidden && (d.beginPath(), d.lineWidth = 2, d.moveTo(o, r), d.lineTo(o + n, r), d.stroke()) }(b, x, n, h), p ? l.x += v + i.padding : l.y += m }) } }, _getLegendItemAt: function (t, e) { var i, n, a, o = this; if (t >= o.left && t <= o.right && e >= o.top && e <= o.bottom) for (a = o.legendHitBoxes, i = 0; i < a.length; ++i)if (t >= (n = a[i]).left && t <= n.left + n.width && e >= n.top && e <= n.top + n.height) return o.legendItems[i]; return null }, handleEvent: function (t) { var e, i = this, n = i.options, a = "mouseup" === t.type ? "click" : t.type; if ("mousemove" === a) { if (!n.onHover && !n.onLeave) return } else { if ("click" !== a) return; if (!n.onClick) return } e = i._getLegendItemAt(t.x, t.y), "click" === a ? e && n.onClick && n.onClick.call(i, t.native, e) : (n.onLeave && e !== i._hoveredItem && (i._hoveredItem && n.onLeave.call(i, t.native, i._hoveredItem), i._hoveredItem = e), n.onHover && e && n.onHover.call(i, t.native, e)) } }); function pn(t, e) { var i = new gn({ ctx: t.ctx, options: e, chart: t }); ke.configure(t, i, e), ke.addBox(t, i), t.legend = i } var mn = { id: "legend", _element: gn, beforeInit: function (t) { var e = t.options.legend; e && pn(t, e) }, beforeUpdate: function (t) { var e = t.options.legend, i = t.legend; e ? (ut.mergeIf(e, st.global.legend), i ? (ke.configure(t, i, e), i.options = e) : pn(t, e)) : i && (ke.removeBox(t, i), delete t.legend) }, afterEvent: function (t, e) { var i = t.legend; i && i.handleEvent(e) } }, vn = ut.noop; st._set("global", { title: { display: !1, fontStyle: "bold", fullWidth: !0, padding: 10, position: "top", text: "", weight: 2e3 } }); var bn = pt.extend({ initialize: function (t) { ut.extend(this, t), this.legendHitBoxes = [] }, beforeUpdate: vn, update: function (t, e, i) { var n = this; return n.beforeUpdate(), n.maxWidth = t, n.maxHeight = e, n.margins = i, n.beforeSetDimensions(), n.setDimensions(), n.afterSetDimensions(), n.beforeBuildLabels(), n.buildLabels(), n.afterBuildLabels(), n.beforeFit(), n.fit(), n.afterFit(), n.afterUpdate(), n.minSize }, afterUpdate: vn, beforeSetDimensions: vn, setDimensions: function () { var t = this; t.isHorizontal() ? (t.width = t.maxWidth, t.left = 0, t.right = t.width) : (t.height = t.maxHeight, t.top = 0, t.bottom = t.height), t.paddingLeft = 0, t.paddingTop = 0, t.paddingRight = 0, t.paddingBottom = 0, t.minSize = { width: 0, height: 0 } }, afterSetDimensions: vn, beforeBuildLabels: vn, buildLabels: vn, afterBuildLabels: vn, beforeFit: vn, fit: function () { var t = this, e = t.options, i = e.display, n = t.minSize, a = ut.isArray(e.text) ? e.text.length : 1, o = ut.options._parseFont(e), r = i ? a * o.lineHeight + 2 * e.padding : 0; t.isHorizontal() ? (n.width = t.maxWidth, n.height = r) : (n.width = r, n.height = t.maxHeight), t.width = n.width, t.height = n.height }, afterFit: vn, isHorizontal: function () { var t = this.options.position; return "top" === t || "bottom" === t }, draw: function () { var t = this, e = t.ctx, i = t.options; if (i.display) { var n, a, o, r = ut.options._parseFont(i), s = r.lineHeight, l = s / 2 + i.padding, d = 0, u = t.top, h = t.left, c = t.bottom, f = t.right; e.fillStyle = ut.valueOrDefault(i.fontColor, st.global.defaultFontColor), e.font = r.string, t.isHorizontal() ? (a = h + (f - h) / 2, o = u + l, n = f - h) : (a = "left" === i.position ? h + l : f - l, o = u + (c - u) / 2, n = c - u, d = Math.PI * ("left" === i.position ? -.5 : .5)), e.save(), e.translate(a, o), e.rotate(d), e.textAlign = "center", e.textBaseline = "middle"; var g = i.text; if (ut.isArray(g)) for (var p = 0, m = 0; m < g.length; ++m)e.fillText(g[m], 0, p, n), p += s; else e.fillText(g, 0, 0, n); e.restore() } } }); function xn(t, e) { var i = new bn({ ctx: t.ctx, options: e, chart: t }); ke.configure(t, i, e), ke.addBox(t, i), t.titleBlock = i } var yn = {}, kn = un, wn = mn, Mn = { id: "title", _element: bn, beforeInit: function (t) { var e = t.options.title; e && xn(t, e) }, beforeUpdate: function (t) { var e = t.options.title, i = t.titleBlock; e ? (ut.mergeIf(e, st.global.title), i ? (ke.configure(t, i, e), i.options = e) : xn(t, e)) : i && (ke.removeBox(t, i), delete t.titleBlock) } }; for (var _n in yn.filler = kn, yn.legend = wn, yn.title = Mn, ai.helpers = ut, function () { function t(t, e, i) { var n; return "string" == typeof t ? (n = parseInt(t, 10), -1 !== t.indexOf("%") && (n = n / 100 * e.parentNode[i])) : n = t, n } function e(t) { return null != t && "none" !== t } function i(i, n, a) { var o = document.defaultView, r = ut._getParentNode(i), s = o.getComputedStyle(i)[n], l = o.getComputedStyle(r)[n], d = e(s), u = e(l), h = Number.POSITIVE_INFINITY; return d || u ? Math.min(d ? t(s, i, a) : h, u ? t(l, r, a) : h) : "none" } ut.where = function (t, e) { if (ut.isArray(t) && Array.prototype.filter) return t.filter(e); var i = []; return ut.each(t, function (t) { e(t) && i.push(t) }), i }, ut.findIndex = Array.prototype.findIndex ? function (t, e, i) { return t.findIndex(e, i) } : function (t, e, i) { i = void 0 === i ? t : i; for (var n = 0, a = t.length; n < a; ++n)if (e.call(i, t[n], n, t)) return n; return -1 }, ut.findNextWhere = function (t, e, i) { ut.isNullOrUndef(i) && (i = -1); for (var n = i + 1; n < t.length; n++) { var a = t[n]; if (e(a)) return a } }, ut.findPreviousWhere = function (t, e, i) { ut.isNullOrUndef(i) && (i = t.length); for (var n = i - 1; n >= 0; n--) { var a = t[n]; if (e(a)) return a } }, ut.isNumber = function (t) { return !isNaN(parseFloat(t)) && isFinite(t) }, ut.almostEquals = function (t, e, i) { return Math.abs(t - e) < i }, ut.almostWhole = function (t, e) { var i = Math.round(t); return i - e < t && i + e > t }, ut.max = function (t) { return t.reduce(function (t, e) { return isNaN(e) ? t : Math.max(t, e) }, Number.NEGATIVE_INFINITY) }, ut.min = function (t) { return t.reduce(function (t, e) { return isNaN(e) ? t : Math.min(t, e) }, Number.POSITIVE_INFINITY) }, ut.sign = Math.sign ? function (t) { return Math.sign(t) } : function (t) { return 0 == (t = +t) || isNaN(t) ? t : t > 0 ? 1 : -1 }, ut.log10 = Math.log10 ? function (t) { return Math.log10(t) } : function (t) { var e = Math.log(t) * Math.LOG10E, i = Math.round(e); return t === Math.pow(10, i) ? i : e }, ut.toRadians = function (t) { return t * (Math.PI / 180) }, ut.toDegrees = function (t) { return t * (180 / Math.PI) }, ut._decimalPlaces = function (t) { if (ut.isFinite(t)) { for (var e = 1, i = 0; Math.round(t * e) / e !== t;)e *= 10, i++; return i } }, ut.getAngleFromPoint = function (t, e) { var i = e.x - t.x, n = e.y - t.y, a = Math.sqrt(i * i + n * n), o = Math.atan2(n, i); return o < -.5 * Math.PI && (o += 2 * Math.PI), { angle: o, distance: a } }, ut.distanceBetweenPoints = function (t, e) { return Math.sqrt(Math.pow(e.x - t.x, 2) + Math.pow(e.y - t.y, 2)) }, ut.aliasPixel = function (t) { return t % 2 == 0 ? 0 : .5 }, ut._alignPixel = function (t, e, i) { var n = t.currentDevicePixelRatio, a = i / 2; return Math.round((e - a) * n) / n + a }, ut.splineCurve = function (t, e, i, n) { var a = t.skip ? e : t, o = e, r = i.skip ? e : i, s = Math.sqrt(Math.pow(o.x - a.x, 2) + Math.pow(o.y - a.y, 2)), l = Math.sqrt(Math.pow(r.x - o.x, 2) + Math.pow(r.y - o.y, 2)), d = s / (s + l), u = l / (s + l), h = n * (d = isNaN(d) ? 0 : d), c = n * (u = isNaN(u) ? 0 : u); return { previous: { x: o.x - h * (r.x - a.x), y: o.y - h * (r.y - a.y) }, next: { x: o.x + c * (r.x - a.x), y: o.y + c * (r.y - a.y) } } }, ut.EPSILON = Number.EPSILON || 1e-14, ut.splineCurveMonotone = function (t) { var e, i, n, a, o, r, s, l, d, u = (t || []).map(function (t) { return { model: t._model, deltaK: 0, mK: 0 } }), h = u.length; for (e = 0; e < h; ++e)if (!(n = u[e]).model.skip) { if (i = e > 0 ? u[e - 1] : null, (a = e < h - 1 ? u[e + 1] : null) && !a.model.skip) { var c = a.model.x - n.model.x; n.deltaK = 0 !== c ? (a.model.y - n.model.y) / c : 0 } !i || i.model.skip ? n.mK = n.deltaK : !a || a.model.skip ? n.mK = i.deltaK : this.sign(i.deltaK) !== this.sign(n.deltaK) ? n.mK = 0 : n.mK = (i.deltaK + n.deltaK) / 2 } for (e = 0; e < h - 1; ++e)n = u[e], a = u[e + 1], n.model.skip || a.model.skip || (ut.almostEquals(n.deltaK, 0, this.EPSILON) ? n.mK = a.mK = 0 : (o = n.mK / n.deltaK, r = a.mK / n.deltaK, (l = Math.pow(o, 2) + Math.pow(r, 2)) <= 9 || (s = 3 / Math.sqrt(l), n.mK = o * s * n.deltaK, a.mK = r * s * n.deltaK))); for (e = 0; e < h; ++e)(n = u[e]).model.skip || (i = e > 0 ? u[e - 1] : null, a = e < h - 1 ? u[e + 1] : null, i && !i.model.skip && (d = (n.model.x - i.model.x) / 3, n.model.controlPointPreviousX = n.model.x - d, n.model.controlPointPreviousY = n.model.y - d * n.mK), a && !a.model.skip && (d = (a.model.x - n.model.x) / 3, n.model.controlPointNextX = n.model.x + d, n.model.controlPointNextY = n.model.y + d * n.mK)) }, ut.nextItem = function (t, e, i) { return i ? e >= t.length - 1 ? t[0] : t[e + 1] : e >= t.length - 1 ? t[t.length - 1] : t[e + 1] }, ut.previousItem = function (t, e, i) { return i ? e <= 0 ? t[t.length - 1] : t[e - 1] : e <= 0 ? t[0] : t[e - 1] }, ut.niceNum = function (t, e) { var i = Math.floor(ut.log10(t)), n = t / Math.pow(10, i); return (e ? n < 1.5 ? 1 : n < 3 ? 2 : n < 7 ? 5 : 10 : n <= 1 ? 1 : n <= 2 ? 2 : n <= 5 ? 5 : 10) * Math.pow(10, i) }, ut.requestAnimFrame = "undefined" == typeof window ? function (t) { t() } : window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame || function (t) { return window.setTimeout(t, 1e3 / 60) }, ut.getRelativePosition = function (t, e) { var i, n, a = t.originalEvent || t, o = t.target || t.srcElement, r = o.getBoundingClientRect(), s = a.touches; s && s.length > 0 ? (i = s[0].clientX, n = s[0].clientY) : (i = a.clientX, n = a.clientY); var l = parseFloat(ut.getStyle(o, "padding-left")), d = parseFloat(ut.getStyle(o, "padding-top")), u = parseFloat(ut.getStyle(o, "padding-right")), h = parseFloat(ut.getStyle(o, "padding-bottom")), c = r.right - r.left - l - u, f = r.bottom - r.top - d - h; return { x: i = Math.round((i - r.left - l) / c * o.width / e.currentDevicePixelRatio), y: n = Math.round((n - r.top - d) / f * o.height / e.currentDevicePixelRatio) } }, ut.getConstraintWidth = function (t) { return i(t, "max-width", "clientWidth") }, ut.getConstraintHeight = function (t) { return i(t, "max-height", "clientHeight") }, ut._calculatePadding = function (t, e, i) { return (e = ut.getStyle(t, e)).indexOf("%") > -1 ? i * parseInt(e, 10) / 100 : parseInt(e, 10) }, ut._getParentNode = function (t) { var e = t.parentNode; return e && "[object ShadowRoot]" === e.toString() && (e = e.host), e }, ut.getMaximumWidth = function (t) { var e = ut._getParentNode(t); if (!e) return t.clientWidth; var i = e.clientWidth, n = i - ut._calculatePadding(e, "padding-left", i) - ut._calculatePadding(e, "padding-right", i), a = ut.getConstraintWidth(t); return isNaN(a) ? n : Math.min(n, a) }, ut.getMaximumHeight = function (t) { var e = ut._getParentNode(t); if (!e) return t.clientHeight; var i = e.clientHeight, n = i - ut._calculatePadding(e, "padding-top", i) - ut._calculatePadding(e, "padding-bottom", i), a = ut.getConstraintHeight(t); return isNaN(a) ? n : Math.min(n, a) }, ut.getStyle = function (t, e) { return t.currentStyle ? t.currentStyle[e] : document.defaultView.getComputedStyle(t, null).getPropertyValue(e) }, ut.retinaScale = function (t, e) { var i = t.currentDevicePixelRatio = e || "undefined" != typeof window && window.devicePixelRatio || 1; if (1 !== i) { var n = t.canvas, a = t.height, o = t.width; n.height = a * i, n.width = o * i, t.ctx.scale(i, i), n.style.height || n.style.width || (n.style.height = a + "px", n.style.width = o + "px") } }, ut.fontString = function (t, e, i) { return e + " " + t + "px " + i }, ut.longestText = function (t, e, i, n) { var a = (n = n || {}).data = n.data || {}, o = n.garbageCollect = n.garbageCollect || []; n.font !== e && (a = n.data = {}, o = n.garbageCollect = [], n.font = e), t.font = e; var r = 0; ut.each(i, function (e) { null != e && !0 !== ut.isArray(e) ? r = ut.measureText(t, a, o, r, e) : ut.isArray(e) && ut.each(e, function (e) { null == e || ut.isArray(e) || (r = ut.measureText(t, a, o, r, e)) }) }); var s = o.length / 2; if (s > i.length) { for (var l = 0; l < s; l++)delete a[o[l]]; o.splice(0, s) } return r }, ut.measureText = function (t, e, i, n, a) { var o = e[a]; return o || (o = e[a] = t.measureText(a).width, i.push(a)), o > n && (n = o), n }, ut.numberOfLabelLines = function (t) { var e = 1; return ut.each(t, function (t) { ut.isArray(t) && t.length > e && (e = t.length) }), e }, ut.color = X ? function (t) { return t instanceof CanvasGradient && (t = st.global.defaultColor), X(t) } : function (t) { return console.error("Color.js not found!"), t }, ut.getHoverColor = function (t) { return t instanceof CanvasPattern || t instanceof CanvasGradient ? t : ut.color(t).saturate(.5).darken(.1).rgbString() } }(), ai._adapters = si, ai.Animation = vt, ai.animationService = bt, ai.controllers = ue, ai.DatasetController = Mt, ai.defaults = st, ai.Element = pt, ai.elements = Wt, ai.Interaction = ve, ai.layouts = ke, ai.platform = Ve, ai.plugins = Ee, ai.Scale = fi, ai.scaleService = He, ai.Ticks = li, ai.Tooltip = Je, ai.helpers.each(tn, function (t, e) { ai.scaleService.registerScaleType(e, t, t._defaults) }), yn) yn.hasOwnProperty(_n) && ai.plugins.register(yn[_n]); ai.platform.initialize(); var Cn = ai; return "undefined" != typeof window && (window.Chart = ai), ai.Chart = ai, ai.Legend = yn.legend._element, ai.Title = yn.title._element, ai.pluginService = ai.plugins, ai.PluginBase = ai.Element.extend({}), ai.canvasHelpers = ai.helpers.canvas, ai.layoutService = ai.layouts, ai.LinearScaleBase = bi, ai.helpers.each(["Bar", "Bubble", "Doughnut", "Line", "PolarArea", "Radar", "Scatter"], function (t) { ai[t] = function (e, i) { return new ai(e, ai.helpers.merge(i || {}, { type: t.charAt(0).toLowerCase() + t.slice(1) })) } }), Cn });
\ No newline at end of file
diff --git a/WebTM/layuiadmin/lineBreakTransformer.js b/WebTM/layuiadmin/lineBreakTransformer.js
new file mode 100644
index 0000000..00f7aff
--- /dev/null
+++ b/WebTM/layuiadmin/lineBreakTransformer.js
@@ -0,0 +1,21 @@
+锘�// 灏嗗師鏈彲鑳芥埅鏂垚澶氫釜瀛楃涓茬殑鍐呭鎸夐『搴忓悎骞朵竴涓瓧绗︿覆
+class LineBreakTransformer {
+ constructor() {
+ // 淇濆瓨娴佹暟鎹洿鍒版柊琛屽嚭鐜扮殑瀹瑰櫒
+ this.container = "";
+ }
+
+ transform(chunk, controller) {
+ // 灏嗘柊鍧楄拷鍔犲埌鐜版湁鍧椼��
+ this.container += chunk;
+ // 瀵逛簬姣忎竴琛屽垎娈碉紝灏嗚В鏋愬悗鐨勮鍙戦�佸嚭鍘汇��
+ const lines = this.container.split("\r");
+ this.container = lines.pop();
+ lines.forEach((line) => controller.enqueue(line));
+ }
+
+ flush(controller) {
+ // 褰撴祦鍏抽棴鏃讹紝娓呴櫎鎵�鏈夊墿浣欑殑鍧椼��
+ controller.enqueue(this.container);
+ }
+}
diff --git a/WebTM/layuiadmin/serial-reader.js b/WebTM/layuiadmin/serial-reader.js
new file mode 100644
index 0000000..dff3d18
--- /dev/null
+++ b/WebTM/layuiadmin/serial-reader.js
@@ -0,0 +1,68 @@
+锘縞lass SerialReader {
+ port;//涓插彛
+ reader;//璇诲彇
+ inputDone;
+
+ constructor() {
+ if (!("serial" in navigator)) {
+ alert('褰撳墠娴忚鍣ㄤ笉鏀寔涓插彛');
+ return;
+ }
+ this.filtersSweep = [
+ { usbVendorId: 0x2341, usbProductId: 0x0043 },//鎸囧畾鏄剧ず鐨勮澶嘔D锛屽ソ鍍忓彧鏈塙SB鎺ュ彛鎵嶆湁
+ ];//涓插彛璇嗗埆鐮�-鎵爜鏈�
+ }
+
+ //鍒濆鍖�
+ initSweepPrinter = async (baudRate, dataBits, stopBits, parity) => {
+ let requestOptions = { filters: this.filtersSweep };
+
+ this.port = await navigator.serial.requestPort(requestOptions);
+
+ await this.port.open({
+ baudRate: baudRate,// 涓�涓鐨勩�侀潪闆剁殑鍊硷紝琛ㄧず涓插彛閫氫俊搴旇寤虹珛鐨勬尝鐗圭巼
+ dataBits: dataBits,// 7鎴�8鐨勬暣鏁板�硷紝琛ㄧず姣忓抚鐨勬暟鎹綅鏁般�傞粯璁ゅ�间负8
+ stopBits: stopBits,// 1鎴�2鐨勬暣鏁板�硷紝琛ㄧず甯х粨鏉熸椂鐨勫仠姝綅鏁般�傞粯璁ゅ�间负1銆�
+ parity: parity,// 濂囧伓鏍¢獙妯″紡涓衡�渘one鈥濄�佲�滃伓鈥濇垨鈥滃鈥濄�傞粯璁ゅ�间负none銆�
+ bufferSize: 255, // 涓�涓棤绗﹀彿闀挎暣鏁帮紝鎸囩ず瑕佸缓绔嬬殑璇诲拰鍐欑紦鍐插尯鐨勫ぇ灏忋�傚鏋滄湭閫氳繃锛岄粯璁ゅ�间负255銆�
+ flowControl: 'none', // 娴佹帶鍒剁被鍨嬶紝鈥渘one鈥濇垨鈥渉ardware鈥濄�傞粯璁ゅ�间负none銆�
+ });
+
+ const decoder = new TextDecoderStream();
+ this.inputDone = this.port.readable.pipeTo(decoder.writable);
+ // this.reader = decoder.readable.pipeThrough(new TransformStream(new LineBreakTransformer())).getReader();//USB濂藉儚闇�瑕佺壒娈婂鐞�,娌℃湁娴嬭瘯杩�
+ this.reader = decoder.readable.getReader();//鏄剧ず鍣ㄦ帴澶寸洿鎺ヨ繑鍥炴暟鎹�
+
+ console.log('杩炴帴鎴愬姛');
+
+ return new Promise(async (resolve, reject) => {
+ while (true) {
+ const { value, done } = await this.reader.read();
+ if (value) {
+ $('#myForm').find("textarea[name='getMessageArea']").append(value)
+ console.log('鎵爜鏈烘暟鎹� = ', value);
+ resolve(value);
+ }
+ if (done) {
+ this.reader.releaseLock();
+ break;
+ }
+ }
+ })
+ }
+
+ //鏂紑
+ disconnect = async () => {
+ return new Promise(async (resolve, reject) => {
+ if (this.reader && this.port && this.inputDone) {
+ await this.reader.cancel();
+ await this.inputDone.catch(() => { });
+ this.reader = null;
+ this.inputDone = null;
+ await this.port.close();
+ this.port = null;
+ resolve();
+ }
+ })
+ }
+}
diff --git a/WebTM/views/index.html b/WebTM/views/index.html
index e67e69b..0cf0c60 100644
--- a/WebTM/views/index.html
+++ b/WebTM/views/index.html
@@ -301,6 +301,7 @@
<a>宸ヨ壓璺嚎</a>
<dl class="layui-nav-child">
<dd><a lay-href="璁″垝绠$悊/宸ヨ壓璺嚎/Gy_RoutingBillList.html">宸ヨ壓璺嚎缁存姢</a></dd>
+ <dd><a lay-href="璁″垝绠$悊/宸ヨ壓璺嚎/Gy_RoutingBillSubList.html">宸ヨ壓瀛愯矾绾跨淮鎶�</a></dd>
<dd><a lay-href="璁″垝绠$悊/宸ヨ壓璺嚎/Gy_RoutingBillListQuery.html">宸ヨ壓璺嚎鏌ヨ</a></dd>
<dd><a lay-href="璁″垝绠$悊/宸ヨ壓璺嚎/Gy_RoutingBill.html">宸ヨ壓璺嚎</a></dd>
<dd><a lay-href="璁″垝绠$悊/宸ヨ壓璺嚎/Gy_RoutingBillList_His.html">宸ヨ壓璺嚎鍘嗗彶璁板綍</a></dd>
@@ -458,9 +459,10 @@
<dd>
<a>宸ュ簭娴佽浆</a>
<dl class="layui-nav-child">
- <!--<dd><a lay-href="杞﹂棿绠$悊/宸ュ簭娴佽浆鍗�/WindowPrint.html">娴嬭瘯鎵撳嵃</a></dd>-->
+ <dd><a lay-href="杞﹂棿绠$悊/宸ュ簭娴佽浆鍗�/WindowPrint.html">娴嬭瘯鎵撳嵃</a></dd>
<dd><a lay-href="杞﹂棿绠$悊/宸ュ簭娴佽浆鍗�/Sc_ProcessExchangeBill.html">宸ュ簭娴佽浆鍗�</a></dd>
<dd><a lay-href="杞﹂棿绠$悊/宸ュ簭娴佽浆鍗�/Sc_ProcessExchangeBillList.html">宸ュ簭娴佽浆鍗$淮鎶�</a></dd>
+ <dd><a lay-href="杞﹂棿绠$悊/宸ュ簭娴佽浆鍗�/Sc_ProcessExchangeBillSubList.html">宸ュ簭瀛愭祦杞崱缁存姢</a></dd>
<dd><a lay-href="杞﹂棿绠$悊/宸ュ簭娴佽浆鍗�/Sc_ProcessExchangeIssueBillList.html">宸ュ簭娴佽浆鍗★紙涓嬭揪锛�</a></dd>
<dd><a lay-href="杞﹂棿绠$悊/宸ュ簭娴佽浆鍗�/Sc_ProcExchWorkBackBillList.html">宸ュ簭杩斿伐鐢宠鍒楄〃</a></dd>
<!--<dd><a lay-href="杞﹂棿绠$悊/宸ュ簭娴佽浆鍗�/Sc_ProcExchWorkBackBillEdit.html">宸ュ簭杩斿伐鐢宠</a></dd>-->
@@ -475,10 +477,12 @@
<dd><a lay-href="杞﹂棿绠$悊/宸ュ簭杩涚珯鎺ユ敹鍗�/Cj_StationInBill.html">宸ュ簭杩涚珯鎺ユ敹鍗�</a></dd>
<dd><a lay-href="杞﹂棿绠$悊/宸ュ簭杩涚珯鎺ユ敹鍗�/Sc_StationInBill_Mul.html">宸ュ簭杩涚珯鎺ユ敹鍗曟壒閲�</a></dd>
<dd><a lay-href="杞﹂棿绠$悊/宸ュ簭杩涚珯鎺ユ敹鍗�/Cj_StationInBillList.html">宸ュ簭杩涚珯鎺ユ敹鍗曠淮鎶�</a></dd>
+ <dd><a lay-href="杞﹂棿绠$悊/宸ュ簭杩涚珯鎺ユ敹鍗�/Cj_StationInBillSubList.html">鎸囧紩鍗″紑宸ュ崟</a></dd>
<dd><a lay-href="杞﹂棿绠$悊/宸ュ簭鍑虹珯姹囨姤鍗�/Cj_StationOutBill.html">宸ュ簭鍑虹珯姹囨姤鍗�</a></dd>
<dd><a lay-href="杞﹂棿绠$悊/宸ュ簭鍑虹珯姹囨姤鍗�/Sc_StationOutBill_Mul.html">宸ュ簭鍑虹珯姹囨姤鍗曟壒閲�</a></dd>
<dd><a lay-href="杞﹂棿绠$悊/宸ュ簭鍑虹珯姹囨姤鍗�/Sc_StationOutBill_Mul_RYQ.html">宸ュ簭鍑虹珯姹囨姤鍗曟壒閲忥紙鐟炰笌绁猴級</a></dd>
<dd><a lay-href="杞﹂棿绠$悊/宸ュ簭鍑虹珯姹囨姤鍗�/Cj_StationOutBillList.html">宸ュ簭鍑虹珯姹囨姤鍗曠淮鎶�</a></dd>
+ <dd><a lay-href="杞﹂棿绠$悊/宸ュ簭鍑虹珯姹囨姤鍗�/Cj_StationOutBillSubList.html">鎸囧紩鍗″畬宸ュ崟</a></dd>
<dd><a lay-href="杞﹂棿绠$悊/濮斿宸ュ簭鍙戝嚭鍗�/Cj_StationEntrustInBill.html">宸ュ簭濮斿鍙戝嚭鍗�</a></dd>
<dd><a lay-href="杞﹂棿绠$悊/濮斿宸ュ簭鍙戝嚭鍗�/Cj_StationEntrustInBill_Mul.html">宸ュ簭濮斿鍙戝嚭鍗曟壒閲�</a></dd>
<dd><a lay-href="杞﹂棿绠$悊/濮斿宸ュ簭鍙戝嚭鍗�/Cj_StationEntrustInBillList.html">宸ュ簭濮斿鍙戝嚭鍗曠淮鎶�</a></dd>
@@ -963,6 +967,11 @@
<i class="layui-icon layui-icon-layer"></i>浼佷笟绠$悊椹鹃┒鑸�
</a>
</dd>
+ <dd>
+ <a href="http://47.96.97.237/KanBanUI/GlobalSituation.html" target="_blank">
+ <i class="layui-icon layui-icon-layer"></i>鍏ㄥ眬鐘跺喌鐪嬫澘
+ </a>
+ </dd>
</dl>
</li>
<!--鍩虹寤烘ā-->
diff --git a/WebTM/views/index_Mobile.html b/WebTM/views/index_Mobile.html
index 2ff0077..0bdec33 100644
--- a/WebTM/views/index_Mobile.html
+++ b/WebTM/views/index_Mobile.html
@@ -84,93 +84,105 @@
</a>
<dl class="layui-nav-child">
<!--<dd>
- <a lay-href="杞﹂棿绠$悊/宸ュ簭娴佽浆/MES_StationInBill_PDA_OLD.html" style="color: aqua;">
+ <a lay-href="杞﹂棿绠$悊/宸ュ簭娴佽浆/MES_StationInBill_PDA_OLD.html" style="color: aqua;">
+ <img src="../layuiadmin/myicon/鍗曟嵁褰曞埗.svg" alt="鍗曟嵁褰曞埗" style="width:25px;height:25px;margin-right: 5px;" />
+ 宸ュ簭杩涚珯鎺ユ敹鍗�
+ </a>
+ </dd>
+ <dd>
+ <a lay-href="杞﹂棿绠$悊/宸ュ簭杩涚珯鎺ユ敹鍗�/Sc_StationInBill_Mul_PDA.html" style="color: aqua;">
+ <img src="../layuiadmin/myicon/鍗曟嵁褰曞埗.svg" alt="鍗曟嵁褰曞埗" style="width:25px;height:25px;margin-right: 5px;" />
+ 宸ュ簭杩涚珯鎺ユ敹鍗曟壒閲�
+ </a>
+ </dd>
+ <dd>
+ <a lay-href="杞﹂棿绠$悊/宸ュ簭娴佽浆/MES_StationOutBill_PDA_OLD.html" style="color: aqua;">
+ <img src="../layuiadmin/myicon/鍗曟嵁褰曞埗.svg" alt="鍗曟嵁褰曞埗" style="width:25px;height:25px;margin-right: 5px;" />
+ 宸ュ簭鍑虹珯姹囨姤鍗�
+ </a>
+ </dd>
+ <dd>
+ <a lay-href="杞﹂棿绠$悊/宸ュ簭鍑虹珯姹囨姤鍗�/Sc_StationOutBill_Mul_PDA.html" style="color: aqua;">
+ <img src="../layuiadmin/myicon/鍗曟嵁褰曞埗.svg" alt="鍗曟嵁褰曞埗" style="width:25px;height:25px;margin-right: 5px;" />
+ 宸ュ簭鍑虹珯姹囨姤鍗曟壒閲�
+ </a>
+ </dd>-->
+ <!--<dd>
+ <a lay-href="杞﹂棿绠$悊/濮斿宸ュ簭鍙戝嚭鍗�/Cj_StationEntrustInBill_PDA.html" style="color: aqua;">
+ <img src="../layuiadmin/myicon/鍗曟嵁褰曞埗.svg" alt="鍗曟嵁褰曞埗" style="width:25px;height:25px;margin-right: 5px;" />
+ 宸ュ簭濮斿鍙戝嚭鍗�
+ </a>
+ </dd>
+ <dd>
+ <a lay-href="杞﹂棿绠$悊/濮斿宸ュ簭鍙戝嚭鍗�/Cj_StationEntrustInBill_Mul_PDA.html" style="color: aqua;">
+ <img src="../layuiadmin/myicon/鍗曟嵁褰曞埗.svg" alt="鍗曟嵁褰曞埗" style="width:25px;height:25px;margin-right: 5px;" />
+ 宸ュ簭濮斿鍙戝嚭鍗曟壒閲�
+ </a>
+ </dd>
+ <dd>
+ <a lay-href="杞﹂棿绠$悊/濮斿宸ュ簭鎺ユ敹鍗�/Cj_StationEntrustOutBill_PDA.html" style="color: aqua;">
+ <img src="../layuiadmin/myicon/鍗曟嵁褰曞埗.svg" alt="鍗曟嵁褰曞埗" style="width:25px;height:25px;margin-right: 5px;" />
+ 宸ュ簭濮斿鎺ユ敹鍗�
+ </a>
+ </dd>
+ <dd>
+ <a lay-href="杞﹂棿绠$悊/濮斿宸ュ簭鎺ユ敹鍗�/Cj_StationEntrustOutBill_Mul_PDA.html" style="color: aqua;">
+ <img src="../layuiadmin/myicon/鍗曟嵁褰曞埗.svg" alt="鍗曟嵁褰曞埗" style="width:25px;height:25px;margin-right: 5px;" />
+ 宸ュ簭濮斿鎺ユ敹鍗曟壒閲�
+ </a>
+ </dd>
+ <dd>
+ <a lay-href="鐢熶骇宸ュ簭绠$悊/宸ュ簭姹囨姤鍗�/Sc_ProcessReportOverList.html" style="color: aqua;">
+ <img src="../layuiadmin/myicon/鍗曟嵁褰曞埗.svg" alt="鍗曟嵁褰曞埗" style="width:25px;height:25px;margin-right: 5px;" />
+ 宸ュ簭姹囨姤鍏ュ簱鍒楄〃
+ </a>
+ </dd>
+ <dd>
+ <a lay-href="缁勮鍗�/Sc_PCruxBindingPDA.html" style="color: aqua;">
+ <img src="../layuiadmin/myicon/鍗曟嵁褰曞埗.svg" alt="鍗曟嵁褰曞埗" style="width:25px;height:25px;margin-right: 5px;" />
+ 浜х嚎鍏抽敭浠剁粦瀹�
+ </a>
+ </dd>-->
+ <!--<dd>
+ <a lay-href="" style="color: aqua;">
+ <img src="../layuiadmin/myicon/鍗曟嵁褰曞埗.svg" alt="鍗曟嵁褰曞埗" style="width:25px;height:25px;margin-right: 5px;" />
+ 宸ュ簭姹囨姤鍗昻ull
+ </a>
+ </dd>-->
+ <!--<dd>
+ <a lay-href="" style="color: aqua;">
+ <img src="../layuiadmin/myicon/鍗曟嵁褰曞埗.svg" alt="鍗曟嵁褰曞埗" style="width:25px;height:25px;margin-right: 5px;" />
+ 濮斿宸ュ簭璁″垝杞嚭鍗昻ull
+ </a>
+ </dd>-->
+ <!--<dd>
+ <a lay-href="" style="color: aqua;">
+ <img src="../layuiadmin/myicon/鍗曟嵁褰曞埗.svg" alt="鍗曟嵁褰曞埗" style="width:25px;height:25px;margin-right: 5px;" />
+ 濮斿宸ュ簭璁″垝姹囨姤鍗昻ull
+ </a>
+ </dd>-->
+ <dd>
+ <a href="杞﹂棿绠$悊/宸ュ簭娴佽浆/MES_StationInBill_PDA.html?type=jzd" target="main_self_frame" style="color: aqua;">
<img src="../layuiadmin/myicon/鍗曟嵁褰曞埗.svg" alt="鍗曟嵁褰曞埗" style="width:25px;height:25px;margin-right: 5px;" />
宸ュ簭杩涚珯鎺ユ敹鍗�
</a>
</dd>
<dd>
- <a lay-href="杞﹂棿绠$悊/宸ュ簭杩涚珯鎺ユ敹鍗�/Sc_StationInBill_Mul_PDA.html" style="color: aqua;">
+ <a href="杞﹂棿绠$悊/宸ュ簭娴佽浆/MES_StationInBill_PDA.html?type=kgd" target="main_self_frame" style="color: aqua;">
<img src="../layuiadmin/myicon/鍗曟嵁褰曞埗.svg" alt="鍗曟嵁褰曞埗" style="width:25px;height:25px;margin-right: 5px;" />
- 宸ュ簭杩涚珯鎺ユ敹鍗曟壒閲�
+ 鎸囧紩鍗″紑宸ュ崟
</a>
</dd>
<dd>
- <a lay-href="杞﹂棿绠$悊/宸ュ簭娴佽浆/MES_StationOutBill_PDA_OLD.html" style="color: aqua;">
+ <a href="杞﹂棿绠$悊/宸ュ簭娴佽浆/MES_StationOutBill_PDA.html?type=czd" target="main_self_frame" style="color: aqua;">
<img src="../layuiadmin/myicon/鍗曟嵁褰曞埗.svg" alt="鍗曟嵁褰曞埗" style="width:25px;height:25px;margin-right: 5px;" />
宸ュ簭鍑虹珯姹囨姤鍗�
</a>
</dd>
<dd>
- <a lay-href="杞﹂棿绠$悊/宸ュ簭鍑虹珯姹囨姤鍗�/Sc_StationOutBill_Mul_PDA.html" style="color: aqua;">
+ <a href="杞﹂棿绠$悊/宸ュ簭娴佽浆/MES_StationOutBill_PDA.html?type=wgd" target="main_self_frame" style="color: aqua;">
<img src="../layuiadmin/myicon/鍗曟嵁褰曞埗.svg" alt="鍗曟嵁褰曞埗" style="width:25px;height:25px;margin-right: 5px;" />
- 宸ュ簭鍑虹珯姹囨姤鍗曟壒閲�
- </a>
- </dd>-->
- <!--<dd>
- <a lay-href="杞﹂棿绠$悊/濮斿宸ュ簭鍙戝嚭鍗�/Cj_StationEntrustInBill_PDA.html" style="color: aqua;">
- <img src="../layuiadmin/myicon/鍗曟嵁褰曞埗.svg" alt="鍗曟嵁褰曞埗" style="width:25px;height:25px;margin-right: 5px;" />
- 宸ュ簭濮斿鍙戝嚭鍗�
- </a>
- </dd>
- <dd>
- <a lay-href="杞﹂棿绠$悊/濮斿宸ュ簭鍙戝嚭鍗�/Cj_StationEntrustInBill_Mul_PDA.html" style="color: aqua;">
- <img src="../layuiadmin/myicon/鍗曟嵁褰曞埗.svg" alt="鍗曟嵁褰曞埗" style="width:25px;height:25px;margin-right: 5px;" />
- 宸ュ簭濮斿鍙戝嚭鍗曟壒閲�
- </a>
- </dd>
- <dd>
- <a lay-href="杞﹂棿绠$悊/濮斿宸ュ簭鎺ユ敹鍗�/Cj_StationEntrustOutBill_PDA.html" style="color: aqua;">
- <img src="../layuiadmin/myicon/鍗曟嵁褰曞埗.svg" alt="鍗曟嵁褰曞埗" style="width:25px;height:25px;margin-right: 5px;" />
- 宸ュ簭濮斿鎺ユ敹鍗�
- </a>
- </dd>
- <dd>
- <a lay-href="杞﹂棿绠$悊/濮斿宸ュ簭鎺ユ敹鍗�/Cj_StationEntrustOutBill_Mul_PDA.html" style="color: aqua;">
- <img src="../layuiadmin/myicon/鍗曟嵁褰曞埗.svg" alt="鍗曟嵁褰曞埗" style="width:25px;height:25px;margin-right: 5px;" />
- 宸ュ簭濮斿鎺ユ敹鍗曟壒閲�
- </a>
- </dd>
- <dd>
- <a lay-href="鐢熶骇宸ュ簭绠$悊/宸ュ簭姹囨姤鍗�/Sc_ProcessReportOverList.html" style="color: aqua;">
- <img src="../layuiadmin/myicon/鍗曟嵁褰曞埗.svg" alt="鍗曟嵁褰曞埗" style="width:25px;height:25px;margin-right: 5px;" />
- 宸ュ簭姹囨姤鍏ュ簱鍒楄〃
- </a>
- </dd>
- <dd>
- <a lay-href="缁勮鍗�/Sc_PCruxBindingPDA.html" style="color: aqua;">
- <img src="../layuiadmin/myicon/鍗曟嵁褰曞埗.svg" alt="鍗曟嵁褰曞埗" style="width:25px;height:25px;margin-right: 5px;" />
- 浜х嚎鍏抽敭浠剁粦瀹�
- </a>
- </dd>-->
- <!--<dd>
- <a lay-href="" style="color: aqua;">
- <img src="../layuiadmin/myicon/鍗曟嵁褰曞埗.svg" alt="鍗曟嵁褰曞埗" style="width:25px;height:25px;margin-right: 5px;" />
- 宸ュ簭姹囨姤鍗昻ull
- </a>
- </dd>-->
- <!--<dd>
- <a lay-href="" style="color: aqua;">
- <img src="../layuiadmin/myicon/鍗曟嵁褰曞埗.svg" alt="鍗曟嵁褰曞埗" style="width:25px;height:25px;margin-right: 5px;" />
- 濮斿宸ュ簭璁″垝杞嚭鍗昻ull
- </a>
- </dd>-->
- <!--<dd>
- <a lay-href="" style="color: aqua;">
- <img src="../layuiadmin/myicon/鍗曟嵁褰曞埗.svg" alt="鍗曟嵁褰曞埗" style="width:25px;height:25px;margin-right: 5px;" />
- 濮斿宸ュ簭璁″垝姹囨姤鍗昻ull
- </a>
- </dd>-->
- <dd>
- <a href="杞﹂棿绠$悊/宸ュ簭娴佽浆/MES_StationInBill_PDA.html" target="main_self_frame" style="color: aqua;">
- <img src="../layuiadmin/myicon/鍗曟嵁褰曞埗.svg" alt="鍗曟嵁褰曞埗" style="width:25px;height:25px;margin-right: 5px;" />
- 宸ュ簭杩涚珯鎺ユ敹鍗�
- </a>
- </dd>
- <dd>
- <a href="杞﹂棿绠$悊/宸ュ簭娴佽浆/MES_StationOutBill_PDA.html" target="main_self_frame" style="color: aqua;">
- <img src="../layuiadmin/myicon/鍗曟嵁褰曞埗.svg" alt="鍗曟嵁褰曞埗" style="width:25px;height:25px;margin-right: 5px;" />
- 宸ュ簭鍑虹珯姹囨姤鍗�
+ 鎸囧紩鍗″畬宸ュ崟
</a>
</dd>
</dl>
diff --git a/WebTM/views/index_Mobile_QiaoYi.html b/WebTM/views/index_Mobile_QiaoYi.html
index 4d03ec9..32964ff 100644
--- a/WebTM/views/index_Mobile_QiaoYi.html
+++ b/WebTM/views/index_Mobile_QiaoYi.html
@@ -84,93 +84,105 @@
</a>
<dl class="layui-nav-child">
<!--<dd>
- <a lay-href="杞﹂棿绠$悊/宸ュ簭娴佽浆/MES_StationInBill_PDA_OLD.html" style="color: aqua;">
+ <a lay-href="杞﹂棿绠$悊/宸ュ簭娴佽浆/MES_StationInBill_PDA_OLD.html" style="color: aqua;">
+ <img src="../layuiadmin/myicon/鍗曟嵁褰曞埗.svg" alt="鍗曟嵁褰曞埗" style="width:25px;height:25px;margin-right: 5px;" />
+ 宸ュ簭杩涚珯鎺ユ敹鍗�
+ </a>
+ </dd>
+ <dd>
+ <a lay-href="杞﹂棿绠$悊/宸ュ簭杩涚珯鎺ユ敹鍗�/Sc_StationInBill_Mul_PDA.html" style="color: aqua;">
+ <img src="../layuiadmin/myicon/鍗曟嵁褰曞埗.svg" alt="鍗曟嵁褰曞埗" style="width:25px;height:25px;margin-right: 5px;" />
+ 宸ュ簭杩涚珯鎺ユ敹鍗曟壒閲�
+ </a>
+ </dd>
+ <dd>
+ <a lay-href="杞﹂棿绠$悊/宸ュ簭娴佽浆/MES_StationOutBill_PDA_OLD.html" style="color: aqua;">
+ <img src="../layuiadmin/myicon/鍗曟嵁褰曞埗.svg" alt="鍗曟嵁褰曞埗" style="width:25px;height:25px;margin-right: 5px;" />
+ 宸ュ簭鍑虹珯姹囨姤鍗�
+ </a>
+ </dd>
+ <dd>
+ <a lay-href="杞﹂棿绠$悊/宸ュ簭鍑虹珯姹囨姤鍗�/Sc_StationOutBill_Mul_PDA.html" style="color: aqua;">
+ <img src="../layuiadmin/myicon/鍗曟嵁褰曞埗.svg" alt="鍗曟嵁褰曞埗" style="width:25px;height:25px;margin-right: 5px;" />
+ 宸ュ簭鍑虹珯姹囨姤鍗曟壒閲�
+ </a>
+ </dd>-->
+ <!--<dd>
+ <a lay-href="杞﹂棿绠$悊/濮斿宸ュ簭鍙戝嚭鍗�/Cj_StationEntrustInBill_PDA.html" style="color: aqua;">
+ <img src="../layuiadmin/myicon/鍗曟嵁褰曞埗.svg" alt="鍗曟嵁褰曞埗" style="width:25px;height:25px;margin-right: 5px;" />
+ 宸ュ簭濮斿鍙戝嚭鍗�
+ </a>
+ </dd>
+ <dd>
+ <a lay-href="杞﹂棿绠$悊/濮斿宸ュ簭鍙戝嚭鍗�/Cj_StationEntrustInBill_Mul_PDA.html" style="color: aqua;">
+ <img src="../layuiadmin/myicon/鍗曟嵁褰曞埗.svg" alt="鍗曟嵁褰曞埗" style="width:25px;height:25px;margin-right: 5px;" />
+ 宸ュ簭濮斿鍙戝嚭鍗曟壒閲�
+ </a>
+ </dd>
+ <dd>
+ <a lay-href="杞﹂棿绠$悊/濮斿宸ュ簭鎺ユ敹鍗�/Cj_StationEntrustOutBill_PDA.html" style="color: aqua;">
+ <img src="../layuiadmin/myicon/鍗曟嵁褰曞埗.svg" alt="鍗曟嵁褰曞埗" style="width:25px;height:25px;margin-right: 5px;" />
+ 宸ュ簭濮斿鎺ユ敹鍗�
+ </a>
+ </dd>
+ <dd>
+ <a lay-href="杞﹂棿绠$悊/濮斿宸ュ簭鎺ユ敹鍗�/Cj_StationEntrustOutBill_Mul_PDA.html" style="color: aqua;">
+ <img src="../layuiadmin/myicon/鍗曟嵁褰曞埗.svg" alt="鍗曟嵁褰曞埗" style="width:25px;height:25px;margin-right: 5px;" />
+ 宸ュ簭濮斿鎺ユ敹鍗曟壒閲�
+ </a>
+ </dd>
+ <dd>
+ <a lay-href="鐢熶骇宸ュ簭绠$悊/宸ュ簭姹囨姤鍗�/Sc_ProcessReportOverList.html" style="color: aqua;">
+ <img src="../layuiadmin/myicon/鍗曟嵁褰曞埗.svg" alt="鍗曟嵁褰曞埗" style="width:25px;height:25px;margin-right: 5px;" />
+ 宸ュ簭姹囨姤鍏ュ簱鍒楄〃
+ </a>
+ </dd>
+ <dd>
+ <a lay-href="缁勮鍗�/Sc_PCruxBindingPDA.html" style="color: aqua;">
+ <img src="../layuiadmin/myicon/鍗曟嵁褰曞埗.svg" alt="鍗曟嵁褰曞埗" style="width:25px;height:25px;margin-right: 5px;" />
+ 浜х嚎鍏抽敭浠剁粦瀹�
+ </a>
+ </dd>-->
+ <!--<dd>
+ <a lay-href="" style="color: aqua;">
+ <img src="../layuiadmin/myicon/鍗曟嵁褰曞埗.svg" alt="鍗曟嵁褰曞埗" style="width:25px;height:25px;margin-right: 5px;" />
+ 宸ュ簭姹囨姤鍗昻ull
+ </a>
+ </dd>-->
+ <!--<dd>
+ <a lay-href="" style="color: aqua;">
+ <img src="../layuiadmin/myicon/鍗曟嵁褰曞埗.svg" alt="鍗曟嵁褰曞埗" style="width:25px;height:25px;margin-right: 5px;" />
+ 濮斿宸ュ簭璁″垝杞嚭鍗昻ull
+ </a>
+ </dd>-->
+ <!--<dd>
+ <a lay-href="" style="color: aqua;">
+ <img src="../layuiadmin/myicon/鍗曟嵁褰曞埗.svg" alt="鍗曟嵁褰曞埗" style="width:25px;height:25px;margin-right: 5px;" />
+ 濮斿宸ュ簭璁″垝姹囨姤鍗昻ull
+ </a>
+ </dd>-->
+ <dd>
+ <a href="杞﹂棿绠$悊/宸ュ簭娴佽浆/MES_StationInBill_PDA_QiaoYi.html?type=jzd" target="main_self_frame" style="color: aqua;">
<img src="../layuiadmin/myicon/鍗曟嵁褰曞埗.svg" alt="鍗曟嵁褰曞埗" style="width:25px;height:25px;margin-right: 5px;" />
宸ュ簭杩涚珯鎺ユ敹鍗�
</a>
</dd>
<dd>
- <a lay-href="杞﹂棿绠$悊/宸ュ簭杩涚珯鎺ユ敹鍗�/Sc_StationInBill_Mul_PDA.html" style="color: aqua;">
+ <a href="杞﹂棿绠$悊/宸ュ簭娴佽浆/MES_StationInBill_PDA_QiaoYi.html?type=kgd" target="main_self_frame" style="color: aqua;">
<img src="../layuiadmin/myicon/鍗曟嵁褰曞埗.svg" alt="鍗曟嵁褰曞埗" style="width:25px;height:25px;margin-right: 5px;" />
- 宸ュ簭杩涚珯鎺ユ敹鍗曟壒閲�
+ 鎸囧紩鍗″紑宸ュ崟
</a>
</dd>
<dd>
- <a lay-href="杞﹂棿绠$悊/宸ュ簭娴佽浆/MES_StationOutBill_PDA_OLD.html" style="color: aqua;">
+ <a href="杞﹂棿绠$悊/宸ュ簭娴佽浆/MES_StationOutBill_PDA_QiaoYi.html?type=czd" target="main_self_frame" style="color: aqua;">
<img src="../layuiadmin/myicon/鍗曟嵁褰曞埗.svg" alt="鍗曟嵁褰曞埗" style="width:25px;height:25px;margin-right: 5px;" />
宸ュ簭鍑虹珯姹囨姤鍗�
</a>
</dd>
<dd>
- <a lay-href="杞﹂棿绠$悊/宸ュ簭鍑虹珯姹囨姤鍗�/Sc_StationOutBill_Mul_PDA.html" style="color: aqua;">
+ <a href="杞﹂棿绠$悊/宸ュ簭娴佽浆/MES_StationOutBill_PDA_QiaoYi.html?type=wgd" target="main_self_frame" style="color: aqua;">
<img src="../layuiadmin/myicon/鍗曟嵁褰曞埗.svg" alt="鍗曟嵁褰曞埗" style="width:25px;height:25px;margin-right: 5px;" />
- 宸ュ簭鍑虹珯姹囨姤鍗曟壒閲�
- </a>
- </dd>-->
- <!--<dd>
- <a lay-href="杞﹂棿绠$悊/濮斿宸ュ簭鍙戝嚭鍗�/Cj_StationEntrustInBill_PDA.html" style="color: aqua;">
- <img src="../layuiadmin/myicon/鍗曟嵁褰曞埗.svg" alt="鍗曟嵁褰曞埗" style="width:25px;height:25px;margin-right: 5px;" />
- 宸ュ簭濮斿鍙戝嚭鍗�
- </a>
- </dd>
- <dd>
- <a lay-href="杞﹂棿绠$悊/濮斿宸ュ簭鍙戝嚭鍗�/Cj_StationEntrustInBill_Mul_PDA.html" style="color: aqua;">
- <img src="../layuiadmin/myicon/鍗曟嵁褰曞埗.svg" alt="鍗曟嵁褰曞埗" style="width:25px;height:25px;margin-right: 5px;" />
- 宸ュ簭濮斿鍙戝嚭鍗曟壒閲�
- </a>
- </dd>
- <dd>
- <a lay-href="杞﹂棿绠$悊/濮斿宸ュ簭鎺ユ敹鍗�/Cj_StationEntrustOutBill_PDA.html" style="color: aqua;">
- <img src="../layuiadmin/myicon/鍗曟嵁褰曞埗.svg" alt="鍗曟嵁褰曞埗" style="width:25px;height:25px;margin-right: 5px;" />
- 宸ュ簭濮斿鎺ユ敹鍗�
- </a>
- </dd>
- <dd>
- <a lay-href="杞﹂棿绠$悊/濮斿宸ュ簭鎺ユ敹鍗�/Cj_StationEntrustOutBill_Mul_PDA.html" style="color: aqua;">
- <img src="../layuiadmin/myicon/鍗曟嵁褰曞埗.svg" alt="鍗曟嵁褰曞埗" style="width:25px;height:25px;margin-right: 5px;" />
- 宸ュ簭濮斿鎺ユ敹鍗曟壒閲�
- </a>
- </dd>
- <dd>
- <a lay-href="鐢熶骇宸ュ簭绠$悊/宸ュ簭姹囨姤鍗�/Sc_ProcessReportOverList.html" style="color: aqua;">
- <img src="../layuiadmin/myicon/鍗曟嵁褰曞埗.svg" alt="鍗曟嵁褰曞埗" style="width:25px;height:25px;margin-right: 5px;" />
- 宸ュ簭姹囨姤鍏ュ簱鍒楄〃
- </a>
- </dd>
- <dd>
- <a lay-href="缁勮鍗�/Sc_PCruxBindingPDA.html" style="color: aqua;">
- <img src="../layuiadmin/myicon/鍗曟嵁褰曞埗.svg" alt="鍗曟嵁褰曞埗" style="width:25px;height:25px;margin-right: 5px;" />
- 浜х嚎鍏抽敭浠剁粦瀹�
- </a>
- </dd>-->
- <!--<dd>
- <a lay-href="" style="color: aqua;">
- <img src="../layuiadmin/myicon/鍗曟嵁褰曞埗.svg" alt="鍗曟嵁褰曞埗" style="width:25px;height:25px;margin-right: 5px;" />
- 宸ュ簭姹囨姤鍗昻ull
- </a>
- </dd>-->
- <!--<dd>
- <a lay-href="" style="color: aqua;">
- <img src="../layuiadmin/myicon/鍗曟嵁褰曞埗.svg" alt="鍗曟嵁褰曞埗" style="width:25px;height:25px;margin-right: 5px;" />
- 濮斿宸ュ簭璁″垝杞嚭鍗昻ull
- </a>
- </dd>-->
- <!--<dd>
- <a lay-href="" style="color: aqua;">
- <img src="../layuiadmin/myicon/鍗曟嵁褰曞埗.svg" alt="鍗曟嵁褰曞埗" style="width:25px;height:25px;margin-right: 5px;" />
- 濮斿宸ュ簭璁″垝姹囨姤鍗昻ull
- </a>
- </dd>-->
- <dd>
- <a href="杞﹂棿绠$悊/宸ュ簭娴佽浆/MES_StationInBill_PDA_QiaoYi.html" target="main_self_frame" style="color: aqua;">
- <img src="../layuiadmin/myicon/鍗曟嵁褰曞埗.svg" alt="鍗曟嵁褰曞埗" style="width:25px;height:25px;margin-right: 5px;" />
- 宸ュ簭杩涚珯鎺ユ敹鍗�
- </a>
- </dd>
- <dd>
- <a href="杞﹂棿绠$悊/宸ュ簭娴佽浆/MES_StationOutBill_PDA_QiaoYi.html" target="main_self_frame" style="color: aqua;">
- <img src="../layuiadmin/myicon/鍗曟嵁褰曞埗.svg" alt="鍗曟嵁褰曞埗" style="width:25px;height:25px;margin-right: 5px;" />
- 宸ュ簭鍑虹珯姹囨姤鍗�
+ 鎸囧紩鍗″畬宸ュ崟
</a>
</dd>
</dl>
diff --git "a/WebTM/views/\347\224\237\344\272\247\347\256\241\347\220\206/\347\224\237\344\272\247\350\256\241\345\210\222\345\271\263\345\217\260/Sc_ShopCalendar.html" "b/WebTM/views/\347\224\237\344\272\247\347\256\241\347\220\206/\347\224\237\344\272\247\350\256\241\345\210\222\345\271\263\345\217\260/Sc_ShopCalendar.html"
index a7b69b3..32e43ae 100644
--- "a/WebTM/views/\347\224\237\344\272\247\347\256\241\347\220\206/\347\224\237\344\272\247\350\256\241\345\210\222\345\271\263\345\217\260/Sc_ShopCalendar.html"
+++ "b/WebTM/views/\347\224\237\344\272\247\347\256\241\347\220\206/\347\224\237\344\272\247\350\256\241\345\210\222\345\271\263\345\217\260/Sc_ShopCalendar.html"
@@ -330,7 +330,7 @@
success: function (data1) {
if (data1.count == 1) {
var Year = new Date($("#HDate").val()).getFullYear();
- var num = "";
+ var num = data1.data[0]["宸ユ椂"];
if (data1.data.length != 0) {
set_InitGrid(Year, 1, num);
set_InitGrid(Year, 2, num);
@@ -386,7 +386,7 @@
}
}
} else {
- num = 8;
+ //num = 8;
set_InitGrid(Year, 1, num);
set_InitGrid(Year, 2, num);
set_InitGrid(Year, 3, num);
diff --git "a/WebTM/views/\350\275\246\351\227\264\347\256\241\347\220\206/\345\267\245\345\272\217\345\207\272\347\253\231\346\261\207\346\212\245\345\215\225/Cj_StationOutBill.html" "b/WebTM/views/\350\275\246\351\227\264\347\256\241\347\220\206/\345\267\245\345\272\217\345\207\272\347\253\231\346\261\207\346\212\245\345\215\225/Cj_StationOutBill.html"
index 47aaec6..34cdf5e 100644
--- "a/WebTM/views/\350\275\246\351\227\264\347\256\241\347\220\206/\345\267\245\345\272\217\345\207\272\347\253\231\346\261\207\346\212\245\345\215\225/Cj_StationOutBill.html"
+++ "b/WebTM/views/\350\275\246\351\227\264\347\256\241\347\220\206/\345\267\245\345\272\217\345\207\272\347\253\231\346\261\207\346\212\245\345\215\225/Cj_StationOutBill.html"
@@ -263,18 +263,28 @@
<input type="hidden" value="0" name="HQCCheckID" id="HQCCheckID">
</div>
</div>
+ <div class="layui-col-xs4 layui-inline">
+ <label class="layui-form-label">鏆傛斁鍖�</label>
+ <div class="layui-input-inline">
+ <input type="text" class="layui-input" name="HTemporaryAreaName" id="HTemporaryAreaName" style="float: left; width: 150px; background-color: #efefef4d; display: inline-block;" readonly>
+ <button class="layui-btn layuiadmin-btn-order" type="button" lay-submit="" lay-filter="BtnHTemporaryAreaName" id="BtnHTemporaryAreaName" style="width: 40px; padding: 0 10px;">
+ <i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>
+ </button>
+ <input type="hidden" value="0" name="HTemporaryAreaID" id="HTemporaryAreaID">
+ </div>
+ </div>
<!--<div class="layui-col-xs4 layui-inline">
- <label class="layui-form-label">宸ユ椂</label>
- <div class="layui-input-inline">
- <input type="text" class="layui-input" name="HWorkTimes" id="HWorkTimes" value="0">
- </div>
- </div>
- <div class="layui-col-xs4 layui-inline">
- <label class="layui-form-label">璁惧娓呭崟</label>
- <div class="layui-input-inline">
- <input type="text" class="layui-input" name="HSourceNameList" id="HSourceNameList" style="background-color:#efefef4d;" readonly>
- </div>
- </div>-->
+ <label class="layui-form-label">宸ユ椂</label>
+ <div class="layui-input-inline">
+ <input type="text" class="layui-input" name="HWorkTimes" id="HWorkTimes" value="0">
+ </div>
+ </div>
+ <div class="layui-col-xs4 layui-inline">
+ <label class="layui-form-label">璁惧娓呭崟</label>
+ <div class="layui-input-inline">
+ <input type="text" class="layui-input" name="HSourceNameList" id="HSourceNameList" style="background-color:#efefef4d;" readonly>
+ </div>
+ </div>-->
</div>
<div class="layui-row">
<!--<div class="layui-col-xs4 layui-inline">
@@ -766,6 +776,8 @@
"HSourceName": data.HSourceName,
"HQCCheckID": data.HQCCheckID,
"HQCCheckName": data.HQCCheckName,
+ "HTemporaryAreaID": data.HTemporaryAreaID,
+ "HTemporaryAreaName": data.HTemporaryAreaName,
"HEmpID": data.HEmpID,
"HEmpName": data.HEmpName,
"HEmpID2": data.HEmpID2,
@@ -1460,6 +1472,34 @@
})
});
+ //鏆傛斁鍖�
+ form.on('submit(BtnHTemporaryAreaName)', function (data) {
+ layer.open({
+ type: 2
+ , area: ['80%', '80%']
+ , title: '鏆傛斁鍖哄垪琛�'
+ , shade: 0.6 //閬僵閫忔槑搴�
+ , maxmin: true //鍏佽鍏ㄥ睆鏈�灏忓寲
+ , anim: 0 //0-6鐨勫姩鐢诲舰寮忥紝-1涓嶅紑鍚�
+ , content: ['../../鍩虹璧勬枡/鍏敤鍩虹璧勬枡/Gy_TemporaryArea.html?', 'yes']
+ , btn: ['纭畾', '鍙栨秷']
+ , btn1: function (index, layero) {
+
+ //鎸夐挳銆愭寜閽竴銆戠殑鍥炶皟
+ var iframeWindow = window['layui-layer-iframe' + index] //鑾峰彇寮规椤甸潰
+ var checkStatus = iframeWindow.layui.table.checkStatus('mainTable');//鑾峰彇table鐨別lem:"#test"
+ if (checkStatus.data.length === 0) {
+ return layer.msg('璇烽�夋嫨鏁版嵁');
+ }
+ $("#HTemporaryAreaID").val(checkStatus.data[0].HItemID);
+ $("#HTemporaryAreaName").val(checkStatus.data[0].鏆傛斁鍖哄悕绉�);
+ layer.close(layer.index); //瀹冭幏鍙栫殑濮嬬粓鏄渶鏂板脊鍑虹殑鏌愪釜灞傦紝鍊兼槸鐢眑ayer鍐呴儴鍔ㄦ�侀�掑璁$畻鐨�
+ }
+ })
+ });
+
+
+
//閫夋嫨鐢熶骇璧勬簮寮圭獥
form.on('submit(ProductionResources-BT)', function () {//鐢熶骇璧勬簮
layer.open({
diff --git "a/WebTM/views/\350\275\246\351\227\264\347\256\241\347\220\206/\345\267\245\345\272\217\345\207\272\347\253\231\346\261\207\346\212\245\345\215\225/Cj_StationOutBillList.html" "b/WebTM/views/\350\275\246\351\227\264\347\256\241\347\220\206/\345\267\245\345\272\217\345\207\272\347\253\231\346\261\207\346\212\245\345\215\225/Cj_StationOutBillList.html"
index bfc1bc6..c1d6f0d 100644
--- "a/WebTM/views/\350\275\246\351\227\264\347\256\241\347\220\206/\345\267\245\345\272\217\345\207\272\347\253\231\346\261\207\346\212\245\345\215\225/Cj_StationOutBillList.html"
+++ "b/WebTM/views/\350\275\246\351\227\264\347\256\241\347\220\206/\345\267\245\345\272\217\345\207\272\347\253\231\346\261\207\346\212\245\345\215\225/Cj_StationOutBillList.html"
@@ -797,6 +797,7 @@
default:
}
}
+ sWhere += " and HBillSubType<>'SUB'";
get_Display(sWhere);
sWhere = "";//璋冪敤鎺ュ彛鍚庢竻绌簊Where缂撳瓨
}
diff --git "a/WebTM/views/\350\275\246\351\227\264\347\256\241\347\220\206/\345\267\245\345\272\217\345\207\272\347\253\231\346\261\207\346\212\245\345\215\225/Cj_StationOutBillSubList.html" "b/WebTM/views/\350\275\246\351\227\264\347\256\241\347\220\206/\345\267\245\345\272\217\345\207\272\347\253\231\346\261\207\346\212\245\345\215\225/Cj_StationOutBillSubList.html"
new file mode 100644
index 0000000..cdb086f
--- /dev/null
+++ "b/WebTM/views/\350\275\246\351\227\264\347\256\241\347\220\206/\345\267\245\345\272\217\345\207\272\347\253\231\346\261\207\346\212\245\345\215\225/Cj_StationOutBillSubList.html"
@@ -0,0 +1,961 @@
+锘�<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <title>鎸囧紩鍗″畬宸ュ崟</title>
+ <meta name="renderer" content="webkit">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+ <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
+ <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/layui.js"></script>
+ <script src="../../../layuiadmin/Scripts/json2.js"></script>
+ <script src="../../../layuiadmin/Scripts/jquery-1.4.1.js"></script>
+ <script src="../../../layuiadmin/Scripts/webConfig.js"></script>
+ <script src="../../../layuiadmin/zgqCustom/zgqCustom.js"></script>
+ <script src="../../../layuiadmin/PubCustom.js"></script>
+</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-colla-title layui-inline">
+ <div class="layui-inline">
+ <span>鏇村</span>
+ </div>
+ </div>
+ <div class="layui-inline">
+ <label class="layui-form-label" style="width: 85px;">鎿嶄綔鍛樹唬鐮�</label>
+ <div class="layui-input-block" style="margin-left: 120px;">
+ <input type="text" class="layui-input" name="HEmpNumber" id="HEmpNumber">
+ </div>
+ </div>
+ <div class="layui-inline">
+ <label class="layui-form-label" style="width: 85px;">鎿嶄綔鍛樺悕绉�</label>
+ <div class="layui-input-block" style="margin-left: 120px;">
+ <input type="text" class="layui-input" name="HEmpName" id="HEmpName">
+ </div>
+ </div>
+ <div class="layui-inline">
+ <label class="layui-form-label">鐘舵��</label>
+ <div class="layui-input-block">
+ <select name="HStatus" lay-filter="HStatus" style="width:190px;">
+ <option value="-1" selected="selected">鍏ㄩ儴</option>
+ <option value="0">鏈鏍�</option>
+ <option value="1">宸插鏍�</option>
+ <option value="2">宸插叧闂�</option>
+ </select>
+ </div>
+ </div>
+ <div class="layui-row" style="margin-top:5px">
+ <div class="layui-inline">
+ <label class="layui-form-label">寮�濮嬫棩鏈�</label>
+ <div class="layui-input-block">
+ <input type="date" class="layui-input" id="HBeginDate" style="width:190px;">
+ </div>
+ </div>
+ <div class="layui-inline">
+ <label class="layui-form-label">缁撴潫鏃ユ湡</label>
+ <div class="layui-input-block">
+ <input type="date" class="layui-input" id="HEndDate" style="width:190px;">
+ </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>
+ <button class="layui-btn layuiadmin-btn-order" type="button" lay-submit="" lay-filter="btnReSearch" id="btnReSearch" style="padding:0 5px">閲嶇疆</button>
+ </div>
+ <div class="layui-colla-content">
+ <div class="layui-row">
+ <div class="layui-inline">
+ <div class="layui-inline">
+ <span>鍏朵粬鏉′欢></span>
+ </div>
+ </div>
+ <div class="layui-inline">
+ <label class="layui-form-label" style="width: 85px;">浠诲姟鍗曞彿</label>
+ <div class="layui-input-block" style="margin-left: 120px;">
+ <input type="text" class="layui-input" name="HWorkBillNo" id="HWorkBillNo">
+ </div>
+ </div>
+ <div class="layui-inline">
+ <label class="layui-form-label" style="width: 85px;">鍗曟嵁鍙�</label>
+ <div class="layui-input-block" style="margin-left: 120px;">
+ <input type="text" class="layui-input" name="HBillNo" id="HBillNo">
+ </div>
+ </div>
+ <div class="layui-inline">
+ <label class="layui-form-label" style="width: 85px;">宸ュ簭娴佽浆鍗″彿</label>
+ <div class="layui-input-block" style="margin-left: 120px;">
+ <input type="text" class="layui-input" name="HProcExchBillNo" id="HProcExchBillNo">
+ </div>
+ </div>
+ </div>
+ <div class="layui-row" style=" margin-top: 10px; margin-left: 80px;">
+ <div class="layui-inline">
+ <label class="layui-form-label" style="width: 85px;">浜у搧浠g爜</label>
+ <div class="layui-input-block" style="margin-left: 120px;">
+ <input type="text" class="layui-input" name="HNumber" id="HNumber">
+ </div>
+ </div>
+ <div class="layui-inline">
+ <label class="layui-form-label" style="width: 85px;">褰撳墠宸ュ簭</label>
+ <div class="layui-input-block" style="margin-left: 120px;">
+ <input type="text" class="layui-input" name="HName" id="HName">
+ </div>
+ </div>
+ <div class="layui-inline">
+ <div class="layui-input-block">
+ <input type="checkbox" name="checkHWasterQty" id="checkHWasterQty" lay-skin="primary" lay-filter="checkHWasterQty" title="鎶ュ簾鏁伴噺涓嶄负0">
+ </div>
+ </div>
+ </div>
+ <div class="layui-row" style=" margin-top: 10px; margin-left: 80px;">
+ <div class="layui-inline">
+ <label class="layui-form-label">杩囨护</label>
+ <div class="layui-input-block">
+ <select name="ColName" id="ColName" lay-filter="ColName" style="width:190px;">
+ </select>
+ </div>
+ </div>
+ <div class="layui-inline">
+ <select name="Comparator" id="Comparator" lay-filter="Comparator" style="width:190px;">
+ <option value="0" selected="selected"></option>
+ <option value="=">=</option>
+ <option value=">=">>=</option>
+ <option value=">">></option>
+ <option value="<="><=</option>
+ <option value="<"><</option>
+ <option value="<>"><></option>
+ <option value="7">鍖呭惈</option>
+ <option value="8">宸﹀寘鍚�</option>
+ <option value="9">鍙冲寘鍚�</option>
+ <option value="10">涓嶅寘鍚�</option>
+ </select>
+ </div>
+ <div class="layui-inline">
+ <input type="text" class="layui-input" value="" name="ColContent" id="ColContent">
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+
+ <table class="" id="mainTable" lay-filter="mainTable"></table>
+ <script type="text/html" id="toolbarDemo">
+ <div class="layui-btn-container">
+ <button type="button" class="layui-btn layui-btn-sm" lay-event="btn-Add" id="btn-Add"><i class="layui-icon layui-icon-add-1"></i>鏂板</button>
+ <button type="button" class="layui-btn layui-btn-sm" lay-event="btn-Edit" id="btn-Edit"><i class="layui-icon layui-icon-edit"></i>缂栬緫</button>
+ <button type="button" class="layui-btn layui-btn-sm" lay-event="btn-Delete" id="btn-Delete"><i class="layui-icon layui-icon-delete"></i>鍒犻櫎</button>
+ <button type="button" class="layui-btn layui-btn-sm" lay-event="btn-Audit" id="btn-Audit"><i class="layui-icon layui-icon-radio"></i>瀹℃牳</button>
+ <button type="button" class="layui-btn layui-btn-sm" lay-event="btn-DeAudit" id="btn-DeAudit"><i class="layui-icon layui-icon-circle"></i>鍙嶅鏍�</button>
+ <button type="button" class="layui-btn layui-btn-sm" lay-event="set_CloseBill" id="set_CloseBill"><i class="layui-icon layui-icon-form"></i>鍏抽棴</button>
+ <button type="button" class="layui-btn layui-btn-sm" lay-event="set_CancelCloseBill" id="set_CancelCloseBill"><i class="layui-icon layui-icon-form"></i>鍙嶅叧闂�</button>
+ <button type="button" class="layui-btn layui-btn-sm" lay-event="btn-ProcessCheck" id="btn-ProcessCheck">宸ュ簭妫�楠�</button>
+ <!--<button type="button" class="layui-btn layui-btn-sm" lay-event="btn-Print" id="btn-Print"><i class="layui-icon layui-icon-circle"></i>棰勮</button>-->
+ <!--<button type="button" class="layui-btn layui-btn-sm" lay-event="btn-Cell" id="btn-Cell"><i class="layui-icon layui-icon-ok"></i>淇濆瓨鍒楀</button>-->
+ <!--<button type="button" class="layui-btn layui-btn-sm" lay-event="btn-RefreshCell" id="btn-RefreshCell"><i class="layui-icon layui-icon-refresh"></i>榛樿鍒楀</button>-->
+ <button type="button" class="layui-btn layui-btn-sm" lay-event="get_export" id="export"><i class="layui-icon layui-icon-export"></i>瀵煎嚭</button>
+ <button type="button" class="layui-btn layui-btn-sm" lay-event="btn-Exit" id="btn-Exit">閫�鍑�</button>
+ <button type="button" class="layui-btn layui-btn-sm" lay-event="set_HideColumn"><i class="layui-icon layui-icon-form"></i>鍒楄缃�</button>
+ </div>
+ </script>
+ </form>
+ </div>
+ </div>
+ </div>
+ </div>
+ <script type="text/html" id="toolBar">
+ <a class="layui-btn layui-btn-xs" lay-event="edit">缂栬緫</a>
+ <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">鍒犻櫎</a>
+ </script>
+ <script>
+ layui.config({
+ base: '../../../layuiadmin/' //闈欐�佽祫婧愭墍鍦ㄨ矾寰�
+ }).extend({
+ index: 'lib/index', //涓诲叆鍙fā鍧�
+ }).use(['index', 'form', 'table', 'element', 'laypage', 'laydate'], function () {
+ var $ = layui.$
+ , admin = layui.admin
+ , layer = layui.layer
+ , table = layui.table
+ , form = layui.form
+ , element = layui.element
+ , laypage = layui.laypage
+ , laydate = layui.laydate
+ , util = layui.util
+ //鍏敤鍙橀噺
+ var sWhere = "";
+ var option = [];
+ var ins; //鐢ㄤ簬瀵煎嚭excel
+ var HModName = "Cj_StationOutBillList";
+ var titleData = ["HMaterID", "HUnitID", "HSourceID", "hmainid", "HProcExchInterID", "HProcID", "HunitID", "HEmpID", "HGroupID", "HProcExchEntryID", "HSubID", "HICMOInterID", "閫夋嫨", "鏌ヨ鏃ユ湡", "鎴愭湰瀵硅薄", "鎴愭湰瀵硅薄鍚嶇О", "HBillStatus", "HBillType", "HPRDORGID"];//涓嶉渶瑕佹樉绀虹殑瀛楁 鍙墿灞�
+
+
+ //宸ュ簭娴佽浆鍗′笅鏌ユ爣璁�
+ var lookDownBar = 0; //(0:涓嬫煡鎿嶄綔锛�1锛氱洿鎺ユ煡鐪�)
+ var params = get_UrlVars(); //鑾峰彇鍙傛暟
+
+
+ //鍒濆鍖栬〃鏍�
+ set_InitGrid();
+
+ //閲嶇疆鎸夐挳
+ form.on('submit(btnReSearch)', function (data) {
+ set_ClearQuery();
+ });
+
+ //鏌ヨ鎸夐挳
+ form.on('submit(btnSearch)', function (data) {
+ get_FastQuery();
+ });
+
+ //鐢熶骇璁㈠崟鍥炶溅鏂规硶
+ $('#HWorkBillNo').on('keydown', function (event) {
+ var HWorkBillNo = $('#HWorkBillNo').val();
+ if (event.keyCode == 13) {
+ if (!HWorkBillNo) {
+ layer.msg("浠诲姟鍗曞彿涓嶈兘涓虹┖锛�")
+ return;
+ }
+ $("#btnSearch").click();
+ }
+ });
+ //鍗曟嵁鍙峰洖杞︽柟娉�
+ $('#HBillNo').on('keydown', function (event) {
+ var HBillNo = $('#HBillNo').val();
+ if (event.keyCode == 13) {
+ if (!HBillNo) {
+ layer.msg("鍗曟嵁鍙蜂笉鑳戒负绌猴紒")
+ return;
+ }
+ $("#btnSearch").click();
+ }
+ });
+ //宸ュ簭娴佽浆鍗″洖杞︽柟娉�
+ $('#HProcExchBillNo').on('keydown', function (event) {
+ var HProcExchBillNo = $('#HProcExchBillNo').val();
+ if (event.keyCode == 13) {
+ if (!HProcExchBillNo) {
+ layer.msg("宸ュ簭娴佽浆鍗″彿涓嶈兘涓虹┖锛�")
+ return;
+ }
+ $("#btnSearch").click();
+ }
+ });
+
+ //鍒濆鍖栬〃鏍�
+ function set_InitGrid() {
+ option = {
+ elem: '#mainTable'
+ , toolbar: '#toolbarDemo'
+ , height: 'full-50'
+ , page: true
+ , cellMinWidth: 90
+ , limit: 50
+ , limits: [50, 500, 5000, 20000]
+ , cols: [[
+ { type: 'checkbox', fixed: 'left' }
+ , { field: 'hmainid', title: 'hmainid', sort: true, hide: true }
+ , { field: '浠诲姟鍗�', title: '浠诲姟鍗�', width: 125 }
+ , { field: '鍗曟嵁鍙�', title: '鍗曟嵁鍙�', width: 190 }
+ , { field: '鍒跺崟浜�', title: '鍒跺崟浜�' }
+ , { field: '宸ュ簭娴佽浆鍗″彿', title: '宸ュ簭娴佽浆鍗″彿', width: 125 }
+ , { field: 'HProcID', title: 'HProcID', hide: true }
+ , { field: '娴佹按鍙�', title: '娴佹按鍙�', sort: true }
+ , { field: '褰撳墠宸ュ簭浠g爜', title: '褰撳墠宸ュ簭浠g爜', width: 125 }
+ , { field: '褰撳墠宸ュ簭', title: '褰撳墠宸ュ簭' }
+ , { field: 'HMaterID', title: 'HMaterID', hide: true }
+ , { field: '浜у搧浠g爜', title: '浜у搧浠g爜' }
+ , { field: '浜у搧鍚嶇О', title: '浜у搧鍚嶇О', width: 125 }
+ , { field: '瑙勬牸鍨嬪彿', title: '瑙勬牸鍨嬪彿' }
+ , { field: '鍑虹珯鏁伴噺', title: '鍑虹珯鏁伴噺' }
+ , { field: '涓嶈壇鏁伴噺', title: '涓嶈壇鏁伴噺' }
+ , { field: '鎶ュ簾鏁伴噺', title: '鎶ュ簾鏁伴噺' }
+ , { field: '鍖呰鏍囪瘑浠g爜', title: '鍖呰鏍囪瘑浠g爜', width: 115 }
+ , { field: '鍖呰鏍囪瘑', title: '鍖呰鏍囪瘑', width: 115 }
+ , {
+ field: '鍑虹珯鏃堕棿', title: '鍑虹珯鏃堕棿', width: 160, templet: function (d) {
+ if (d.鍑虹珯鏃堕棿 == null) {
+ return "";
+ }
+ return util.toDateString(d.鍑虹珯鏃堕棿, "yyyy-MM-dd HH:mm:ss");
+ }
+ }
+ , { field: 'HEmpID', title: 'HEmpID', hide: true }
+ , { field: '鎿嶄綔鍛樹唬鐮�', title: '鎿嶄綔鍛樹唬鐮�', width: 190 }
+ , { field: '鎿嶄綔鍛�', title: '鎿嶄綔鍛�' }
+ , { field: 'HSourceID', title: 'HSourceID', hide: true }
+ , { field: '鐢熶骇璧勬簮浠g爜', title: '鐢熶骇璧勬簮浠g爜', width: 125 }
+ , { field: '鐢熶骇璧勬簮', title: '鐢熶骇璧勬簮' }
+ , { field: 'HGroupID', title: 'HGroupID', hide: true }
+ , { field: '鐢熶骇鐝粍浠g爜', title: '鐢熶骇鐝粍浠g爜', width: 125 }
+ , { field: '鐢熶骇鐝粍', title: '鐢熶骇鐝粍' }
+ , { field: 'LOT鏁伴噺', title: 'LOT鏁伴噺' }
+ ]]
+ , text: {
+ none: '鏃犳暟鎹紒'
+ }
+ };
+ set_ClearQuery();
+ get_FastQuery();
+
+ }
+
+ //鍔熻兘鎸夐挳鏄惁绂佺敤鏂规硶锛屾瘡娆″姞杞借〃鏍奸兘瑕佽皟鐢�
+ function btnIs() {
+ //$('#btn-Add').addClass("layui-btn-disabled").attr("disabled", true);//鏂板鎸夐挳
+ //$('#btn-Delete').addClass("layui-btn-disabled").attr("disabled", true);//鍒犻櫎鎸夐挳
+ //$('#btn-Audit').addClass("layui-btn-disabled").attr("disabled", true);//瀹℃牳鎸夐挳
+ //$('#btn-DeAudit').addClass("layui-btn-disabled").attr("disabled", true);//鍙嶅鏍告寜閽�
+ $('#btn-Print').addClass("layui-btn-disabled").attr("disabled", true);//棰勮鎸夐挳
+ $('#btn-Cell').addClass("layui-btn-disabled").attr("disabled", true);//淇濆瓨鍒楀鎸夐挳
+ $('#btn-RefreshCell').addClass("layui-btn-disabled").attr("disabled", true);//榛樿鍒楀鎸夐挳
+ //$('#btn-Exit').addClass("layui-btn-disabled").attr("disabled", true);//閫�鍑烘寜閽�
+ }
+
+ //澶村伐鍏锋爮浜嬩欢
+ table.on('toolbar(mainTable)', function (obj) {
+ switch (obj.event) {
+ //鏂板
+ case 'btn-Add': set_AddNew();
+ break;
+ //缂栬緫
+ case 'btn-Edit': set_ShowBill();
+ break;
+ //鍒犻櫎
+ case 'btn-Delete': btn_Delete();
+ break;
+ //瀹℃牳
+ case 'btn-Audit': set_CheckBill();
+ break;
+ //鍙嶅鏍�
+ case 'btn-DeAudit': set_AbandonCheck();
+ break;
+ //鍏抽棴
+ case 'set_CloseBill': set_CloseBill(1);
+ break;
+ //鍙嶅叧闂�
+ case 'set_CancelCloseBill': set_CloseBill(2);
+ break;
+ //宸ュ簭妫�
+ case 'btn-ProcessCheck': set_ProcessCheck();
+ break;
+ //棰勮
+ case 'btn-Cell': layer.msg('棰勮锛�');
+ break;
+ //淇濆瓨鍒楀
+ case 'btn-Cell': layer.msg('淇濆瓨鍒楀锛�');
+ break;
+ //榛樿鍒楀
+ case 'btn-RefreshCell': layer.msg('榛樿鍒楀锛�');
+ break;
+ //閫�鍑�
+ case 'btn-Exit': get_Exit();
+ break;
+ //鍒楄缃�
+ case 'set_HideColumn': get_HideColumn();
+ break;
+ //瀵煎嚭excel
+ case 'get_export':
+ get_Export();
+ break;
+ };
+ });
+
+ //琛岀洃鍚簨浠�
+ table.on('row(mainTable)', function (obj) {
+ var flag = !obj.tr.find(':checkbox:first').prop('checked');
+ obj.tr.find(':checkbox').prop('checked', flag);
+ if (flag) {
+ obj.tr.find('.layui-form-checkbox').addClass('layui-form-checked'); //璁剧疆澶嶉�夋閫変腑鏍峰紡
+ $(obj.tr.selector).attr({ "style": "background:#ceedfa;color:black" });//鏀瑰彉褰撳墠tr鑳屾櫙棰滆壊鍜屽瓧浣撻鑹�
+ } else {
+ obj.tr.find('.layui-form-checkbox').removeClass('layui-form-checked');//鍙栨秷澶嶉�夋閫変腑鏍峰紡
+ $(obj.tr.selector).attr({ "style": "background:" });//鍙栨秷褰撳墠tr棰滆壊
+ }
+ //mainTable 涓鸿〃鏍糏D 娉ㄦ剰姝ゅ濡傛灉ID涓嶆纭皢瀵艰嚧浣犲湪鐩戝惉澶嶉�夋鏃惰幏鍙栦笉鍒颁綘閫夋嫨鐨勬暟鎹紝鍓嶉潰鐨勫彧鏄坊鍔犳垨鍒犻櫎閫変腑鏈�変腑鏍峰紡浠ュ強璁剧疆鑳屾櫙鑹诧紝瀛椾綋棰滆壊
+ layui.each(table.cache.mainTable, function (i, l) {
+ if (obj.tr.index() == l.LAY_TABLE_INDEX) {
+ l.LAY_CHECKED = flag;
+ }
+ });
+ });
+
+ //闅愯棌鍒楄缃�
+ function get_HideColumn() {
+ var colName = "";
+ for (var i = 1; i < option.cols[0].length - 1; i++) {
+ colName += option.cols[0][i]["title"] + ",";
+ }
+
+ colName = encodeURI(colName.substring(0, colName.length - 1));//瀵� URI 杩涜缂栫爜
+ layer.open({
+ type: 2
+ , skin: "layui-layer-rim" //鍔犱笂杈规
+ , title: "闅愯棌鍒楄缃�" //鏍囬
+ , closeBtn: 1 //绐椾綋鍙充笂瑙掑叧闂� 鐨� 鏍峰紡
+ , shift: 2 //寮瑰嚭鍔ㄧ敾
+ , area: ["50%", "90%"] //绐椾綋澶у皬
+ , maxmin: true //璁剧疆鏈�澶ф渶灏忔寜閽槸鍚︽樉绀�
+ , content: ['../../鍩虹璧勬枡/闅愯棌鍒楄缃�/Gy_GridView_Hide.html?HModName=' + HModName + '&colName=' + colName, "yes"]
+ , btn: ["纭畾", "鍙栨秷"]
+ , btn1: function (index, laero) {
+ //鍒锋柊琛ㄦ牸鏁版嵁
+ DisPlay_HideColumn();
+ //鏇存柊琛ㄦ牸缂撳瓨鐨勬暟鎹�
+ layer.close(index);//鍏抽棴寮圭獥
+ }
+ })
+ }
+
+ //鏄剧ず鍒楁暟鎹�
+ function DisPlay_HideColumn() {
+ $.ajax({
+ url: GetWEBURL() + '/Xt_grdAlignment_WMES/grdAlignmentWMESList',
+ type: "GET",
+ data: { "HModName": HModName, "user": sessionStorage["HUserName"] },
+ success: function (data1) {
+ if (data1.data.length != 0) {
+
+
+ var dataCol = [];//鏁版嵁搴撴煡璇㈠嚭鐨勫垪鏁版嵁
+ /*var titleData = ["HMaterID", "HUnitID", "HSourceID"];//涓嶉渶瑕佹樉绀虹殑瀛楁 鍙墿灞�*/
+
+ dataCol = data1.data[0].HGridString.split(',');
+
+ for (var i = 0; i < option.cols[0].length - 2; i++) {
+ if (dataCol[i]) {
+ var dataCols = dataCol[i].split('|');
+ }
+ //闅愯棌鍒�
+ if (dataCols[1] == 1) {
+ option.cols[0][i + 1]["hide"] = true;
+ }
+ //璁剧疆鍒楀
+ if (dataCols[3] > 0) {
+ option.cols[0][i + 1]["width"] = dataCols[3];
+ }
+ //璁剧疆鍐呭瀛椾綋澶у皬
+ if (data1.data[0].HFontSize != 0) {
+ option.cols[0][i + 1]["style"] = "font-size:" + data1.data[0].HFontSize + "px;";
+ } else {
+ option.cols[0][i + 1]["style"] = "font-size:100%";
+ }
+ //璁剧疆鍒楀
+ //if (data1.data[0].HColumnWidth != 0) {
+ // option.cols[0][i + 1]["width"] = data1.data[0].HColumnWidth + "px;";
+ //} else {
+ // option.cols[0][i + 1]["width"] = "";
+ //}
+ //鏄剧ず鍒�
+ if (dataCols[1] == 0 && $.inArray(option.cols[0][i + 1]["title"], titleData) == -1) {
+ option.cols[0][i + 1]["hide"] = false;
+ }
+ //瀛椾綋鎵�鍦ㄤ綅缃�(宸� 灞呬腑 鍙�)
+ switch (dataCols[2]) {
+ case "L":
+ option.cols[0][i + 1]["align"] = "left";
+ break;
+ case "M":
+ option.cols[0][i + 1]["align"] = "center";
+ break;
+ case "R":
+ option.cols[0][i + 1]["align"] = "right";
+ break;
+ }
+ }
+
+ //鍙栨秷鍐荤粨鍒�
+ for (var i = 1; i < option.cols[0].length - 1; i++) {
+ if (option.cols[0][i]["fixed"] != null) {
+ option.cols[0][i]["fixed"] = null;
+ }
+ else {
+ break;
+ }
+ }
+ //鍐荤粨鍒�
+ if (data1.data[0].HFixCols != 0) {
+ for (var i = 0; i < data1.data[0].HFixCols; i++) {
+ if ($.inArray(option.cols[0][i + 1]["title"], titleData) != -1) {
+ data1.data[0].HFixCols += 1;
+ }
+ option.cols[0][i + 1]["fixed"] = "left";
+ }
+ }
+ table.render(option);
+ } else {
+ table.render(option);
+ }
+ }, error: function () {
+ layer.alert("鎺ュ彛璇锋眰澶辫触!", { icon: 5 });
+ }
+ })
+ }
+
+ //瀹℃牳
+ function set_CheckBill() {
+ var checkStatus = table.checkStatus('mainTable')
+ , data = checkStatus.data;
+ if (checkStatus.data.length > 0) {
+ var InterID = [];
+ for (var i = 0; i < data.length; i++) {
+ InterID.push(data[i].hmainid.toString());
+ }
+ //閫昏緫瀹℃牳鏂规硶
+ var wait = layer.load();
+ $.ajax({
+ type: "GET",
+ url: GetWEBURL() + "/Cj_StationOutBill/set_CheckBill", //鏂规硶鎵�鍦ㄩ〉闈㈠拰鏂规硶鍚�
+ data: { "HInterID": InterID.toString(), "CurUserName": sessionStorage["HUserName"] },
+ success: function (result) {
+ if (result.count == 1) {
+ layer.msg(result.Message, { icon: 1 });
+ get_FastQuery(table, option);
+ } else {
+ layer.alert(result.Message, { icon: 5 });
+ }
+ layer.close(wait);
+ }, error: function () {
+ layer.close(wait);
+ layer.alert("鎺ュ彛璇锋眰澶辫触!", { icon: 5 });
+ }
+ });
+ }
+ else {
+ layer.msg('璇烽�夋嫨鑷冲皯涓�琛屾暟鎹鏍革紒');
+ }
+ }
+
+ //鍙嶅鏍�
+ function set_AbandonCheck() {
+ var checkStatus = table.checkStatus('mainTable')
+ , data = checkStatus.data;
+ if (checkStatus.data.length > 0) {
+ var InterID = [];
+ for (var i = 0; i < data.length; i++) {
+ InterID.push(data[i].hmainid.toString());
+ }
+ //閫昏緫瀹℃牳鏂规硶
+ var wait = layer.load();
+ $.ajax({
+ type: "GET",
+ url: GetWEBURL() + "/Cj_StationOutBill/set_AbandonCheck", //鏂规硶鎵�鍦ㄩ〉闈㈠拰鏂规硶鍚�
+ data: { "HInterID": InterID.toString(), "CurUserName": sessionStorage["HUserName"] },
+ success: function (result) {
+ if (result.count == 1) {
+ layer.msg(result.Message, { icon: 1 });
+ get_FastQuery(table, option);
+ } else {
+ layer.alert(result.Message, { icon: 5 });
+ }
+ layer.close(wait);
+ }, error: function () {
+ layer.close(wait);
+ layer.alert("鎺ュ彛璇锋眰澶辫触!", { icon: 5 });
+ }
+ });
+ }
+ else {
+ layer.msg('璇烽�夋嫨鑷冲皯涓�琛屾暟鎹鏍革紒');
+ }
+ }
+
+ //鍏抽棴 [1 鍏抽棴銆�2 鍙嶅叧闂璢
+ function set_CloseBill(num) {
+ var checkStatus = table.checkStatus('mainTable')
+ , data = checkStatus.data;
+
+ if (data.length == 1) {
+ layer.confirm("纭瑕佸叧闂悧?", function (index) {
+ var wait = layer.load();
+ var HInterID = data[0].hmainid;
+ $.ajax({
+ url: GetWEBURL() + '/Cj_StationOutBill/CloseCj_StationOutBill',
+ type: "GET",
+ data: { "HInterID": HInterID, "Type": num, "user": sessionStorage["HUserName"] },
+ success: function (result) {
+ if (result.count == 1) {
+ layer.msg(result.Message, { icon: 1 });
+ layer.close(wait);
+ } else {
+ layer.alert(result.code + result.Message, { icon: 5 });
+ layer.close(wait);
+ }
+ }, error: function () {
+ layer.alert("鎺ュ彛璇锋眰澶辫触!", { icon: 5 });
+ layer.close(wait);
+ }
+ });
+ })
+ }
+ else {
+ layer.msg("璇烽�夋嫨涓�鏉℃暟鎹�!");
+ }
+ }
+
+ //宸ュ簭妫�
+ function set_ProcessCheck() {
+ var checkStatus = table.checkStatus('mainTable')
+ , data = checkStatus.data;
+ if (checkStatus.data.length === 1) {
+ var linterid = data[0].hmainid.toString();
+ //var HICMOEntryID = data[0].HICMOEntryID.toString();
+ var OperationType = 2;
+ layer.open({
+ type: 2
+ , area: ['100%', '100%']
+ , title: '宸ュ簭妫�楠屽崟-缂栬緫'
+ , shade: 0.6
+ , maxmin: false
+ , anim: 0
+ , content: ['../../璐ㄩ噺绠$悊/宸ュ簭妫�楠屽崟/QC_ProcessCheckBill.html?OperationType=' + OperationType + '&linterid=' + linterid + '&HSouceBillType=3791&HICMOEntryID=0', 'yes']
+ , resize: false
+ , cancel: function () {
+ btnIs();
+ }
+ , end: function () {
+ get_FastQuery(table, option);
+ }
+ })
+ } else {
+ layer.msg('璇烽�夋嫨涓�琛屾暟鎹紪杈戯紒');
+ }
+ }
+
+ //鏂板鍗曟嵁
+ function set_AddNew() {
+ layer.open({
+ type: 2
+ , area: ['100%', '100%']
+ , title: '宸ュ簭鍑虹珯姹囨姤鍗�-鏂板'
+ , shade: 0.6
+ , maxmin: false
+ , anim: 0
+ , content: ['Cj_StationOutBill.html?OperationType=1&linterid=0&HSouceBillType=&HBillNo=0&closeType=1', 'yes']
+ , resize: false
+ , cancel: function () {
+ btnIs();
+ }
+ , end: function () {
+ get_FastQuery(table, option);
+ }
+ })
+ }
+
+ //缂栬緫鍗曟嵁
+ function set_ShowBill() {
+ var checkStatus = table.checkStatus('mainTable')
+ , data = checkStatus.data;
+ if (checkStatus.data.length === 1) {
+ //鎵撳紑缂栬緫椤甸潰
+ set_ShowBill_open(data);
+ } else {
+ layer.msg('璇烽�夋嫨涓�琛屾暟鎹紪杈戯紒');
+ }
+ }
+
+ //#region 鎵撳紑缂栬緫椤甸潰
+ function set_ShowBill_open(data) {
+ layer.open({
+ type: 2
+ , area: ['100%', '100%']
+ , title: '宸ュ簭鍑虹珯姹囨姤鍗�-缂栬緫'
+ , shade: 0.6
+ , maxmin: false
+ , anim: 0
+ , content: ['Cj_StationOutBill.html?OperationType=4&linterid=' + data[0].hmainid + '&HSouceBillType=&HBillNo=' + data[0].鍗曟嵁鍙�, 'yes']
+ , resize: false
+ , cancel: function () {
+ btnIs();
+ }
+ , end: function () {
+ get_FastQuery(table, option);
+ }
+ })
+ }
+ //#endregion
+
+ //閲嶇疆杩囨护鏉′欢
+ function set_ClearQuery() {
+ $("#HWorkBillNo").val("");
+ $("#HBillNo").val("");
+ $("#HBeginDate").val(Format(new Date(new Date() - 1000 * 60 * 60 * 24 * 7), "yyyy-MM-dd"));
+ $("#HEndDate").val(Format(new Date(), "yyyy-MM-dd"));
+ $("#HProcExchBillNo").val("");
+ $("#ColContent").val("");
+ $("#ColName").val("0");
+ $("#Comparator").val("0");
+ $("#HNumber").val("");
+ $("#HName").val("");
+ $("#HEmpNumber").val("");
+ $("#HEmpName").val("");
+ form.render('select');
+ sWhere = "";
+ }
+
+ //蹇�熻繃婊�
+ function get_FastQuery() {
+ //鍒ゆ柇鏄惁涓轰笅鏌ユ搷浣滐紝鑻ユ槸鍒欏彉鏇存煡璇㈠崟鍙峰拰鏃堕棿杩囨护鏉′欢
+ if (typeof (params[params[0]]) != "undefined" && lookDownBar == 0) {
+ $("#HProcExchBillNo").val(params[params[0]]);
+ $("#HBeginDate").val("1990-01-01");
+ $("#HEndDate").val("2200-12-30");
+ lookDownBar = 1;
+ }
+
+
+ var HStatus = $("select[name='HStatus']").val();//鐘舵��
+ var HBeginDate = $("#HBeginDate").val();//寮�濮嬫棩鏈�
+ var HEndDate = $("#HEndDate").val();//缁撴潫鏃ユ湡
+ var HWorkBillNo = $("#HWorkBillNo").val();
+ var HBillNo = $("#HBillNo").val();
+ var HProcExchBillNo = $("#HProcExchBillNo").val();
+ var checkHWasterQty = $("input[name='checkHWasterQty']").prop("checked");//澶嶉�夋
+ var ColName = $("#ColName").val();//澶嶉�夋
+ var Comparator = $("#Comparator").val();
+ var ColContent = $("#ColContent").val();
+ var HNumber = $("#HNumber").val(); //浜у搧浠g爜 鍗崇墿鏂欑紪鐮�
+ var HName = $("#HName").val(); //褰撳墠宸ュ簭
+ var HEmpNumber = $("#HEmpNumber").val(); //鎿嶄綔鍛樹唬鐮�
+ var HEmpName = $("#HEmpName").val(); //鎿嶄綔鍛樺悕绉�
+
+ if (ColName != 0 && Comparator != 0) {
+ var com = "";
+ switch (Comparator) {
+ case "7":
+ com = "like'%" + ColContent + "%'";
+ break;
+ case "8":
+ com = "like'%" + ColContent + "'";
+ break;
+ case "9":
+ com = "like'" + ColContent + "%'";
+ break;
+ case "10":
+ com = "not like'%" + ColContent + "%'";
+ break;
+ default:
+ com = "" + Comparator + "'" + ColContent + "'";
+ break;
+ }
+ sWhere += " and " + ColName+ " "+ com;
+ }
+
+ if (HBeginDate) {
+ sWhere += " and CONVERT(varchar(100),鍑虹珯鏃堕棿, 23) >= '" + HBeginDate + "'";
+ }
+ if (HEndDate) {
+ sWhere += " and CONVERT(varchar(100),鍑虹珯鏃堕棿, 23) <= '" + HEndDate + "'";
+ }
+ if (HWorkBillNo) {
+ sWhere += " and 浠诲姟鍗� like '%" + HWorkBillNo + "%'";
+ }
+ if (HBillNo) {
+ sWhere += " and 鍗曟嵁鍙� like '%" + HBillNo + "%'";
+ }
+ if (HProcExchBillNo) {
+ sWhere += " and 宸ュ簭娴佽浆鍗″彿 like '%" + HProcExchBillNo + "%'";
+ }
+ if (HProcExchBillNo) {
+ sWhere += " and 宸ュ簭娴佽浆鍗″彿 like '%" + HProcExchBillNo + "%'";
+ }
+ if (checkHWasterQty) {
+ sWhere += " and 鎶ュ簾鏁伴噺>0 ";
+ }
+ if (HNumber) {
+ sWhere += " and 浜у搧浠g爜 like '%" + HNumber + "%'";
+ }
+ if (HName) {
+ sWhere += " and 褰撳墠宸ュ簭 like '%" + HName + "%'";
+ }
+ if (HEmpNumber) {
+ sWhere += " and 鎿嶄綔鍛樹唬鐮� like '%" + HEmpNumber + "%'";
+ }
+ if (HEmpName) {
+ sWhere += " and 鎿嶄綔鍛� like '%" + HEmpName + "%'";
+ }
+
+ if (HStatus) {
+ switch (HStatus) {
+ case '-1': //鍏ㄩ儴
+ sWhere += "";
+ break;
+ case '0': //鏈鏍�
+ sWhere += " and 瀹℃牳浜�=''";
+ break;
+ case '1': //宸插鏍�
+ sWhere += " and 瀹℃牳浜�<>''";
+ break;
+ case '2': //宸插叧闂�
+ sWhere += " and 鍏抽棴浜�<>''";
+ default:
+ }
+ }
+ sWhere += " and HBillSubType='SUB'";
+ get_Display(sWhere);
+ sWhere = "";//璋冪敤鎺ュ彛鍚庢竻绌簊Where缂撳瓨
+ }
+
+ //鍔犺浇缃戞牸
+ function get_Display(sWhere) {
+ //杩涘叆椤甸潰鏄剧ず鐨勭紦瀛樺垪琛�
+ var ajaxLoad = layer.load();
+ var wait = layer.load();
+ $.ajax({
+ url: GetWEBURL() + '/Cj_StationOutBill/get_Display',
+ type: "GET",
+ data: { "sWhere": sWhere, "user": sessionStorage["HUserName"] },
+ //success: function (data1) {
+ // if (data1.count == 0) {
+ // option.data = [];
+ // layer.alert(data1.Message, { icon: 5 });
+ // } else {
+ // option.data = data1.data;
+ // }
+ // table.render(option);
+ // btnIs();
+ // if ($("#Comparator").val() == 0 && $("#ColContent").val() == "") {
+ // ColFilter();
+ // }
+ // layer.close(wait);
+ //}, error: function () {
+ // layer.close(wait);
+ // layer.alert("鎺ュ彛璇锋眰澶辫触!", { icon: 5 });
+ //}
+ success: function (data1) {
+ if (data1.count == 1) {
+ var data = [];
+ var col = [];
+ //缁欑┖鐨勬暟缁勮祴鍊�
+ for (var key in data1.list) {
+ data.push({ "id": data1.list[key].ColmCols, "name": data1.list[key].ColmCols, "Type": data1.list[key].ColmType });
+ }
+ //鍦ㄥ垪琛ㄥ乏杈规坊鍔犲嬀閫夋
+ col.push({ type: 'checkbox', fixed: 'left', totalRowText: '鍚堣' });
+ for (var i = 0; i < data.length; i++) {
+ // if (data[i].name == 'HInterID' || data[i].name == 'HBillType' || data[i].name == 'hmainid') {
+ if ($.inArray(data[i].name, titleData) > -1) {
+ col.push({ field: data[i].id, title: data[i].name, align: 'center', hide: true }); //闅愯棌id鍒�
+ }
+ else {
+ switch (data[i].Type) {
+ //int
+ case 'DateTime':
+ col.push({ field: data[i].id, title: data[i].name, align: 'center', sort: true, templet: "<div>{{d." + data[i].name + " ==null ?'':layui.util.toDateString(d." + data[i].name + ", 'yyyy-MM-dd HH:mm:ss')}}</div>", width: 200 });
+ break;
+ default:
+ if (data[i].name == '鏁伴噺' || data[i].name == '鍑虹珯鏁伴噺' || data[i].name == '鎶ュ簾鏁伴噺') {
+ col.push({ field: data[i].id, title: data[i].name, align: 'center', sort: true, width: 200, totalRow: true });
+ } else {
+ col.push({ field: data[i].id, title: data[i].name, align: 'center', sort: true, width: 200 });
+ }
+ }
+ }
+ }
+
+ //鍔ㄦ�佹樉绀哄垪鍚�
+ option = {
+ elem: '#mainTable'
+ , toolbar: '#toolbarDemo'
+ , cols: [col]
+ , data: data1.data
+ , height: 'full-50'
+ , page: true
+ , totalRow: true
+ , cellMinWidth: 90
+ , limit: 50
+ , limits: [50, 500, 5000, 20000]
+ }
+ ins = table.render(option);
+
+ //鍒锋柊琛ㄦ牸鏁版嵁
+ DisPlay_HideColumn();
+
+ layer.close(ajaxLoad);
+ if ($("#Comparator").val() == 0 && $("#ColContent").val() == "") {
+ ColFilter();
+ }
+ //layer.alert("鏌ヨ鎴愬姛", { icon: 1 });
+ } else {
+ layer.close(ajaxLoad);
+ layer.alert(data1.code + data1.Message, { icon: 5 });
+ }
+ }, error: function () {
+ layer.close(ajaxLoad);
+ layer.alert("鎺ュ彛璇锋眰澶辫触!", { icon: 5 });
+ }
+ });
+ layer.close(wait);
+ }
+
+ //鍒犻櫎鍗曟嵁
+ function btn_Delete() {
+ var checkStatus = table.checkStatus('mainTable')
+ , data = checkStatus.data;
+ if (checkStatus.data.length === 1) {
+ layer.confirm('纭畾鍒犻櫎' + data[0].鍗曟嵁鍙� + '鍚楋紵', function (index) {
+ var ajaxLoad = layer.load();
+ //閫昏緫鍒犻櫎鏂规硶
+ $.ajax({
+ url: GetWEBURL() + '/Cj_StationOutBill/del_StationOutBill',
+ type: "GET",
+ data: { "HInterID": data[0].hmainid, "HDeleteMan": sessionStorage["HUserName"] },
+ success: function (result) {
+ if (result.count == 1) {
+ get_FastQuery();
+ layer.close(ajaxLoad);
+ } else {
+ layer.close(ajaxLoad);
+ layer.alert(result.Message, { icon: 5 });
+ }
+ }, error: function () {
+ layer.close(ajaxLoad);
+ layer.alert("鎺ュ彛璇锋眰澶辫触!", { icon: 5 });
+ }
+ });
+ layer.close(index);
+ });
+ } else {
+ layer.msg('璇烽�夋嫨涓�琛屾暟鎹紪杈戯紒');
+ }
+ }
+
+ //閫�鍑�
+ function get_Exit() {
+ Pub_Close(2);
+ }
+
+ //瀵煎嚭Execel
+ function get_Export() {
+ table.exportFile(ins.config.id, option.data, "xls");
+ }
+
+ //鍒楁槑鏄剧ず涓嬫媺妗�
+ function ColFilter() {
+ var Organization = '<option value="0" selected="selected" ></option>';
+ for (var i = 1; i < option.cols[0].length; i++) {
+ if (option.cols[0][i].hide != true) {
+ Organization += '<option style="color:blue;" value="' + option.cols[0][i].field + '">' + option.cols[0][i].field + '</option>';
+ }
+ }
+ $("#ColName").empty()
+ $("#ColName").append(Organization);
+ form.render('select');
+ }
+
+ //浠ヤ笂鏄痩ayui妯″潡
+ });
+
+
+
+
+ </script>
+
+</body>
+</html>
\ No newline at end of file
diff --git "a/WebTM/views/\350\275\246\351\227\264\347\256\241\347\220\206/\345\267\245\345\272\217\346\265\201\350\275\254/MES_StationInBill_PDA.html" "b/WebTM/views/\350\275\246\351\227\264\347\256\241\347\220\206/\345\267\245\345\272\217\346\265\201\350\275\254/MES_StationInBill_PDA.html"
index 633801c..397485d 100644
--- "a/WebTM/views/\350\275\246\351\227\264\347\256\241\347\220\206/\345\267\245\345\272\217\346\265\201\350\275\254/MES_StationInBill_PDA.html"
+++ "b/WebTM/views/\350\275\246\351\227\264\347\256\241\347\220\206/\345\267\245\345\272\217\346\265\201\350\275\254/MES_StationInBill_PDA.html"
@@ -2,7 +2,7 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>宸ュ簭杩涚珯鎺ユ敹鍗�</title>
+ <title class="jzd">宸ュ簭杩涚珯鎺ユ敹鍗�</title>
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
@@ -111,7 +111,7 @@
<div class="layui-card-body" style="padding: 1px;">
<form class="layui-form" action="" lay-filter="formData" id="formData" style="background-color:white;">
<div style="background-color:#0085E8;">
- <span style="color: white;"><i class="layui-icon layui-icon-form"></i>宸ュ簭杩涚珯鎺ユ敹鍗�</span>
+ <span style="color: white;" class="jzd"><i class="layui-icon layui-icon-form"></i>宸ュ簭杩涚珯鎺ユ敹鍗�</span>
</div>
<div class="layui-form-item" style="margin: 1% 2%;text-align: right;">
<button type="button" lay-submit="" lay-filter="Add" class="layui-btn layui-btn-radius">鏂板</button>
@@ -434,6 +434,13 @@
txtHBarCode_KeyDown(HBarCode);
txtHProcNo_KeyDown(HBarCode, sProcNo);
}
+ } else if (params[params[0]] == "kgd") {
+ var OperationType = 5;
+ $(".jzd").text("鎸囧紩鍗″紑宸ュ崟");
+
+ } else if (params[params[0]] == "jzd") {
+ var OperationType = 1;
+
} else {
var OperationType = params[params[0]];//鎿嶄綔绫诲瀷
var linterid = params[params[1]];//婧愬崟id
@@ -443,7 +450,7 @@
}
//鍒ゆ柇鏄惁鏂板
- if (OperationType == 1 || OperationType == 2) {
+ if (OperationType == 1 || OperationType == 2 || OperationType == 5) {
//鑾峰彇鏈�澶у崟鎹彿
var ajaxLoad = layer.load();
$.ajax({
@@ -548,7 +555,7 @@
return;
}
//console.log(data.field);
- var oMain = JSON.stringify(data.field) + ";" + sessionStorage["HUserName"];
+ var oMain = JSON.stringify(data.field) + ";" + sessionStorage["HUserName"] + ";" + OperationType;
//var oMain = data.field;
var HUserName = sessionStorage["HUserName"];
var index = layer.load();
diff --git "a/WebTM/views/\350\275\246\351\227\264\347\256\241\347\220\206/\345\267\245\345\272\217\346\265\201\350\275\254/MES_StationInBill_PDA_QiaoYi.html" "b/WebTM/views/\350\275\246\351\227\264\347\256\241\347\220\206/\345\267\245\345\272\217\346\265\201\350\275\254/MES_StationInBill_PDA_QiaoYi.html"
index 33ba3b6..bfb74f8 100644
--- "a/WebTM/views/\350\275\246\351\227\264\347\256\241\347\220\206/\345\267\245\345\272\217\346\265\201\350\275\254/MES_StationInBill_PDA_QiaoYi.html"
+++ "b/WebTM/views/\350\275\246\351\227\264\347\256\241\347\220\206/\345\267\245\345\272\217\346\265\201\350\275\254/MES_StationInBill_PDA_QiaoYi.html"
@@ -2,7 +2,7 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>宸ュ簭杩涚珯鎺ユ敹鍗�</title>
+ <title class="jzd">宸ュ簭杩涚珯鎺ユ敹鍗�</title>
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
@@ -111,7 +111,7 @@
<div class="layui-card-body" style="padding: 1px;">
<form class="layui-form" action="" lay-filter="formData" id="formData" style="background-color:white;">
<div style="background-color:#0085E8;">
- <span style="color: white;"><i class="layui-icon layui-icon-form"></i>宸ュ簭杩涚珯鎺ユ敹鍗�</span>
+ <span style="color: white;" class="jzd"><i class="layui-icon layui-icon-form"></i>宸ュ簭杩涚珯鎺ユ敹鍗�</span>
</div>
<div class="layui-form-item" style="margin: 1% 2%;text-align: right;">
<button type="button" lay-submit="" lay-filter="Add" class="layui-btn layui-btn-radius">鏂板</button>
@@ -456,7 +456,14 @@
txtHBarCode_KeyDown(HBarCode);
txtHProcNo_KeyDown(HBarCode, sProcNo);
}
- } else {
+ } else if (params[params[0]] == "kgd") {
+ var OperationType = 5;
+ $(".jzd").text("鎸囧紩鍗″紑宸ュ崟");
+
+ } else if (params[params[0]] == "jzd") {
+ var OperationType = 1;
+
+ } else {
var OperationType = params[params[0]];//鎿嶄綔绫诲瀷
var linterid = params[params[1]];//婧愬崟id
var HSouceBillType = params[params[2]];//婧愬崟绫诲瀷
diff --git "a/WebTM/views/\350\275\246\351\227\264\347\256\241\347\220\206/\345\267\245\345\272\217\346\265\201\350\275\254/MES_StationOutBill_PDA.html" "b/WebTM/views/\350\275\246\351\227\264\347\256\241\347\220\206/\345\267\245\345\272\217\346\265\201\350\275\254/MES_StationOutBill_PDA.html"
index aacd2f9..afa04f5 100644
--- "a/WebTM/views/\350\275\246\351\227\264\347\256\241\347\220\206/\345\267\245\345\272\217\346\265\201\350\275\254/MES_StationOutBill_PDA.html"
+++ "b/WebTM/views/\350\275\246\351\227\264\347\256\241\347\220\206/\345\267\245\345\272\217\346\265\201\350\275\254/MES_StationOutBill_PDA.html"
@@ -2,7 +2,7 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>宸ュ簭鍑虹珯姹囨姤鍗�</title>
+ <title class="gxcz">宸ュ簭鍑虹珯姹囨姤鍗�</title>
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
@@ -112,7 +112,7 @@
<div class="layui-card-body" style="padding: 1px;">
<form class="layui-form" action="" lay-filter="formData" id="formData" style="background-color:white;">
<div style="background-color:#0085E8;">
- <span style="color: white;"><i class="layui-icon layui-icon-form"></i>宸ュ簭鍑虹珯姹囨姤鍗�</span>
+ <span style="color: white;" class="gxcz"><i class="layui-icon layui-icon-form"></i>宸ュ簭鍑虹珯姹囨姤鍗�</span>
</div>
<div class="layui-form-item" style="margin: 1% 2%;text-align: right;">
<button type="button" lay-submit="" lay-filter="Add" class="layui-btn layui-btn-radius" id="Add">鏂板</button>
@@ -220,6 +220,14 @@
<input type="text" name="HQCCheckName" class="layui-input" id="HQCCheckName" placeholder="閫夋嫨妫�楠屽憳" style="background-color:#efefef4d;border-radius: 50px;">
<input type="hidden" name="HQCCheckID" id="HQCCheckID" value="0" autocomplete="off" class="layui-input">
<button type="button" lay-submit="" class="layui-btn layui-col-xs2 bz_btu" lay-filter="HSecManagerID-BT" id="HSecManagerID-BT" style="font-weight:bolder">...</button>
+ </td>
+ </tr>
+ <tr>
+ <th>鏆傛斁鍖�</th>
+ <td class="bz_td">
+ <input type="text" name="HTemporaryAreaName" class="layui-input" id="HTemporaryAreaName" placeholder="閫夋嫨鏆傛斁鍖�" style="background-color:#efefef4d;border-radius: 50px;">
+ <input type="hidden" name="HTemporaryAreaID" id="HTemporaryAreaID" value="0" autocomplete="off" class="layui-input">
+ <button type="button" lay-submit="" class="layui-btn layui-col-xs2 bz_btu" lay-filter="BtnHTemporaryAreaName" id="BtnHTemporaryAreaName" style="font-weight:bolder">...</button>
</td>
</tr>
<tr>
@@ -452,7 +460,14 @@
txtHProcNo_KeyDown(HBarCode, sProcNo);
get_DisplayTech(HBillNo);
}
- } else {
+ } else if (params[params[0]] == "wgd") {
+ var OperationType = 5;
+ $(".gxcz").text("鎸囧紩鍗″畬宸ュ崟");
+
+ } else if (params[params[0]] == "czd") {
+ var OperationType = 1;
+
+ } else {
var OperationType = params[params[0]];//鎿嶄綔绫诲瀷
var linterid = params[params[1]];//婧愬崟id
var HSouceBillType = params[params[2]];//婧愬崟绫诲瀷
@@ -512,7 +527,7 @@
}
//鍒ゆ柇鏄惁鏂板
- if (OperationType == 1 || OperationType == 2) {
+ if (OperationType == 1 || OperationType == 2 || OperationType == 5) {
$("#HInterID").val("");
$("#HBillNo").val("");
//鑾峰彇鏈�澶у崟鎹彿
@@ -578,6 +593,8 @@
"HEmpID": data.HEmpID,
"HEmpName": data.HEmpName,
"HEmpName_second": data.HEmpName,
+ "HTemporaryAreaID": data.HTemporaryAreaID,
+ "HTemporaryAreaName": data.HTemporaryAreaName,
"HEmpID2": data.HEmpID2,
"HEmpName2": data.HEmpName2,
"HEmpID3": data.HEmpID3,
@@ -1331,7 +1348,7 @@
}
var tableData = data.field;
- var oMain = JSON.stringify(data.field) + ";" + sessionStorage["HUserName"];
+ var oMain = JSON.stringify(data.field) + ";" + sessionStorage["HUserName"] + ";"+OperationType;
var index = layer.load();
$.ajax({
type: "POST",
@@ -1552,6 +1569,32 @@
})
});
+ //鏆傛斁鍖�
+ form.on('submit(BtnHTemporaryAreaName)', function (data) {
+ layer.open({
+ type: 2
+ , area: ['80%', '80%']
+ , title: '鏆傛斁鍖哄垪琛�'
+ , shade: 0.6 //閬僵閫忔槑搴�
+ , maxmin: true //鍏佽鍏ㄥ睆鏈�灏忓寲
+ , anim: 0 //0-6鐨勫姩鐢诲舰寮忥紝-1涓嶅紑鍚�
+ , content: ['../../鍩虹璧勬枡/鍏敤鍩虹璧勬枡/Gy_TemporaryArea.html?', 'yes']
+ , btn: ['纭畾', '鍙栨秷']
+ , btn1: function (index, layero) {
+
+ //鎸夐挳銆愭寜閽竴銆戠殑鍥炶皟
+ var iframeWindow = window['layui-layer-iframe' + index] //鑾峰彇寮规椤甸潰
+ var checkStatus = iframeWindow.layui.table.checkStatus('mainTable');//鑾峰彇table鐨別lem:"#test"
+ if (checkStatus.data.length === 0) {
+ return layer.msg('璇烽�夋嫨鏁版嵁');
+ }
+ $("#HTemporaryAreaID").val(checkStatus.data[0].HItemID);
+ $("#HTemporaryAreaName").val(checkStatus.data[0].鏆傛斁鍖哄悕绉�);
+ layer.close(layer.index); //瀹冭幏鍙栫殑濮嬬粓鏄渶鏂板脊鍑虹殑鏌愪釜灞傦紝鍊兼槸鐢眑ayer鍐呴儴鍔ㄦ�侀�掑璁$畻鐨�
+ }
+ })
+ });
+
//閫夋嫨鐢熶骇璧勬簮寮圭獥
form.on('submit(ProductionResources-BT)', function () {//鐢熶骇璧勬簮
layer.open({
diff --git "a/WebTM/views/\350\275\246\351\227\264\347\256\241\347\220\206/\345\267\245\345\272\217\346\265\201\350\275\254/MES_StationOutBill_PDA_QiaoYi.html" "b/WebTM/views/\350\275\246\351\227\264\347\256\241\347\220\206/\345\267\245\345\272\217\346\265\201\350\275\254/MES_StationOutBill_PDA_QiaoYi.html"
index ef6764c..c4f0799 100644
--- "a/WebTM/views/\350\275\246\351\227\264\347\256\241\347\220\206/\345\267\245\345\272\217\346\265\201\350\275\254/MES_StationOutBill_PDA_QiaoYi.html"
+++ "b/WebTM/views/\350\275\246\351\227\264\347\256\241\347\220\206/\345\267\245\345\272\217\346\265\201\350\275\254/MES_StationOutBill_PDA_QiaoYi.html"
@@ -2,7 +2,7 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>宸ュ簭鍑虹珯姹囨姤鍗�</title>
+ <title class="gxcz">宸ュ簭鍑虹珯姹囨姤鍗�</title>
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
@@ -112,7 +112,7 @@
<div class="layui-card-body" style="padding: 1px;">
<form class="layui-form" action="" lay-filter="formData" id="formData" style="background-color:white;">
<div style="background-color:#0085E8;">
- <span style="color: white;"><i class="layui-icon layui-icon-form"></i>宸ュ簭鍑虹珯姹囨姤鍗�</span>
+ <span style="color: white;" class="gxcz"><i class="layui-icon layui-icon-form"></i>宸ュ簭鍑虹珯姹囨姤鍗�</span>
</div>
<div class="layui-form-item" style="margin: 1% 2%;text-align: right;">
<button type="button" lay-submit="" lay-filter="Add" class="layui-btn layui-btn-radius" id="Add">鏂板</button>
@@ -173,7 +173,7 @@
<input type="text" name="HmaterOutqty" class="layui-input" id="HmaterOutqty" value="0" style="border-radius: 50px; background-color: #efefef4d;" readonly>
</td>
</tr>
- <tr>
+ <tr>
<th>姹囨�诲彂甯冩暟閲�</th>
<td class="bz_td">
<input type="text" name="Hzfbsl" class="layui-input" id="Hzfbsl" value="0" style="border-radius: 50px; background-color: #efefef4d;" readonly>
@@ -185,6 +185,14 @@
<input type="text" name="HSourceName" class="layui-input" id="HSourceName" placeholder="閫夋嫨鐢熶骇璧勬簮" style="border-radius: 50px;">
<input type="hidden" name="HSourceID" id="HSourceID" value="0" autocomplete="off" class="layui-input">
<button type="button" lay-submit="" class="layui-btn layui-col-xs2 bz_btu" lay-filter="ProductionResources-BT" id="ProductionResources-BT" style="font-weight:bolder">...</button>
+ </td>
+ </tr>
+ <tr>
+ <th>鏆傛斁鍖�</th>
+ <td class="bz_td">
+ <input type="text" name="HTemporaryAreaName" class="layui-input" id="HTemporaryAreaName" placeholder="閫夋嫨鏆傛斁鍖�" style="background-color:#efefef4d;border-radius: 50px;">
+ <input type="hidden" name="HTemporaryAreaID" id="HTemporaryAreaID" value="0" autocomplete="off" class="layui-input">
+ <button type="button" lay-submit="" class="layui-btn layui-col-xs2 bz_btu" lay-filter="BtnHTemporaryAreaName" id="BtnHTemporaryAreaName" style="font-weight:bolder">...</button>
</td>
</tr>
<tr>
@@ -327,7 +335,14 @@
<button type="button" lay-submit="" class="layui-btn layui-col-xs2 bz_btu" lay-filter="HSecManagerID-BT" id="HSecManagerID-BT" style="font-weight:bolder">...</button>
</td>
</tr>
-
+ <tr>
+ <th>鏆傛斁鍖�</th>
+ <td class="bz_td">
+ <input type="text" name="HTemporaryAreaName" class="layui-input" id="HTemporaryAreaName" placeholder="閫夋嫨鏆傛斁鍖�" style="background-color:#efefef4d;border-radius: 50px;">
+ <input type="hidden" name="HTemporaryAreaID" id="HTemporaryAreaID" value="0" autocomplete="off" class="layui-input">
+ <button type="button" lay-submit="" class="layui-btn layui-col-xs2 bz_btu" lay-filter="BtnHTemporaryAreaName" id="BtnHTemporaryAreaName" style="font-weight:bolder">...</button>
+ </td>
+ </tr>
<tr>
<th>娴佽浆鍗℃暟閲�</th>
<td class="bz_td" readonly>
@@ -482,7 +497,14 @@
txtHProcNo_KeyDown(HBarCode, sProcNo);
get_DisplayTech(HBillNo);
}
- } else {
+ } else if (params[params[0]] == "wgd") {
+ var OperationType = 5;
+ $(".gxcz").text("鎸囧紩鍗″畬宸ュ崟");
+
+ } else if (params[params[0]] == "czd") {
+ var OperationType = 1;
+
+ } else {
var OperationType = params[params[0]];//鎿嶄綔绫诲瀷
var linterid = params[params[1]];//婧愬崟id
var HSouceBillType = params[params[2]];//婧愬崟绫诲瀷
@@ -542,7 +564,7 @@
}
//鍒ゆ柇鏄惁鏂板
- if (OperationType == 1 || OperationType == 2) {
+ if (OperationType == 1 || OperationType == 2 || OperationType == 5) {
$("#HInterID").val("");
$("#HBillNo").val("");
//鑾峰彇鏈�澶у崟鎹彿
@@ -605,6 +627,8 @@
"HSourceName": data.HSourceName,
"HQCCheckID": data.HQCCheckID,
"HQCCheckName": data.HQCCheckName,
+ "HTemporaryAreaID": data.HTemporaryAreaID,
+ "HTemporaryAreaName": data.HTemporaryAreaName,
"HEmpID": data.HEmpID,
"HEmpName": data.HEmpName,
"HEmpName_second": data.HEmpName,
@@ -1564,6 +1588,56 @@
})
});
+ //鏆傛斁鍖�
+ form.on('submit(BtnHTemporaryAreaName)', function (data) {
+ layer.open({
+ type: 2
+ , area: ['80%', '80%']
+ , title: '鏆傛斁鍖哄垪琛�'
+ , shade: 0.6 //閬僵閫忔槑搴�
+ , maxmin: true //鍏佽鍏ㄥ睆鏈�灏忓寲
+ , anim: 0 //0-6鐨勫姩鐢诲舰寮忥紝-1涓嶅紑鍚�
+ , content: ['../../鍩虹璧勬枡/鍏敤鍩虹璧勬枡/Gy_TemporaryArea.html?', 'yes']
+ , btn: ['纭畾', '鍙栨秷']
+ , btn1: function (index, layero) {
+
+ //鎸夐挳銆愭寜閽竴銆戠殑鍥炶皟
+ var iframeWindow = window['layui-layer-iframe' + index] //鑾峰彇寮规椤甸潰
+ var checkStatus = iframeWindow.layui.table.checkStatus('mainTable');//鑾峰彇table鐨別lem:"#test"
+ if (checkStatus.data.length === 0) {
+ return layer.msg('璇烽�夋嫨鏁版嵁');
+ }
+ $("#HTemporaryAreaID").val(checkStatus.data[0].HItemID);
+ $("#HTemporaryAreaName").val(checkStatus.data[0].鏆傛斁鍖哄悕绉�);
+ layer.close(layer.index); //瀹冭幏鍙栫殑濮嬬粓鏄渶鏂板脊鍑虹殑鏌愪釜灞傦紝鍊兼槸鐢眑ayer鍐呴儴鍔ㄦ�侀�掑璁$畻鐨�
+ }
+ })
+ });
+ //鏆傛斁鍖�
+ form.on('submit(BtnHTemporaryAreaName)', function (data) {
+ layer.open({
+ type: 2
+ , area: ['80%', '80%']
+ , title: '鏆傛斁鍖哄垪琛�'
+ , shade: 0.6 //閬僵閫忔槑搴�
+ , maxmin: true //鍏佽鍏ㄥ睆鏈�灏忓寲
+ , anim: 0 //0-6鐨勫姩鐢诲舰寮忥紝-1涓嶅紑鍚�
+ , content: ['../../鍩虹璧勬枡/鍏敤鍩虹璧勬枡/Gy_TemporaryArea.html?', 'yes']
+ , btn: ['纭畾', '鍙栨秷']
+ , btn1: function (index, layero) {
+
+ //鎸夐挳銆愭寜閽竴銆戠殑鍥炶皟
+ var iframeWindow = window['layui-layer-iframe' + index] //鑾峰彇寮规椤甸潰
+ var checkStatus = iframeWindow.layui.table.checkStatus('mainTable');//鑾峰彇table鐨別lem:"#test"
+ if (checkStatus.data.length === 0) {
+ return layer.msg('璇烽�夋嫨鏁版嵁');
+ }
+ $("#HTemporaryAreaID").val(checkStatus.data[0].HItemID);
+ $("#HTemporaryAreaName").val(checkStatus.data[0].鏆傛斁鍖哄悕绉�);
+ layer.close(layer.index); //瀹冭幏鍙栫殑濮嬬粓鏄渶鏂板脊鍑虹殑鏌愪釜灞傦紝鍊兼槸鐢眑ayer鍐呴儴鍔ㄦ�侀�掑璁$畻鐨�
+ }
+ })
+ });
//閫夋嫨鐢熶骇璧勬簮寮圭獥
form.on('submit(ProductionResources-BT)', function () {//鐢熶骇璧勬簮
layer.open({
@@ -1681,6 +1755,32 @@
})
});
+ //鏆傛斁鍖�
+ form.on('submit(BtnHTemporaryAreaName)', function (data) {
+ layer.open({
+ type: 2
+ , area: ['80%', '80%']
+ , title: '鏆傛斁鍖哄垪琛�'
+ , shade: 0.6 //閬僵閫忔槑搴�
+ , maxmin: true //鍏佽鍏ㄥ睆鏈�灏忓寲
+ , anim: 0 //0-6鐨勫姩鐢诲舰寮忥紝-1涓嶅紑鍚�
+ , content: ['../../鍩虹璧勬枡/鍏敤鍩虹璧勬枡/Gy_TemporaryArea.html?', 'yes']
+ , btn: ['纭畾', '鍙栨秷']
+ , btn1: function (index, layero) {
+
+ //鎸夐挳銆愭寜閽竴銆戠殑鍥炶皟
+ var iframeWindow = window['layui-layer-iframe' + index] //鑾峰彇寮规椤甸潰
+ var checkStatus = iframeWindow.layui.table.checkStatus('mainTable');//鑾峰彇table鐨別lem:"#test"
+ if (checkStatus.data.length === 0) {
+ return layer.msg('璇烽�夋嫨鏁版嵁');
+ }
+ $("#HTemporaryAreaID").val(checkStatus.data[0].HItemID);
+ $("#HTemporaryAreaName").val(checkStatus.data[0].鏆傛斁鍖哄悕绉�);
+ layer.close(layer.index); //瀹冭幏鍙栫殑濮嬬粓鏄渶鏂板脊鍑虹殑鏌愪釜灞傦紝鍊兼槸鐢眑ayer鍐呴儴鍔ㄦ�侀�掑璁$畻鐨�
+ }
+ })
+ });
+
//鏂囦欢涓婁紶
function PicUpload() {
//澶氬浘鐗囦笂浼�
diff --git "a/WebTM/views/\350\275\246\351\227\264\347\256\241\347\220\206/\345\267\245\345\272\217\346\265\201\350\275\254\345\215\241/Sc_ProcessExchangeBill.html" "b/WebTM/views/\350\275\246\351\227\264\347\256\241\347\220\206/\345\267\245\345\272\217\346\265\201\350\275\254\345\215\241/Sc_ProcessExchangeBill.html"
index 111eace..bc8506a 100644
--- "a/WebTM/views/\350\275\246\351\227\264\347\256\241\347\220\206/\345\267\245\345\272\217\346\265\201\350\275\254\345\215\241/Sc_ProcessExchangeBill.html"
+++ "b/WebTM/views/\350\275\246\351\227\264\347\256\241\347\220\206/\345\267\245\345\272\217\346\265\201\350\275\254\345\215\241/Sc_ProcessExchangeBill.html"
@@ -869,6 +869,9 @@
</script>
<input id="HItemID" name="HItemID" type="hidden" />
<input id="HEntryID" name="HEntryID" type="hidden" />
+ <input id="HMainSourceInterID" name="HMainSourceInterID" value="0" type="hidden" />
+ <input id="HMainSourceEntryID" name="HMainSourceEntryID" value="0" type="hidden" />
+ <input id="HMainSourceBillNo" name="HMainSourceBillNo" value="" type="hidden" />
</form>
</div>
</div>
@@ -920,7 +923,7 @@
var OperationType = params[params[0]];//鎿嶄綔绫诲瀷
var linterid = params[params[1]];//婧愬崟id
var HEntryID = params[params[2]];//婧愬崟瀛恑d
- var HSouceBillType = params[params[3]];//婧愬崟绫诲瀷
+ var HSouceBillType = params[params[3]];//婧愬崟绫诲瀷 鍦ㄧ被鍨� 5 宸ュ簭id
}
//#region 杩涘叆椤甸潰鍗冲姞杞�
@@ -935,7 +938,7 @@
DisPlay_HideColumn();
//鍒ゆ柇鎿嶄綔绫诲瀷
- if (OperationType == 1) {//鏃犳簮鍗曟柊澧�
+ if (OperationType == 1 ) {//鏃犳簮鍗曟柊澧�
$.ajax({
url: GetWEBURL() + "/Web/GetMAXNum",
type: "GET",
@@ -1022,8 +1025,29 @@
set_EditFromGrid();
}
- else if (OperationType == 4) {//澶嶅埗
+ else if (OperationType == 4) {//澶嶅埗
set_EditFromGrid();
+ $.ajax({
+ url: GetWEBURL() + "/Web/GetMAXNum",
+ type: "GET",
+ async: false,
+ data: { "HBillType": '3772' },
+ success: function (d) {
+ //console.log(d.data);
+ $("#HInterID").val(d.data[0].HInterID);
+ $("#HBillNo").val(d.data[0].HBillNo);
+ $("#HMakeDate").val(Pub_Format(new Date(), "yyyy-MM-dd hh:mm:ss"));
+ $("#HMaker").val(sessionStorage["HUserName"]);
+ }
+ });
+ }
+ else if (OperationType == 5) {//5 鏂板瀛愭祦杞崱
+ $("#HMainSourceInterID").val(linterid);
+ $("#HMainSourceEntryID").val(HEntryID);
+ set_EditForm(linterid);
+
+ var sWhere = "and HMaterID=" + btnHMaterID + " and HOrgID = " + sessionStorage["OrganizationID"] + " and HMainProcID=" + HSouceBillType;
+ getRoutingBillList(sWhere);
$.ajax({
url: GetWEBURL() + "/Web/GetMAXNum",
type: "GET",
@@ -1900,7 +1924,7 @@
if (OperationType == 3) {
flag = "xg";
}
- var sMainSub = sMainStr + ';' + sSubStr + ";" + sessionStorage["HUserName"] + ";" + flag;
+ var sMainSub = sMainStr + ';' + sSubStr + ";" + sessionStorage["HUserName"] + ";" + flag + ";" + OperationType;
var index = layer.load();
$.ajax({
@@ -2078,6 +2102,7 @@
form.val("component-form-group", {
"HBillNo": OperationType==4?"": data.鍗曟嵁鍙�
, "HInterID": OperationType == 4 ? "" : data.hmainid
+ , "HMainSourceBillNo": OperationType == 5 ? data.鍗曟嵁鍙� : ""
, "HPRDORGID": data.HPRDORGID
, "HDate": formatDate(data.鏃ユ湡)
, "HOrderProcNO": data.璁㈠崟璺熻釜鍙�
@@ -2456,35 +2481,12 @@
form.render("checkbox");
btnHMaterID = data.hmaterid;
- $.ajax({
- type: "get",
- url: GetWEBURL() + "LEMS/Gy_RoutingBillList",
- async: true,
- data: { "sWhere": "and HMaterID=" + btnHMaterID + " and HOrgID = " + sessionStorage["OrganizationID"], "user": sessionStorage["HUserName"] },
- success: function (result) {
- if (result.data.length != 0) {
- var hbillno = result.data[0].鍗曟嵁鍙�
- HLZQty = data.娴佽浆鍗℃暟閲�;
- getRoutingBill(hbillno);
- } else {
- option.data = [{
- "HProcNo": "", "HProcID": 0, "HProcNumber": "", "HProcName": "", "HWorkRemark": "",
- "HCenterID": 0, "HCenterNumber": "", "HCenterName": "",
- "HDeptID": 0, "HDeptNumber": "", "HDeptName": "",
- "HSupID": 0, "HSupNumber": "", "HSupName": "", "HSupFlag": "false",
- "HQty": 0, "HOutPrice": 0, "HRemark": "", "HRelationQty_In": 0, "HRelationQty_Out": 0,
- "HRelationQty_WWOrder": 0, "HRelationQty_Bad": 0, "HOverRate": 0, "HMaxQty": 0,
- "HPassRate": 0, "HSumPassRate": 0, "HTechnologyParameter": "", "HPicNum": "", "HProcCheckNote": ""
- }];
- table.render(option);
- }
- },
- error: function (result) {
- layer.close(index);
- console.log(result);
- //layer.msg('鑾峰彇閲囪喘璁㈠崟鍑虹幇寮傚父', { icon: 2, time: 2000 });
- }
- })
+ HLZQty = data.娴佽浆鍗℃暟閲�;
+
+ var sWhere = "and HMaterID=" + btnHMaterID + " and HOrgID = " + sessionStorage["OrganizationID"];
+
+ getRoutingBillList(sWhere);
+
}
else {
layer.msg(result.Message, { icon: 5, btn: ['纭'], time: 100000, offset: 't', skin: 'layui-layer-lan', title: "娓╅Θ鎻愮ず" });
@@ -2496,6 +2498,39 @@
}
+ //榛樿宸ヨ壓璺嚎 鏌ヨ鍗曟嵁鍙�
+ function getRoutingBillList(sWhere) {
+ $.ajax({
+ type: "get",
+ url: GetWEBURL() + "LEMS/Gy_RoutingBillList",
+ async: false,
+ data: { "sWhere": sWhere, "user": sessionStorage["HUserName"] },
+ success: function (result) {
+ if (result.data.length != 0) {
+ var hbillno = result.data[0].鍗曟嵁鍙�
+
+ getRoutingBill(hbillno);
+ } else {
+ option.data = [{
+ "HProcNo": "", "HProcID": 0, "HProcNumber": "", "HProcName": "", "HWorkRemark": "",
+ "HCenterID": 0, "HCenterNumber": "", "HCenterName": "",
+ "HDeptID": 0, "HDeptNumber": "", "HDeptName": "",
+ "HSupID": 0, "HSupNumber": "", "HSupName": "", "HSupFlag": "false",
+ "HQty": 0, "HOutPrice": 0, "HRemark": "", "HRelationQty_In": 0, "HRelationQty_Out": 0,
+ "HRelationQty_WWOrder": 0, "HRelationQty_Bad": 0, "HOverRate": 0, "HMaxQty": 0,
+ "HPassRate": 0, "HSumPassRate": 0, "HTechnologyParameter": "", "HPicNum": "", "HProcCheckNote": ""
+ }];
+ table.render(option);
+ }
+ },
+ error: function (result) {
+ layer.close(index);
+ console.log(result);
+ //layer.msg('鑾峰彇閲囪喘璁㈠崟鍑虹幇寮傚父', { icon: 2, time: 2000 });
+ }
+ })
+ }
+
function GetICMOBillDetail(hmainid, HEntryID) {
$.ajax({
url: GetWEBURL() + "/Sc_ProcessExchangeBill/GetICMOBillList",
diff --git "a/WebTM/views/\350\275\246\351\227\264\347\256\241\347\220\206/\345\267\245\345\272\217\346\265\201\350\275\254\345\215\241/Sc_ProcessExchangeBillList.html" "b/WebTM/views/\350\275\246\351\227\264\347\256\241\347\220\206/\345\267\245\345\272\217\346\265\201\350\275\254\345\215\241/Sc_ProcessExchangeBillList.html"
index ef92c37..47a3dde 100644
--- "a/WebTM/views/\350\275\246\351\227\264\347\256\241\347\220\206/\345\267\245\345\272\217\346\265\201\350\275\254\345\215\241/Sc_ProcessExchangeBillList.html"
+++ "b/WebTM/views/\350\275\246\351\227\264\347\256\241\347\220\206/\345\267\245\345\272\217\346\265\201\350\275\254\345\215\241/Sc_ProcessExchangeBillList.html"
@@ -202,6 +202,7 @@
<!--<button type="button" class="layui-btn layui-btn-sm" lay-event="get_Pg"><i class="layui-icon layui-icon-file-b"></i>宸ュ簭娲惧伐</button>-->
<button type="button" class="layui-btn layui-btn-sm" lay-event="get_Fg"><i class="layui-icon layui-icon-file-b"></i>杩斿伐鐢宠</button>
<button type="button" class="layui-btn layui-btn-sm" lay-event="get_Jl"><i class="layui-icon layui-icon-file-b"></i>杩斿伐璁板綍</button>
+ <button type="button" class="layui-btn layui-btn-sm" lay-event="get_zlzk"><i class="layui-icon layui-icon-file-b"></i>瀛愭祦杞崱</button>
</div>
</script>
<script type="text/html" id="toolbarDemo3">
@@ -390,6 +391,9 @@
break
//宸ュ簭杩斿伐鍗曡褰�
case 'get_Jl': get_Jl();
+ break
+ //瀛愭祦杞崱
+ case 'get_zlzk': get_zlzk();
break
//宸ュ簭娲惧伐鍗�
//case 'get_Pg': get_Pg();
@@ -1004,7 +1008,7 @@
}
//#region 鏌ヨ (涓昏〃)
function get_Display(sWhere) {
- sWhere += " and HPRDORGID=" + sessionStorage["OrganizationID"] + " ";
+ sWhere += " and HPRDORGID=" + sessionStorage["OrganizationID"] + " and HBillSubType<>'SUB'";
var ajaxLoad = layer.load();
$.ajax({
url: GetWEBURL() + '/LEMS/MES_Sc_ProcessExchangeBillQuery_Json',
@@ -1210,6 +1214,28 @@
}
}
+ //瀛愭祦杞崱
+ function get_zlzk() {
+ var checkStatus = table.checkStatus('mainTable2')
+ , data = checkStatus.data;
+ if (checkStatus.data.length === 1) {
+ var linterid = data[0].hmainid;
+ var HEntryID = data[0].HEntryID;
+ var HProcID = data[0].HProcID;
+ //if (AllowLoadData(sSubStr) != false) {//闈炵┖楠岃瘉
+ layer.open({
+ type: 2
+ , area: ['100%', '100%']
+ , title: '宸ュ簭瀛愭祦杞崱-缂栬緫'
+ , shift: 0//寮瑰嚭鍔ㄧ敾
+ , content: '../宸ュ簭娴佽浆鍗�/Sc_ProcessExchangeBill.html?OperationType=5&linterid=' + linterid + '&HEntryID=' + HEntryID + '&HproID=' + HProcID
+ })
+ } else {
+ layer.msg('璇烽�夋嫨涓�琛屾暟鎹紪杈戯紒');
+ }
+ }
+
+
//宸ュ簭娲惧伐
//function get_Pg() {
// var checkStatus = table.checkStatus('mainTable2')
diff --git "a/WebTM/views/\350\275\246\351\227\264\347\256\241\347\220\206/\345\267\245\345\272\217\346\265\201\350\275\254\345\215\241/Sc_ProcessExchangeBillSubList.html" "b/WebTM/views/\350\275\246\351\227\264\347\256\241\347\220\206/\345\267\245\345\272\217\346\265\201\350\275\254\345\215\241/Sc_ProcessExchangeBillSubList.html"
new file mode 100644
index 0000000..27e6cb6
--- /dev/null
+++ "b/WebTM/views/\350\275\246\351\227\264\347\256\241\347\220\206/\345\267\245\345\272\217\346\265\201\350\275\254\345\215\241/Sc_ProcessExchangeBillSubList.html"
@@ -0,0 +1,2126 @@
+锘�<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <title>宸ュ簭瀛愭祦杞崱鍒楄〃</title>
+ <meta name="renderer" content="webkit">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+ <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
+ <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/layui.js"></script>
+ <script src="../../../layuiadmin/Scripts/json2.js"></script>
+ <script src="../../../layuiadmin/Scripts/jquery-1.4.1.js"></script>
+ <script src="../../../layuiadmin/Scripts/webConfig.js"></script>
+ <script src="../../../layuiadmin/zgqCustom/zgqCustom.js"></script>
+ <script src="../../../layuiadmin/PubCustom.js"></script>
+ <script src="../../../layuiadmin/grwebapp.js"></script>
+
+</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-colla-title layui-inline">
+ <div class="layui-inline">
+ <span>鏇村</span>
+ </div>
+ </div>
+ <div class="layui-inline">
+ <label class="layui-form-label">鎵撳嵃鐘舵��</label>
+ <div class="layui-input-block" style="width:100px">
+ <select name="city" lay-verify="required" id="SHPrintQty">
+ <option value="鍏ㄩ儴">鍏ㄩ儴</option>
+ <option value="鏈墦鍗�">鏈墦鍗�</option>
+ <option value="宸叉墦鍗�">宸叉墦鍗�</option>
+ </select>
+ </div>
+ </div>
+ <div class="layui-inline">
+ <input type="checkbox" id="wybj" name="wybj" title="鍙樉绀哄澶�" lay-filter="wybj" lay-skin="primary">
+ </div>
+ <div class="layui-inline">
+ <label class="layui-form-label">鐗╂枡</label>
+ <div class="layui-input-block">
+ <input type="text" class="layui-input" name="HProcExchBillNo" id="SHname">
+ </div>
+ </div>
+ <div class="layui-inline">
+ <label class="layui-form-label">寮�濮嬫棩鏈�</label>
+ <div class="layui-input-block">
+ <input type="date" class="layui-input" id="HDate">
+ </div>
+ </div>
+ <div class="layui-inline">
+ <label class="layui-form-label">缁撴潫鏃ユ湡</label>
+ <div class="layui-input-block">
+ <input type="date" class="layui-input" id="HDate1">
+ </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>
+ <button class="layui-btn layuiadmin-btn-order" type="button" lay-submit="" lay-filter="btnReSearch" id="btnReSearch" style="padding:0 5px">閲嶇疆</button>
+ <div class="layui-colla-content" style="padding: 0px; margin-left: 6%;">
+ <div class="layui-row" style="margin-top:10px;">
+ <div class="layui-inline">
+ <label class="layui-form-label">璁㈠崟璺熻釜鍙�</label>
+ <div class="layui-input-block">
+ <input type="text" class="layui-input" name="HOrderProcNO" id="HOrderProcNO">
+ </div>
+ </div>
+
+ <div class="layui-inline">
+ <label class="layui-form-label" style="width: 85px;">浠诲姟鍗曞彿</label>
+ <div class="layui-input-block" style="margin-left: 120px;">
+ <input type="text" class="layui-input" name="HWorkBillNo" id="HWorkBillNo">
+ </div>
+ </div>
+ </div>
+ <div class="layui-row" style="margin-top: 10px; margin-bottom: 10px;">
+ <div class="layui-inline">
+ <label class="layui-form-label">鍗曟嵁鍙�</label>
+ <div class="layui-input-block">
+ <input type="text" class="layui-input" name="HBillNo" id="HBillNo">
+ </div>
+ </div>
+ <div class="layui-inline">
+ <label class="layui-form-label">鍞竴ID</label>
+ <div class="layui-input-block">
+ <input type="text" class="layui-input" name="HErpID" id="HErpID">
+ </div>
+ </div>
+ <div class="layui-inline">
+ <label class="layui-form-label">鐢熶骇杞﹂棿</label>
+ <div class="layui-input-block">
+ <select name="HDeptName" id="HDeptName" lay-verify="required" lay-search class="layui-input">
+
+ <!--鍔ㄦ�佹覆鏌撹溅闂�-->
+ </select>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="layui-row" style="margin-top: 10px; margin-bottom: 10px ">
+ <div class="layui-inline">
+ <label class="layui-form-label">杩囨护</label>
+ <div class="layui-input-block">
+ <select name="ColName" id="ColName" lay-filter="ColName" style="width:190px;">
+ </select>
+ </div>
+ </div>
+ <div class="layui-inline">
+ <select name="Comparator" id="Comparator" lay-filter="Comparator" style="width:190px;">
+ <option value="0" selected="selected"></option>
+ <option value="=">=</option>
+ <option value=">=">>=</option>
+ <option value=">">></option>
+ <option value="<="><=</option>
+ <option value="<"><</option>
+ <option value="<>"><></option>
+ <option value="7">鍖呭惈</option>
+ <option value="8">宸﹀寘鍚�</option>
+ <option value="9">鍙冲寘鍚�</option>
+ <option value="10">涓嶅寘鍚�</option>
+ </select>
+ </div>
+ <div class="layui-inline">
+ <input type="text" class="layui-input" value="" name="ColContent" id="ColContent">
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <!--<div class="layui-tab-item layui-show">-->
+ <table class="layui-hide" id="mainTable" lay-filter="mainTable"></table>
+ <!--</div>-->
+ <!--<table class="" id="mainTable" lay-filter="mainTable"></table>
+ <table class="" id="mainTable2" lay-filter="mainTable2"></table>-->
+ <div class="layui-tab layui-tab-card">
+ <ul class="layui-tab-title">
+ <li class="layui-this">宸ヨ壓娴佺▼</li>
+ <li>鍣ㄥ叿娓呭崟</li>
+ <li>宸ヨ壓鍙傛暟娓呭崟</li>
+ </ul>
+ <div class="layui-tab-content">
+ <div class="layui-tab-item layui-show">
+ <!--宸ヨ壓娴佺▼-->
+ <table class="layui-hide" id="mainTable2" lay-filter="mainTable2"></table>
+ </div>
+ <div class="layui-tab-item">
+ <!--鍣ㄥ叿娓呭崟-->
+ <table class="layui-hide" id="mainTable1" lay-filter="mainTable1"></table>
+ </div>
+ <div class="layui-tab-item">
+ <!--宸ヨ壓鍙傛暟娓呭崟-->
+ <table class="layui-hide" id="mainTable3" lay-filter="mainTable3"></table>
+ </div>
+ </div>
+ </div>
+ <script type="text/html" id="toolbarDemo">
+ <div class="layui-btn-container">
+ <!--<button type="button" class="layui-btn layui-btn-sm" lay-event="set_AddNew"><i class="layui-icon layui-icon-file-b"></i>鏂板</button>-->
+ <button type="button" class="layui-btn layui-btn-sm" lay-event="set_ShowBill"><i class="layui-icon layui-icon-form"></i>缂栬緫</button>
+ <button type="button" class="layui-btn layui-btn-sm" lay-event="set_DeleteBill"><i class="layui-icon layui-icon-delete"></i>鍒犻櫎</button>
+ <button type="button" class="layui-btn layui-btn-sm" lay-event="set_Copy"><i class="layui-icon layui-icon-form"></i>澶嶅埗</button>
+ <button type="button" class="layui-btn layui-btn-sm" lay-event="set_Copy_pl"><i class="layui-icon layui-icon-form"></i>鎵归噺澶嶅埗</button>
+ <button type="button" class="layui-btn layui-btn-sm" lay-event="set_cf"><i class="layui-icon layui-icon-form"></i>鎷嗗垎</button>
+ <button type="button" class="layui-btn layui-btn-sm" lay-event="get_LookDown_StationIn"><i class="layui-icon layui-icon-form"></i>涓嬫煡(宸ュ簭杩涚珯鎺ユ敹鍗�)</button>
+ <button type="button" class="layui-btn layui-btn-sm" lay-event="get_LookDown_StationOut"><i class="layui-icon layui-icon-form"></i>涓嬫煡(宸ュ簭鍑虹珯姹囨姤鍗�)</button>
+ <button type="button" class="layui-btn layui-btn-sm" lay-event="btn_view"><i class="layui-icon layui-icon-tips"></i>棰勮</button>
+ <button type="button" class="layui-btn layui-btn-sm" lay-event="btn_print"><i class="layui-icon layui-icon-print"></i>鎵撳嵃</button>
+ <button type="button" class="layui-btn layui-btn-sm" lay-event="btn_print_pl"><i class="layui-icon layui-icon-print"></i>鎵归噺鎵撳嵃</button>
+ <button type="button" class="layui-btn layui-btn-sm" lay-event="set_CheckBill" id="CheckBill"><i class="layui-icon layui-icon-form"></i>瀹℃牳</button>
+ <button type="button" class="layui-btn layui-btn-sm" lay-event="set_AbandonCheck" id="AbandonCheck"><i class="layui-icon layui-icon-form"></i>鍙嶅鏍�</button>
+ <button type="button" class="layui-btn layui-btn-sm" lay-event="set_CloseBill" id="set_CloseBill"><i class="layui-icon layui-icon-form"></i>鍏抽棴</button>
+ <button type="button" class="layui-btn layui-btn-sm" lay-event="set_CancelCloseBill" id="set_CancelCloseBill"><i class="layui-icon layui-icon-form"></i>鍙嶅叧闂�</button>
+ <button type="button" class="layui-btn layui-btn-sm" lay-event="get_Refresh"><i class="layui-icon layui-icon-refresh-3"></i>鍒锋柊</button>
+ <button type="button" class="layui-btn layui-btn-sm" lay-event="get_Exit"><i class="layui-icon layui-icon-logout"></i>閫�鍑�</button>
+ <button type="button" class="layui-btn layui-btn-sm" lay-event="set_StationOut"><i class="layui-icon layui-icon-form"></i>宸ュ簭鍑虹珯姹囨姤鍗�</button>
+ <button type="button" class="layui-btn layui-btn-sm" lay-event="get_StationIn"><i class="layui-icon layui-icon-form"></i>宸ュ簭杩涚珯鎺ユ敹鍗�</button>
+ <button type="button" class="layui-btn layui-btn-sm" lay-event="get_HideColumn1"><i class="layui-icon layui-icon-file-b"></i>鍒楄缃�</button>
+ <button type="button" class="layui-btn layui-btn-sm" lay-event="set_FormChange"><i class="layui-icon layui-icon-file-b"></i>鍗曟嵁鍙樻洿</button>
+ </div>
+ </script>
+ <script type="text/html" id="toolbarDemo2">
+ <div class="layui-btn-container">
+ <!--<button type="button" class="layui-btn layui-btn-sm" lay-event="set_AddNew"><i class="layui-icon layui-icon-file-b"></i>鏂板</button>
+ <button type="button" class="layui-btn layui-btn-sm" lay-event="set_ShowBill"><i class="layui-icon layui-icon-form"></i>缂栬緫</button>
+ <button type="button" class="layui-btn layui-btn-sm" lay-event="set_DeleteBill"><i class="layui-icon layui-icon-delete"></i>鍒犻櫎</button>
+ <button type="button" class="layui-btn layui-btn-sm" lay-event="btn_view"><i class="layui-icon layui-icon-tips"></i>棰勮</button>
+ <button type="button" class="layui-btn layui-btn-sm" lay-event="btn_print"><i class="layui-icon layui-icon-print"></i>鎵撳嵃</button>
+ <button type="button" class="layui-btn layui-btn-sm" lay-event="get_Refresh"><i class="layui-icon layui-icon-refresh-3"></i>鍒锋柊</button>
+ <button type="button" class="layui-btn layui-btn-sm" lay-event="get_Exit"><i class="layui-icon layui-icon-logout"></i>閫�鍑�</button>
+ <button type="button" class="layui-btn layui-btn-sm" lay-event="set_StationOut"><i class="layui-icon layui-icon-form"></i>宸ュ簭鍑虹珯姹囨姤鍗�</button>
+ <button type="button" class="layui-btn layui-btn-sm" lay-event="get_StationIn"><i class="layui-icon layui-icon-form"></i>宸ュ簭杩涚珯鎺ユ敹鍗�</button>-->
+ <button type="button" class="layui-btn layui-btn-sm" lay-event="get_HideColumn2"><i class="layui-icon layui-icon-file-b"></i>鏄庣粏鍒楄缃�</button>
+ <!--<button type="button" class="layui-btn layui-btn-sm" lay-event="get_Fg"><i class="layui-icon layui-icon-file-b"></i>宸ュ簭杩斿伐</button>-->
+ <!--<button type="button" class="layui-btn layui-btn-sm" lay-event="get_Pg"><i class="layui-icon layui-icon-file-b"></i>宸ュ簭娲惧伐</button>-->
+ <button type="button" class="layui-btn layui-btn-sm" lay-event="get_Fg"><i class="layui-icon layui-icon-file-b"></i>杩斿伐鐢宠</button>
+ <button type="button" class="layui-btn layui-btn-sm" lay-event="get_Jl"><i class="layui-icon layui-icon-file-b"></i>杩斿伐璁板綍</button>
+ <button type="button" class="layui-btn layui-btn-sm" lay-event="get_zlzk"><i class="layui-icon layui-icon-file-b"></i>瀛愭祦杞崱</button>
+ </div>
+ </script>
+ <script type="text/html" id="toolbarDemo3">
+ <div class="layui-btn-container">
+ <button type="button" class="layui-btn layui-btn-sm" lay-event="get_HideColumn3"><i class="layui-icon layui-icon-file-b"></i>鍒楄缃�</button>
+ </div>
+ </script>
+ <script type="text/html" id="toolbarDemo4">
+ <div class="layui-btn-container">
+ <button type="button" class="layui-btn layui-btn-sm" lay-event="get_HideColumn4"><i class="layui-icon layui-icon-file-b"></i>鍒楄缃�</button>
+ </div>
+ </script>
+ </form>
+ </div>
+ </div>
+ </div>
+ </div>
+ <script>
+ layui.config({
+ base: '../../../layuiadmin/' //闈欐�佽祫婧愭墍鍦ㄨ矾寰�
+ }).extend({
+ index: 'lib/index', //涓诲叆鍙fā鍧�
+ }).use(['index', 'form', 'table', 'element', 'laypage', 'laydate'], 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
+ , util = layui.util
+ //var sWhere = " 浜у搧浠g爜 = 'BX0002'";
+ var sWhere = "";
+ var option = "";
+ var option2 = "";
+ var option3 = "";
+ var option4 = "";
+ var HBillNo = "";
+ var wybj = false;
+ var QJQD = 0;//鍒ゆ柇鍣ㄥ叿娓呭崟鏌ヨ鍒楄〃鏄惁鏈夋暟鎹� 0娌℃湁 1鏈�
+ var Organization = sessionStorage["Organization"]
+ //#endregion
+
+ //#region 杩涘叆椤甸潰鍗冲姞杞�
+
+ //
+ var HModName = "Sc_ProcessExchangeBillList";
+ //涓嶉渶瑕佹樉绀虹殑瀛楁 鍙墿灞� 锛堜富琛級
+ var titleData = ["HEntryID", "HWorkShopID", "HMaterID", "HSupID", "HPRDORGID", "HEquipMentID", "hsubid", "HICMOEntryID", "HDeptID", "hmainid", "hicmointerid","HICMOInterID", "HMaterID2", "HUnitID", "HBillType", "HRoutingBillID", "HAuxUnit", "鐢熶骇杞﹂棿浠g爜", "鐢熶骇杞﹂棿", "鏉愯川", "鎴愬搧缂栧彿", "鐗堟湰", "鎬昏鍥惧彿", "鍥惧彿鐗堟湰", "瀛愪欢浠g爜", "瀛愪欢鍚嶇О", "瀛愪欢瑙勬牸", "鎵瑰彿", "濮斿鍔犲伐鍗曚綅浠g爜", "濮斿鍔犲伐鍗曚綅", "璁惧鍚嶇О", "璁惧浠g爜", "鍘熸枡鎵规", "琛ユ枡鏍囪", "椤圭洰缂栧彿", "涓昏鏉愭枡", "鍏抽敭鏉愭枡", "浜у搧CODE", "閿�鍞鍗曞彿", "瀹㈡埛绠�绉�", "瀹㈡埛瑕佹眰鏉愭枡鎴愬垎", "浜у搧鍚嶇О2", "瀹㈡埛鍚嶇О", "鐢熶骇澶囨敞", "閲嶈鎻愮ず", "鍘熸潗鏂欑紪鍙稟", "鍘熸潗鏂欑紪鍙稡", "鍘熸潗鏂欑紪鍙稢", "鍘熸潗鏂欑紪鍙稤", "鍘熸潗鏂欏唴鐮丄", "鍘熸潗鏂欏唴鐮丅", "鍘熸潗鏂欏唴鐮丆", "鍘熸潗鏂欏唴鐮丏", "鏃ヨ鍒掑伐鍗曞彿", "瀹㈡埛缂栫爜", "鑺綋瑙勬牸鍨嬪彿", "鑺綋鐗╂枡浠g爜", "婧愬崟瀹㈡埛浠g爜", "HEmpID","HCusID"];
+ //涓嶉渶瑕佹樉绀虹殑瀛楁 鍙墿灞� 锛堝伐鑹烘祦绋嬶級
+ var titleData2 = ["宸ュ簭鍙�", "鍑虹珯鎶ュ簾鍏宠仈鏁伴噺", "HProcID", "宸ュ簭浠g爜", "HBackProc", "鍔犲伐璇存槑", "妯″叿缂栧彿", "HCenterID", "宸ヤ綔涓績浠g爜", "HDeptID", "鍔犲伐杞﹂棿浠g爜", "鍔犲伐杞﹂棿", "HGroupID", "鐝粍浠g爜", "鐝粍", "HWorkerID", "鎿嶄綔宸ヤ唬鐮乫", "鎿嶄綔宸�", "HSourceID", "鐢熶骇璧勬簮浠g爜", "鐢熶骇璧勬簮", "璁″垝鏁伴噺", "hmainid", "鍗曟嵁鍙�", "hicmointerid", "浠诲姟鍗曞彿", "HICMOEntryID", "HWorkShopID", "鐢熶骇杞﹂棿浠g爜", "鐢熶骇杞﹂棿", "HMaterID", "浜у搧浠g爜", "浜у搧鍚嶇О", "瑙勬牸鍨嬪彿", "鎵瑰彿", "HUnitID", "鍗曚綅浠g爜", "鍗曚綅", "鐢熶骇鏁伴噺", "璁″垝寮�宸ユ棩鏈�", "璁″垝瀹屽伐鏃ユ湡", "鎽樿", "鍐呴儴鍗曟嵁鍙�", "濮斿璁㈠崟鍐呯爜", "濮斿璁㈠崟瀛愬唴鐮�", "濮斿璁㈠崟鍙�", "HSupID", "渚涘簲鍟�", "渚涘簲鍟嗕唬鐮�", "琛ㄥご澶囨敞", "HBillType", "isEntrust", "鏃堕棿鍗曚綅", "宸ュ簭璁″垝鍔犲伐鏃堕棿", "瀛愯鍒掑紑宸ユ棩鏈�", "瀛愯鍒掑畬宸ユ棩鏈�", "瀹為檯寮�宸ユ棩鏈�", "瀹為檯瀹屽伐鏃ユ湡", "寮�宸ヤ綑閲忓ぉ鏁�", "寮�宸ヤ綑閲忓浐鏁�", "涓婇亾鍥哄畾澶╂暟", "鐢熶骇鍛ㄦ湡", "鍔犲伐鍗曚环", "鏈�鍚庢眹鎶ユ棩鏈�", "鍔犲伐璐圭敤閲戦", "鏈亾宸ュ簭", "棣栭亾宸ュ簭", "琛屽叧闂汉", "鍏抽棴绫诲瀷", "娴佽浆鍗℃暟閲�", "濮斿宸ュ崟鏁伴噺", "涓嶅悎鏍兼暟閲�", "瓒呴姣斾緥", "鑹巼", "绱鑹巼", "鍥剧焊缂栧彿", "鏈伐搴忕‘璁よ褰�", "婧愬崟涓诲唴鐮�", "婧愬崟瀛愬唴鐮�", "婧愬崟鍗曞彿", "婧愬崟绫诲瀷", "姹囨姤鏁伴噺", "HEntryID", "hsubid", "HPRDORGID", "缁勭粐", "HOrderProcNO"];
+ //涓嶉渶瑕佹樉绀虹殑瀛楁 鍙墿灞� 锛堝櫒鍏锋竻鍗曪級
+ var titleData3 = ["HEntryID", "HMouldID", "HMaterID", "HUnitID", "hmainid","hicmointerid"];
+ //涓嶉渶瑕佹樉绀虹殑瀛楁 鍙墿灞� 锛堝伐鑹哄弬鏁版竻鍗曪級
+ var titleData4 = ["HItemID"];
+ //鍒濆鍖栫晫闈�
+ set_ClearBill();
+
+ //#endregion
+
+ //#region 澶村伐鍏锋爮浜嬩欢
+ table.on('toolbar(mainTable)', function (obj) {
+ switch (obj.event) {
+ //鏂板
+ case 'set_AddNew': set_AddNew();
+ break;
+ //缂栬緫
+ case 'set_ShowBill': set_ShowBill();
+ break;
+ //鍒犻櫎
+ case 'set_DeleteBill': set_DeleteBill();
+ break;
+ //澶嶅埗
+ case 'set_Copy': set_Copy();
+ break;
+ //鎵归噺澶嶅埗
+ case 'set_Copy_pl': set_Copy_pl();
+ break;
+ //鎷嗗垎
+ case 'set_cf': set_cf();
+ break;
+ //涓嬫煡(宸ュ簭杩涚珯鎺ユ敹鍗�)
+ case 'get_LookDown_StationIn': get_LookDown(1);
+ break;
+ //涓嬫煡(宸ュ簭鍑虹珯姹囨姤鍗�)
+ case 'get_LookDown_StationOut': get_LookDown(2);
+ break;
+ //瀹℃牳
+ case 'set_CheckBill': set_CheckBill(1);
+ break;
+ //鍙嶅鏍�
+ case 'set_AbandonCheck': set_CheckBill(2);
+ break;
+ //鍏抽棴
+ case 'set_CloseBill': set_CloseBill(1);
+ break;
+ //鍙嶅叧闂�
+ case 'set_CancelCloseBill': set_CloseBill(2);
+ break;
+ //鍒锋柊
+ case 'get_Refresh': get_Refresh();
+ break;
+ //閫�鍑烘寜閽�
+ case 'get_Exit': Pub_Close(2);
+ break;
+ //棰勮
+ case 'btn_view': get_view();
+ break;
+ //鎵撳嵃
+ case 'btn_print': get_print();
+ break;
+ //鎵撳嵃
+ case 'btn_print_pl': get_print_pl();
+ break;
+ //宸ュ簭鍑虹珯姹囨姤鍗�
+ case 'set_StationOut': set_StationOut();
+ break;
+ //宸ュ簭杩涚珯鎺ユ敹鍗�
+ case 'get_StationIn': get_StationIn();
+ break;
+ //鍒楄缃�
+ case 'get_HideColumn1': get_HideColumn1();
+ break;
+ ////鏄庣粏鍒楄缃�
+ //case 'get_HideColumn2': get_HideColumn2();
+ // break;
+ ////鏄庣粏鍒楄缃�
+ //case 'get_HideColumn3': get_HideColumn3();
+ // break;
+ ////鏄庣粏鍒楄缃�
+ //case 'get_HideColumn4': get_HideColumn4();
+ // break;
+ case 'set_FormChange':
+ get_FormChange();
+ break;
+ };
+ });
+
+ table.on('toolbar(mainTable1)', function (obj) {
+ switch (obj.event) {
+ //鏄庣粏鍒楄缃�
+ case 'get_HideColumn3': get_HideColumn3();
+ break;
+
+ };
+ });
+ table.on('toolbar(mainTable2)', function (obj) {
+ switch (obj.event) {
+ //鏂板
+ case 'set_AddNew': set_AddNew();
+ break;
+ //缂栬緫
+ case 'set_ShowBill': set_ShowBill();
+ break;
+ //鍒犻櫎
+ case 'set_DeleteBill': set_DeleteBill();
+ break;
+ //鍒锋柊
+ case 'get_Refresh': get_Refresh();
+ break;
+ //閫�鍑烘寜閽�
+ case 'get_Exit': Pub_Close(2);
+ break;
+ //棰勮
+ case 'btn_view': get_view();
+ break;
+ //鎵撳嵃
+ case 'btn_print': get_print();
+ break;
+ //宸ュ簭鍑虹珯姹囨姤鍗�
+ case 'set_StationOut': set_StationOut();
+ break;
+ //宸ュ簭杩涚珯鎺ユ敹鍗�
+ case 'get_StationIn': get_StationIn();
+ break;
+ //鍒楄缃�
+ //case 'get_HideColumn1': get_HideColumn1();
+ // break;
+ //鏄庣粏鍒楄缃�
+ case 'get_HideColumn2': get_HideColumn2();
+ break
+ //宸ュ簭杩斿伐鍗曠敵璇�
+ case 'get_Fg': get_Fg();
+ break
+ //宸ュ簭杩斿伐鍗曡褰�
+ case 'get_Jl': get_Jl();
+ break
+ //瀛愭祦杞崱
+ case 'get_zlzk': get_zlzk();
+ break
+ //宸ュ簭娲惧伐鍗�
+ //case 'get_Pg': get_Pg();
+ // break
+ };
+ });
+ table.on('toolbar(mainTable3)', function (obj) {
+ switch (obj.event) {
+ //鏄庣粏鍒楄缃�
+ case 'get_HideColumn4': get_HideColumn4();
+ break;
+ };
+ });
+
+ //#endregion
+
+ //#region 閲嶇疆鎸夐挳
+ form.on('submit(btnReSearch)', function (data) {
+ set_ClearQuery();
+ });
+ //#endregion
+
+ //#region 鏌ヨ鎸夐挳
+ form.on('submit(btnSearch)', function (data) {
+ get_FastQuery();
+ });
+ //#endregion
+
+
+ //#region 鏈〉闈㈡墍鏈夎璋冪敤鐨勬柟娉�
+ function set_ClearBill() {
+ get_Dept();
+ $("#HDate").val(Format(new Date(new Date() - 1000 * 60 * 60 * 24 * 7), "yyyy-MM-dd"));//寮�濮嬫棩鏈�
+ $("#HDate1").val(Format(new Date(), "yyyy-MM-dd"));//缁撴潫鏃ユ湡
+ //鍒濆鍖栦富琛ㄥ垪琛�
+ set_InitGrid();
+ //鍒濆鍖栦粠琛ㄥ垪琛�
+ set_InitGrid2();
+ //鍒濆鍖栦粠琛ㄥ垪琛�
+ set_InitGrid3();
+ //鍒濆鍖栦粠琛ㄥ垪琛�
+ set_InitGrid4();
+ table.render(option2);
+ //鏌ヨ
+ get_FastQuery();
+ }
+
+
+ //#region 閲嶇疆杩囨护鏉′欢鏂规硶
+ function set_ClearQuery() {
+ $("#SHPrintQty").val("");//鎵撳嵃鐘舵��
+ $("input[type='checkbox'][name='wybj']").prop('checked', false);
+ form.render("checkbox");//濮斿鏍囪
+ $("#HDate").val(Format(new Date(new Date() - 1000 * 60 * 60 * 24 * 7), "yyyy-MM-dd"));//寮�濮嬫棩鏈�
+ $("#HDate1").val(Format(new Date(), "yyyy-MM-dd"));//缁撴潫鏃ユ湡
+ $("#HOrderProcNO").val("");//璁㈠崟璺熻釜鍙�
+ $("#SHname").val("");//鐗╂枡|瀛愪欢鍚嶇О|瀛愪欢瑙勬牸
+ $("#HBillNo").val("");//鍗曟嵁鍙�
+ $("#ColContent").val("");
+ $("#ColName").val("0");
+ $("#Comparator").val("0");
+ form.render('select');
+ //$("#btnSearch").click();
+ sWhere = "";
+ get_FastQuery();
+ }
+ //#endregion
+
+ //#region 蹇�熻繃婊�
+ function get_FastQuery() {
+ var SHPrintQty = $("#SHPrintQty").val();//鎵撳嵃鐘舵��
+ var HDate = $("#HDate").val();//寮�濮嬫棩鏈�
+ var HDate1 = $("#HDate1").val();//缁撴潫鏃ユ湡
+ var HOrderProcNO = $("#HOrderProcNO").val();//璁㈠崟璺熻釜鍙�
+ var HWorkBillNo = $("#HWorkBillNo").val();
+ var SHname = $("#SHname").val();//鐗╂枡|瀛愪欢鍚嶇О|瀛愪欢瑙勬牸
+ var HBillNo = $("#HBillNo").val();//鍗曟嵁鍙�
+ var HErpID = $("#HErpID").val();//鍞竴ID
+ var ColName = $("#ColName").val();//澶嶉�夋
+ var Comparator = $("#Comparator").val()
+ var ColContent = $("#ColContent").val();
+ var HDeptName = $("#HDeptName").val();//杞﹂棿
+
+ if (ColName != 0 && Comparator != 0) {
+ var com = "";
+ switch (Comparator) {
+ case "7":
+ com = "like'%" + ColContent + "%'";
+ break;
+ case "8":
+ com = "like'%" + ColContent + "'";
+ break;
+ case "9":
+ com = "like'" + ColContent + "%'";
+ break;
+ case "10":
+ com = "not like'%" + ColContent + "%'";
+ break;
+ default:
+ com = "" + Comparator + "'" + ColContent + "'";
+ break;
+ }
+ sWhere += " and " + ColName + " " + com;
+ }
+
+ if (SHPrintQty) {//鍒ゆ柇鎵撳嵃鐘舵��
+ if (SHPrintQty == "鍏ㄩ儴") {
+ sWhere += " and 鎵撳嵃娆℃暟 >= 0 ";
+ }
+ if (SHPrintQty == "宸叉墦鍗�") {
+ sWhere += " and 鎵撳嵃娆℃暟 > 0 ";
+ }
+ if (SHPrintQty == "鏈墦鍗�") {
+ sWhere += " and 鎵撳嵃娆℃暟 = 0 ";
+ }
+ }
+ if (wybj) {
+ sWhere += " and 濮斿鏍囪 = 'Y'";
+ }
+ if (HDate) {
+ sWhere += " and 鏃ユ湡 >= '" + HDate + "'";
+ }
+ if (HDate1) {
+ sWhere += " and 鏃ユ湡 <= '" + HDate1 + "'";
+ }
+ if (HWorkBillNo) {
+ sWhere += " and 鐢熶骇璁㈠崟鍙� like '%" + HWorkBillNo + "%'";
+ }
+ if (HOrderProcNO) {
+ sWhere += " and 璁㈠崟璺熻釜鍙� like '%" + HOrderProcNO + "%'";
+ }
+ if (SHname) {
+ sWhere += " and 瀛愪欢浠g爜 like '%" + SHname + "%'";
+ }
+ if (HBillNo) {
+ sWhere += " and 鍗曟嵁鍙� like '%" + HBillNo + "%'"
+ }
+ if (HDeptName!="0") {
+ sWhere += " and HWorkShopID like '%" + HDeptName + "%'"
+ }
+ if (HErpID) {
+ sWhere += " and 鍞竴ID like '%" + HErpID + "%'";
+ }
+ get_Display(sWhere);
+ sWhere = "";//璋冪敤鎺ュ彛鍚庢竻绌簊Where缂撳瓨
+ }
+ //#endregion
+ //#region 瑙﹀彂浜嬩欢锛氬寘鎷琭orm.on(){}鏍煎紡鐨勬墍鏈夌偣鍑讳簨浠躲�侀�夋嫨浜嬩欢绛�
+
+
+ //閫変腑鍒ゆ柇
+ form.on('checkbox(wybj)', function (data) {
+ wybj = data.elem.checked; //鏄惁琚�変腑锛宼rue鎴栬�協alse
+ });
+
+ //鐐瑰嚮涓昏〃甯﹀嚭浠庤〃鏁版嵁
+ table.on('row(mainTable)', function (obj) { //娉細tool 鏄伐鍏锋潯浜嬩欢鍚嶏紝test 鏄� table 鍘熷瀹瑰櫒鐨勫睘鎬� lay-filter="瀵瑰簲鐨勫��"
+
+ //閫変腑琛屾敼鍙橀鑹�
+ check_row(obj);
+
+ var datas = obj.data; //鑾峰緱褰撳墠琛屾暟鎹�
+ HBillNo = datas["鍗曟嵁鍙�"].toString();
+ var HMainID = datas.hmainid;
+ var wait = layer.load();
+ $.ajax({
+ url: GetWEBURL() + '/LEMS/MES_Sc_ProcessExchangeBillQuerySub_Json',
+ type: "GET",
+ data: { "sWhere": HMainID },
+ async: false,
+ //success: function (data1) {
+ // if (data1.count == 1) {
+ // option2.data = data1.data;
+ // table.render(option2);
+ // layer.close(wait);
+ // } else {
+ // layer.alert(data1.code + data1.Message, { icon: 5 });
+ // layer.close(wait);
+ // }
+ //}, error: function () {
+ // layer.close(wait);
+ // layer.alert("鎺ュ彛澶辨晥!", { icon: 5 });
+ //}
+ success: function (data1) {
+ if (data1.count == 1) {
+ var data = [];
+ var col = [];
+ //缁欑┖鐨勬暟缁勮祴鍊�
+ for (var key in data1.list) {
+ data.push({ "id": data1.list[key].ColmCols, "name": data1.list[key].ColmCols, "Type": data1.list[key].ColmType });
+ }
+ //鍦ㄥ垪琛ㄥ乏杈规坊鍔犲嬀閫夋
+ col.push({ type: 'checkbox', fixed: 'left' });
+ for (var i = 0; i < data.length; i++) {
+ // if (data[i].name == 'HInterID' || data[i].name == 'HBillType' || data[i].name == 'hmainid') {
+ if ($.inArray(data[i].name, titleData2) > -1) {
+ col.push({ field: data[i].id, title: data[i].name, align: 'center', hide: true }); //闅愯棌id鍒�
+ }
+ else {
+ switch (data[i].Type) {
+ //int
+ case 'DateTime':
+ col.push({ field: data[i].id, title: data[i].name, align: 'center', sort: true, templet: "<div>{{d." + data[i].name + " ==null ?'':layui.util.toDateString(d." + data[i].name + ", 'yyyy-MM-dd HH:mm:ss')}}</div>", width: 200 });
+ break;
+ default:
+ col.push({ field: data[i].id, title: data[i].name, align: 'center', sort: true, width: 200 });
+ }
+ }
+ }
+
+ ////鑾峰彇涓嶉渶瑕佹樉绀虹殑瀛楁 缁欓殣钘�
+ //var str = "";
+ //for (var i = 0; i < data.length; i++) {
+ // if ($.inArray(data[i].name, ["娴佹按鍙�", "宸ュ簭鍚嶇О", "宸ヤ綔涓績", "宸ヨ壓鍙傛暟", "澶囨敞", "杩涚珯鍏宠仈鏁伴噺", "鍑虹珯鍏宠仈鏁伴噺", "鏃ユ湡", "渚涘簲鍟嗕唬鐮�", "渚涘簲鍟嗗悕绉�", "鏄惁濮斿"]) > -1) {
+
+ // } else {
+ // str += data[i].name + ",";
+ // }
+ //}
+ //console.log(str);
+
+ //鍔ㄦ�佹樉绀哄垪鍚�
+ option2 = {
+ elem: '#mainTable2'
+ , toolbar: '#toolbarDemo2'
+ , cols: [col]
+ , data: data1.data
+ , height: 550
+ , page: true
+ , cellMinWidth: 90
+ , limit: 50
+ , limits: [50, 500, 5000, 20000]
+ }
+ table.render(option2);
+
+ //鍒锋柊琛ㄦ牸鏁版嵁
+ //DisPlay_HideColumn();
+
+ layer.close(wait);
+ //layer.alert("鏌ヨ鎴愬姛", { icon: 1 });
+ } else {
+ layer.close(wait);
+ layer.alert(data1.code + data1.Message, { icon: 5 });
+ }
+ }, error: function () {
+ layer.close(wait);
+ layer.alert("鎺ュ彛璇锋眰澶辫触!", { icon: 5 });
+ }
+ });
+ DisPlay_HideColumn_Sec();
+ set_ClearBillHMainID(HMainID); //鍣ㄥ叿娓呭崟
+ });
+
+ //#endregion
+
+
+ function set_ClearBillHMainID(HMainID) {
+ resultTableHead = []; //娓呯┖琛ㄥご鍒楋紝闃叉閲嶅娓叉煋
+ //鍒濆鏌ヨ
+ get_DisplayHMainID(HMainID);
+ get_Display4(HMainID);
+ }
+ //#endregion
+
+ //#region 鏌ヨ (鍣ㄥ叿娓呭崟)
+ function get_DisplayHMainID(HMainID) {
+ var ajaxLoad = layer.load();
+ $.ajax({
+ url: GetWEBURL() + '/Sc_ProcessExchangeBillList/QJQD',
+ type: "GET",
+ data: { "HProcExchHinteID": HMainID },
+ success: function (data1) {
+ if (data1.count == 1) {
+
+ if (data1.data.length == 0) {
+ QJQD = 0;
+ } else {
+ QJQD = 1;
+ }
+
+ var data = [];
+ //缁欑┖鐨勬暟缁勮祴鍊�
+ for (var key in data1.list) {
+ data.push({ "id": data1.list[key].ColmCols, "name": data1.list[key].ColmCols, "Type": data1.list[key].ColmType });
+ }
+ var col = [];
+ for (var i = 0; i < data.length; i++) {
+ // if (data[i].name == 'HInterID' || data[i].name == 'HBillType' || data[i].name == 'hmainid') {
+ if ($.inArray(data[i].name, titleData3) > -1) {
+ col.push({ field: data[i].id, title: data[i].name, align: 'center', hide: true }); //闅愯棌id鍒�
+ }
+ else {
+ switch (data[i].Type) {
+ //int
+ case 'DateTime':
+ col.push({ field: data[i].id, title: data[i].name, align: 'center', sort: true, templet: "<div>{{d." + data[i].name + " ==null ?'':layui.util.toDateString(d." + data[i].name + ", 'yyyy-MM-dd')}}</div>", width: 200 });
+ break;
+ default:
+ col.push({ field: data[i].id, title: data[i].name, align: 'center', sort: true, width: 200 });
+ }
+ }
+ }
+
+ //鍔ㄦ�佹樉绀哄垪鍚�
+ option3 = {
+ elem: '#mainTable1'
+ , toolbar: '#toolbarDemo3'
+ , cols: [col]
+ , data: data1.data
+ , height: 550
+ , page: true
+ , cellMinWidth: 90
+ , limit: 50
+ , limits: [50, 500, 5000, 20000]
+ }
+ table.render(option3);
+
+ layer.close(ajaxLoad);
+ //layer.alert("鏌ヨ鎴愬姛", { icon: 1 });
+ } else {
+ layer.close(ajaxLoad);
+ layer.alert(data1.code + data1.Message, { icon: 5 });
+ }
+ }, error: function () {
+ layer.close(ajaxLoad);
+ layer.alert("鎺ュ彛璇锋眰澶辫触!", { icon: 5 });
+ }
+ });
+ DisPlay_HideColumn_Mod();
+ }
+ //#endregion
+
+ //鐢熶骇杞﹂棿
+ function get_Dept() {
+ //鑾峰彇杞﹂棿鍒�
+ var HDeptName = '<option value="0" style="color:red;" selected>鍏ㄩ儴杞﹂棿</option>';
+ $.ajax({
+ type: "get",
+ url: GetWEBURL() + "/Sc_ICMOBill/GetHDeptList",
+ async: false,
+ data: { "HOrgID": sessionStorage["OrganizationID"] },
+ success: function (result) {
+ if (result.count == 1) { // 璇存槑楠岃瘉鎴愬姛浜嗭紝
+ var data = result.data;
+ if (sessionStorage["OrganizationID"] == 100014) {
+ HDeptName += '<option style="color:blue;" value="2679633" >姘寸涓�鏉℃祦</option>';
+ HDeptName += '<option style="color:blue;" value="1592361" >閮ㄤ欢娌瑰喎鍣ㄥ反</option>';
+ HDeptName += '<option style="color:blue;" value="1592371" >灏忚溅瑁呰姱宸�</option>';
+ HDeptName += '<option style="color:blue;" value="1592374" >灏忚溅鎬绘垚宸�</option>';
+ HDeptName += '<option style="color:blue;" value="1743766" >鍗¤溅瑁呰姱宸�</option>';
+ HDeptName += '<option style="color:blue;" value="1743767" >鍗¤溅鎬绘垚宸�</option>';
+ HDeptName += '<option style="color:blue;" value="2679647" >鍗¤溅姘寸涓�鏉℃祦</option>';
+ } else {
+ for (var i = 0; i < data.length; i++) {
+ HDeptName += '<option style="color:blue;" value="' + data[i].HItemID + '" >' + data[i].HName + '</option>';
+ }
+ }
+
+ $("#HDeptName").append(HDeptName);
+ form.render('select');
+ }
+ layer.closeAll("loading");
+ }
+ })
+ }
+
+ function check_row(obj) {
+ var flag = !obj.tr.find(':checkbox:first').prop('checked');
+ obj.tr.find(':checkbox').prop('checked', flag);
+ if (flag) {
+ obj.tr.find('.layui-form-checkbox').addClass('layui-form-checked'); //璁剧疆澶嶉�夋閫変腑鏍峰紡
+ $(obj.tr.selector).attr({ "style": "background:#ceedfa;color:black" });//鏀瑰彉褰撳墠tr鑳屾櫙棰滆壊鍜屽瓧浣撻鑹�
+ } else {
+ obj.tr.find('.layui-form-checkbox').removeClass('layui-form-checked');//鍙栨秷澶嶉�夋閫変腑鏍峰紡
+ $(obj.tr.selector).attr({ "style": "background:" });//鍙栨秷褰撳墠tr棰滆壊
+ }
+ //mainTable 涓鸿〃鏍糏D 娉ㄦ剰姝ゅ濡傛灉ID涓嶆纭皢瀵艰嚧浣犲湪鐩戝惉澶嶉�夋鏃惰幏鍙栦笉鍒颁綘閫夋嫨鐨勬暟鎹紝鍓嶉潰鐨勫彧鏄坊鍔犳垨鍒犻櫎閫変腑鏈�変腑鏍峰紡浠ュ強璁剧疆鑳屾櫙鑹诧紝瀛椾綋棰滆壊
+ layui.each(table.cache.mainTable, function (i, l) {
+ if (obj.tr.index() == l.LAY_TABLE_INDEX) {
+ l.LAY_CHECKED = flag;
+ }
+ });
+ }
+
+ //#region 鏌ヨ 宸ヨ壓鍙傛暟
+ function get_Display4(HMainID) {
+ var ajaxLoad = layer.load();
+ $.ajax({
+ url: GetWEBURL() + '/Sc_ProcessExchangeBill/GetProcessExchangeBillSubTech',
+ type: "GET",
+ data: { "HInterID": HMainID },
+ success: function (data1) {
+ if (data1.count == 1) {
+ var data = [];
+ //缁欑┖鐨勬暟缁勮祴鍊�
+ for (var key in data1.list) {
+ data.push({ "id": data1.list[key].ColmCols, "name": data1.list[key].ColmCols, "Type": data1.list[key].ColmType });
+ }
+ var col = [];
+ for (var i = 0; i < data.length; i++) {
+ // if (data[i].name == 'HInterID' || data[i].name == 'HBillType' || data[i].name == 'hmainid') {
+ if ($.inArray(data[i].name, titleData4) > -1) {
+ col.push({ field: data[i].id, title: data[i].name, align: 'center', hide: true }); //闅愯棌id鍒�
+ }
+ else {
+ switch (data[i].Type) {
+ //int
+ case 'DateTime':
+ col.push({ field: data[i].id, title: data[i].name, align: 'center', sort: true, templet: "<div>{{d." + data[i].name + " ==null ?'':layui.util.toDateString(d." + data[i].name + ", 'yyyy-MM-dd HH:mm:ss')}}</div>", width: 200 });
+ break;
+ default:
+ col.push({ field: data[i].id, title: data[i].name, align: 'center', sort: true, width: 200 });
+ }
+ }
+ }
+
+ //鍔ㄦ�佹樉绀哄垪鍚�
+ option4 = {
+ elem: '#mainTable3'
+ , toolbar: '#toolbarDemo4'
+ , cols: [col]
+ , data: data1.data
+ , height: 550
+ , page: true
+ , cellMinWidth: 90
+ , limit: 50
+ , limits: [50, 500, 5000, 20000]
+ }
+ table.render(option4);
+
+ layer.close(ajaxLoad);
+ //layer.alert("鏌ヨ鎴愬姛", { icon: 1 });
+ } else {
+ layer.close(ajaxLoad);
+ layer.alert(data1.code + data1.Message, { icon: 5 });
+ }
+ }, error: function () {
+ layer.close(ajaxLoad);
+ layer.alert("鎺ュ彛璇锋眰澶辫触!", { icon: 5 });
+ }
+ });
+ DisPlay_HideColumn_Tech();
+ }
+ //#endregion
+
+ //鍒濆鍖栦富琛ㄥ垪琛�
+ function set_InitGrid() {
+ option = {
+ elem: '#mainTable'
+ , toolbar: '#toolbarDemo'
+ , page: true
+ , height: 300
+ , cellMinWidth: 90
+ , limit: 50
+ , limits: [50, 500, 5000, 20000]
+ , cols: [[
+ // { type: 'checkbox', fixed: 'left' }
+ // , { field: 'hmainid', title: 'hmainid', width: 90, hide: true }
+ // , { field: '鎵撳嵃娆℃暟', title: '鎵撳嵃娆℃暟' }
+ // , { field: '绫诲瀷', title: '绫诲瀷' }
+ // , {
+ // field: '鏃ユ湡', title: '鏃ユ湡', width: 120, sort: true, templet: "<div>{{d.鏃ユ湡 ==null ?'':layui.util.toDateString(d.鏃ユ湡, 'yyyy-MM-dd')}}</div>"
+ // }
+ // , { field: '璁㈠崟璺熻釜鍙�', title: '璁㈠崟璺熻釜鍙�', width: 120 }
+ // , { field: '鍗曟嵁鍙�', title: '鍗曟嵁鍙�', width: 190 }
+ // , { field: 'hicmointerid', title: 'hicmointerid', width: 80, hide: true }
+ // , { field: '浠诲姟鍗曞彿', title: '浠诲姟鍗曞彿', width: 140 }
+ // , { field: '鍞竴ID', title: '鍞竴ID', width: 140 }
+ // , { field: '鏃ヨ鍒掑伐鍗曟棩鏈�', title: '鏃ヨ鍒掑伐鍗曟棩鏈�', width: 140 }
+ // , { field: 'HWorkShopID', title: 'HWorkShopID', width: 80, hide: true }
+ // , { field: 'HDeptID', title: 'HDeptID', width: 80, hide: true }
+ // , { field: '鐢熶骇杞﹂棿浠g爜', title: '鐢熶骇杞﹂棿浠g爜', width: 115 }
+ // , { field: '鐢熶骇杞﹂棿', title: '鐢熶骇杞﹂棿' }
+ // , { field: '濮斿鏍囪', title: '濮斿鏍囪' }
+ // , { field: 'HMaterID', title: 'HMaterID', width: 80, hide: true }
+ // , { field: '瀛愪欢浠g爜', title: '瀛愪欢浠g爜' }
+ // , { field: '瀛愪欢鍚嶇О', title: '瀛愪欢鍚嶇О' }
+ // , { field: '瀛愪欢瑙勬牸', title: '瀛愪欢瑙勬牸' }
+ // , { field: '鎵瑰彿', title: '鎵瑰彿' }
+ // , { field: '鍘熸枡鎵规鍙�', title: '鍘熸枡鎵规鍙�' }
+ // , { field: 'HMaterID2', title: 'HMaterID2', width: 80, hide: true }
+ // , { field: '浜у搧浠g爜', title: '浜у搧浠g爜' }
+ // , { field: '浜у搧鍚嶇О', title: '浜у搧鍚嶇О' }
+ // , { field: '瑙勬牸鍨嬪彿', title: '瑙勬牸鍨嬪彿' }
+ // , { field: 'HUnitID', title: 'HUnitID', width: 80, hide: true }
+ // , { field: '鍗曚綅浠g爜', title: '鍗曚綅浠g爜' }
+ // , { field: '鍗曚綅', title: '鍗曚綅' }
+ // , { field: '璁惧妯″叿浠g爜', title: '璁惧妯″叿浠g爜' }
+ // , { field: '璁惧妯″叿', title: '璁惧妯″叿' }
+ // , { field: '鐢熶骇鏁伴噺', title: '鐢熶骇鏁伴噺' }
+ // , { field: '娴佽浆鍗℃暟閲�', title: '娴佽浆鍗℃暟閲�' }
+ // , { field: '璁″垝寮�宸ユ棩鏈�', title: '璁″垝寮�宸ユ棩鏈�' }
+ // , { field: '璁″垝瀹屽伐鏃ユ湡', title: '璁″垝瀹屽伐鏃ユ湡' }
+ // , { field: '鎽樿', title: '鎽樿' }
+ // , { field: '鍐呴儴鍗曟嵁鍙�', title: '鍐呴儴鍗曟嵁鍙�' }
+ // , { field: '琛ㄥご澶囨敞', title: '琛ㄥご澶囨敞' }
+ // , { field: '鍒跺崟浜�', title: '鍒跺崟浜�' }
+ // , { field: '鍒跺崟鏃ユ湡', title: '鍒跺崟鏃ユ湡' }
+ // , { field: '瀹℃牳浜�', title: '瀹℃牳浜�' }
+ // , { field: '瀹℃牳鏃ユ湡', title: '瀹℃牳鏃ユ湡' }
+ // , { field: '淇敼浜�', title: '淇敼浜�' }
+ // , { field: '淇敼鏃ユ湡', title: '淇敼鏃ユ湡' }
+ // , { field: '鍏抽棴浜�', title: '鍏抽棴浜�' }
+ // , { field: '鍏抽棴鏃ユ湡', title: '鍏抽棴鏃ユ湡' }
+ // , { field: '浣滃簾浜�', title: '浣滃簾浜�' }
+ // , { field: '浣滃簾鏃ユ湡', title: '浣滃簾鏃ユ湡' }
+ // , { field: 'HBillType', title: 'HBillType', width: 80, hide: true }
+ // , { field: 'hsubid', title: 'hsubid', width: 80, hide: true }
+ // , { field: '鎷嗗垎鏁伴噺', title: '鎷嗗垎鏁伴噺' }
+ // , { field: '婧愬崟瀹㈡埛缂栫爜', title: '婧愬崟瀹㈡埛缂栫爜', width: 80 }
+ // , { field: '鍖呰鏍囪瘑', title: '鍖呰鏍囪瘑', width: 80 }
+ // , { field: '鍖呰鏍囪瘑缂栫爜', title: '鍖呰鏍囪瘑缂栫爜', width: 80 }
+ ]]
+ };
+ //table.render(option);
+ }
+
+ //鍒濆鍖栦粠琛ㄥ垪琛� 宸ヨ壓娴佺▼
+ function set_InitGrid2() {
+ option2 = {
+ elem: '#mainTable2'
+ //, toolbar: '#toolbarDemo'
+ , page: false
+ , height: 500
+ , cellMinWidth: 90
+ , limit: Number.MAX_VALUE//榛樿鏄剧ず鍏ㄩ儴
+ , cols: [[
+ //{ type: 'checkbox', fixed: 'left' }
+ //, { field: 'hsubid', title: 'hsubid', hide: true }
+ //, { field: '娴佹按鍙�', title: '娴佹按鍙�' }
+ //, { field: 'HProcID', title: 'HProcID', hide: true }
+ //, { field: '宸ュ簭浠g爜', title: '宸ュ簭浠g爜' }
+ //, { field: '宸ュ簭鍚嶇О', title: '宸ュ簭鍚嶇О' }
+ //, { field: '娴佽浆鍗℃暟閲�', title: '娴佽浆鍗℃暟閲�', width: 100 }
+ //, { field: '杩涚珯鍏宠仈鏁伴噺', title: '杩涚珯鍏宠仈鏁伴噺', width: 120 }
+ //, { field: '鍑虹珯鍏宠仈鏁伴噺', title: '鍑虹珯鍏宠仈鏁伴噺', width: 120 }
+ //, { field: '鍑虹珯鎶ュ簾鍏宠仈鏁伴噺', title: '鍑虹珯鎶ュ簾鍏宠仈鏁伴噺', width: 150 }
+ //, { field: '杩斿伐鏍囪', title: '杩斿伐鏍囪' }
+ //, { field: '鍔犲伐璇存槑', title: '鍔犲伐璇存槑' }
+ //, { field: '宸ヤ綔涓績浠g爜', title: '宸ヤ綔涓績浠g爜', width: 115 }
+ //, { field: '宸ヤ綔涓績', title: '宸ヤ綔涓績' }
+ //, { field: '璁″垝鏁伴噺', title: '璁″垝鏁伴噺' }
+ //, { field: 'hmainid', title: 'hmainid', hide: true }
+ //, { field: '鏃ユ湡', title: '鏃ユ湡', sort: true }
+ //, { field: '鍗曟嵁鍙�', title: '鍗曟嵁鍙�', width: 150 }
+ //, { field: 'hicmointerid', title: 'hicmointerid', hide: true }
+ //, { field: '浠诲姟鍗曞彿', title: '浠诲姟鍗曞彿', width: 100 }
+ //, { field: 'HWorkShopID', title: 'HWorkShopID', hide: true }
+ //, { field: '鐢熶骇杞﹂棿浠g爜', title: '鐢熶骇杞﹂棿浠g爜', width: 115 }
+ //, { field: '鐢熶骇杞﹂棿', title: '鐢熶骇杞﹂棿' }
+ //, { field: 'HMaterID', title: 'HMaterID', hide: true }
+ //, { field: '浜у搧浠g爜', title: '浜у搧浠g爜' }
+ //, { field: '浜у搧鍚嶇О', title: '浜у搧鍚嶇О' }
+ //, { field: '瑙勬牸鍨嬪彿', title: '瑙勬牸鍨嬪彿' }
+ //, { field: '鎵瑰彿', title: '鎵瑰彿' }
+ //, { field: 'HUnitID', title: 'HUnitID', hide: true }
+ //, { field: '鍗曚綅浠g爜', title: '鍗曚綅浠g爜' }
+ //, { field: '鍗曚綅', title: '鍗曚綅' }
+ //, { field: '鐢熶骇鏁伴噺', title: '鐢熶骇鏁伴噺' }
+ //, { field: '璁″垝寮�宸ユ棩鏈�', title: '璁″垝寮�宸ユ棩鏈�' }
+ //, { field: '璁″垝瀹屽伐鏃ユ湡', title: '璁″垝瀹屽伐鏃ユ湡' }
+ //, { field: '鎽樿', title: '鎽樿' }
+ //, { field: '鍐呴儴鍗曟嵁鍙�', title: '鍐呴儴鍗曟嵁鍙�' }
+ //, { field: 'HSupID', title: 'HSupID', hide: true }
+ //, { field: '濮斿鍔犲伐鍗曚綅浠g爜', title: '濮斿鍔犲伐鍗曚綅浠g爜' }
+ //, { field: '濮斿鍔犲伐鍗曚綅', title: '濮斿鍔犲伐鍗曚綅' }
+ //, { field: '琛ㄥご澶囨敞', title: '琛ㄥご澶囨敞' }
+ //, { field: 'HBillType', title: 'HBillType', hide: true }
+ //, { field: '琛屽叧闂汉', title: '琛屽叧闂汉' }
+ //, { field: '鍏抽棴绫诲瀷', title: '鍏抽棴绫诲瀷' }
+ //, { field: '琛ㄤ綋澶囨敞', title: '琛ㄤ綋澶囨敞' }
+ //, { field: '婧愬崟涓诲唴鐮�', title: '婧愬崟涓诲唴鐮�' }
+ //, { field: '婧愬崟瀛愬唴鐮�', title: '婧愬崟瀛愬唴鐮�' }
+ //, { field: '婧愬崟鍗曞彿', title: '婧愬崟鍗曞彿' }
+ //, { field: '婧愬崟绫诲瀷', title: '婧愬崟绫诲瀷' }
+ //, { field: '姹囨姤鏁伴噺', title: '姹囨姤鏁伴噺' }
+ //, { field: '娴佽浆宸ュ簭', title: '娴佽浆宸ュ簭' }
+ //, { field: '鍑虹珯娴佽浆宸ュ簭', title: '鍑虹珯娴佽浆宸ュ簭' }
+ //, { field: '棣栭亾宸ュ簭', title: '棣栭亾宸ュ簭' }
+ //, { field: '鏈亾宸ュ簭', title: '鏈亾宸ュ簭' }
+ //, { field: '涓嬮亾宸ュ簭鍙�', title: '涓嬮亾宸ュ簭鍙�' }
+ //, { field: '涓嶈壇鍝佸叧鑱旀暟閲�', title: '涓嶈壇鍝佸叧鑱旀暟閲�' }
+ ]]
+ };
+
+ }
+ //鍒濆鍖栦粠琛ㄥ垪琛� 鍣ㄥ叿娓呭崟
+ function set_InitGrid3() {
+ option3 = {
+ elem: '#mainTable1'
+ //, toolbar: '#toolbarDemo'
+ , page: false
+ , height: 500
+ , cellMinWidth: 90
+ , limit: Number.MAX_VALUE//榛樿鏄剧ず鍏ㄩ儴
+ , cols: [[]]
+ };
+
+ }
+ //鍒濆鍖栦粠琛ㄥ垪琛� 宸ヨ壓鍙傛暟娓呭崟
+ function set_InitGrid4() {
+ option4 = {
+ elem: '#mainTable3'
+ //, toolbar: '#toolbarDemo'
+ , page: false
+ , height: 500
+ , cellMinWidth: 90
+ , limit: Number.MAX_VALUE//榛樿鏄剧ず鍏ㄩ儴
+ , cols: [[]]
+ };
+
+ }
+ //#region 鏌ヨ (涓昏〃)
+ function get_Display(sWhere) {
+ sWhere += " and HPRDORGID=" + sessionStorage["OrganizationID"] + " and HBillSubType='SUB' ";
+ var ajaxLoad = layer.load();
+ $.ajax({
+ url: GetWEBURL() + '/LEMS/MES_Sc_ProcessExchangeBillQuery_Json',
+ type: "GET",
+ data: { "sWhere": sWhere, "user": sessionStorage["HUserName"] },
+ success: function (data1) {
+ if (data1.count == 1) {
+ var data = [];
+ var col = [];
+ //缁欑┖鐨勬暟缁勮祴鍊�
+ for (var key in data1.list) {
+ data.push({ "id": data1.list[key].ColmCols, "name": data1.list[key].ColmCols, "Type": data1.list[key].ColmType });
+ }
+ //鍦ㄥ垪琛ㄥ乏杈规坊鍔犲嬀閫夋
+ col.push({ type: 'checkbox', fixed: 'left', totalRowText: '鍚堣' });
+ for (var i = 0; i < data.length; i++) {
+ // if (data[i].name == 'HInterID' || data[i].name == 'HBillType' || data[i].name == 'hmainid') {
+ if ($.inArray(data[i].name, titleData) > -1) {
+ col.push({ field: data[i].id, title: data[i].name, align: 'center', hide: true }); //闅愯棌id鍒�
+ }
+ else {
+ switch (data[i].Type) {
+ //int
+ case 'DateTime':
+ col.push({ field: data[i].id, title: data[i].name, align: 'center', sort: true, templet: "<div>{{d." + data[i].name + " ==null ?'':layui.util.toDateString(d." + data[i].name + ", 'yyyy-MM-dd')}}</div>", width: 200 });
+ break;
+ default:
+ if (data[i].name == '鐢熶骇鏁伴噺' || data[i].name == '娴佽浆鍗℃暟閲�' || data[i].name == '鍏ュ簱鏁伴噺') {
+ col.push({ field: data[i].id, title: data[i].name, align: 'center', sort: true, width: 200, totalRow: true });
+ } else {
+ col.push({ field: data[i].id, title: data[i].name, align: 'center', sort: true, width: 200});
+ }
+ }
+ }
+ }
+
+ //鍔ㄦ�佹樉绀哄垪鍚�
+ option = {
+ elem: '#mainTable'
+ , toolbar: '#toolbarDemo'
+ , cols: [col]
+ , data: data1.data
+ , height: 550
+ , page: true
+ , totalRow: true
+ , cellMinWidth: 90
+ , limit: 50
+ , limits: [50, 500, 5000, 20000]
+ //, done: function (res, curr, count) {
+ // var $data = $('div[lay-id="mainTable"]').find('.layui-table-body').find('tr').eq(0).find('td');
+ // var $head = $('div[lay-id="mainTable"]').find('.layui-table-header').find('tr').eq(0).find('th');
+ // var $total = $('div[lay-id="mainTable"]').find('.layui-table-total').find('tr').eq(0).find('td');
+ // for (var i = 0; i < $data.length; i++) {
+ // var l1 = $data.eq(i).find('div').width();
+ // var l2 = $head.eq(i).find('div').width();
+ // if (l1 > l2) {
+ // $head.eq(i).find('div').width(l1);
+ // $total.eq(i).find('div').width(l1);
+ // } else {
+ // $data.eq(i).find('div').width(l2);
+ // $total.eq(i).find('div').width(l2);
+ // }
+ // }
+ //}
+ }
+ table.render(option);
+
+ //鍒锋柊琛ㄦ牸鏁版嵁
+ DisPlay_HideColumn();
+
+ if ($("#Comparator").val() == 0 && $("#ColContent").val() == "") {
+ ColFilter();
+ }
+
+ layer.close(ajaxLoad);
+ //layer.alert("鏌ヨ鎴愬姛", { icon: 1 });
+ } else {
+ layer.close(ajaxLoad);
+ layer.alert(data1.code + data1.Message, { icon: 5 });
+ }
+ }, error: function () {
+ layer.close(ajaxLoad);
+ layer.alert("鎺ュ彛璇锋眰澶辫触!", { icon: 5 });
+ }
+ });
+ DisPlay_HideColumn();
+ }
+ //#endregion
+
+ //#region 闅愯棌鍒楄缃� (涓诲垪琛�)
+ function get_HideColumn1() {
+ var colName = "";
+ for (var i = 1; i < option.cols[0].length - 1; i++) {
+ colName += option.cols[0][i]["title"] + ",";
+ }
+
+ colName = encodeURI(colName.substring(0, colName.length - 1));//瀵� URI 杩涜缂栫爜
+ layer.open({
+ type: 2
+ , skin: "layui-layer-rim" //鍔犱笂杈规
+ , title: "闅愯棌鍒楄缃�" //鏍囬
+ , closeBtn: 1 //绐椾綋鍙充笂瑙掑叧闂� 鐨� 鏍峰紡
+ , shift: 2 //寮瑰嚭鍔ㄧ敾
+ , area: ["50%", "90%"] //绐椾綋澶у皬
+ , maxmin: true //璁剧疆鏈�澶ф渶灏忔寜閽槸鍚︽樉绀�
+ , content: ['../../鍩虹璧勬枡/闅愯棌鍒楄缃�/Gy_GridView_Hide.html?HModName=' + HModName + '&colName=' + colName, "yes"]
+ , btn: ["纭畾", "鍙栨秷"]
+ , btn1: function (index, laero) {
+ //鍒锋柊琛ㄦ牸鏁版嵁
+ DisPlay_HideColumn();
+ //鏇存柊琛ㄦ牸缂撳瓨鐨勬暟鎹�
+ layer.close(index);//鍏抽棴寮圭獥
+ }
+ })
+ }
+ //#endregion
+
+ //#region 闅愯棌鍒楄缃� (宸ヨ壓娴佺▼)
+ function get_HideColumn2() {
+ var colName = "";
+ for (var i = 1; i < option2.cols[0].length - 1; i++) {
+ colName += option2.cols[0][i]["title"] + ",";
+ }
+
+ colName = encodeURI(colName.substring(0, colName.length - 1));//瀵� URI 杩涜缂栫爜
+ layer.open({
+ type: 2
+ , skin: "layui-layer-rim" //鍔犱笂杈规
+ , title: "闅愯棌鍒楄缃�" //鏍囬
+ , closeBtn: 1 //绐椾綋鍙充笂瑙掑叧闂� 鐨� 鏍峰紡
+ , shift: 2 //寮瑰嚭鍔ㄧ敾
+ , area: ["50%", "90%"] //绐椾綋澶у皬
+ , maxmin: true //璁剧疆鏈�澶ф渶灏忔寜閽槸鍚︽樉绀�
+ , content: ['../../鍩虹璧勬枡/闅愯棌鍒楄缃�/Gy_GridView_Hide.html?HModName=' + HModName + "_Sec" + '&colName=' + colName, "yes"]
+ , btn: ["纭畾", "鍙栨秷"]
+ , btn1: function (index, laero) {
+ //鍒锋柊琛ㄦ牸鏁版嵁
+ DisPlay_HideColumn_Sec();
+ //鏇存柊琛ㄦ牸缂撳瓨鐨勬暟鎹�
+ layer.close(index);//鍏抽棴寮圭獥
+ }
+ })
+ }
+ //#endregion
+
+ //宸ュ簭杩斿伐鐢宠
+ function get_Fg() {
+ var checkStatus = table.checkStatus('mainTable2')
+ , data = checkStatus.data;
+ if (checkStatus.data.length === 1) {
+ if (checkStatus.data[0]["娴佹按鍙�"] != "9999") {
+ layer.open({
+ type: 2
+ , skin: "layui-layer-rim" //鍔犱笂杈规
+ , title: "宸ュ簭杩斿伐鐢宠鍗曠紪杈�" //鏍囬
+ , closeBtn: 1 //绐椾綋鍙充笂瑙掑叧闂� 鐨� 鏍峰紡
+ , shift: 2 //寮瑰嚭鍔ㄧ敾
+ , area: ["100%", "100%"] //绐椾綋澶у皬
+ , maxmin: true //璁剧疆鏈�澶ф渶灏忔寜閽槸鍚︽樉绀�
+ , content: ['../../杞﹂棿绠$悊/宸ュ簭娴佽浆鍗�/Sc_ProcExchWorkBackBillEdit.html?OperationType=1&linterid=' + checkStatus.data[0]["hmainid"] + '&HEntryID=' + checkStatus.data[0]["娴佹按鍙�"], "yes"]
+ , btn1: function (index, laero) {
+ //鍒锋柊琛ㄦ牸鏁版嵁
+ DisPlay_HideColumn();
+ //鏇存柊琛ㄦ牸缂撳瓨鐨勬暟鎹�
+ layer.close(index);//鍏抽棴寮圭獥
+ }
+ })
+ } else {
+ layer.msg('杩斿伐宸ュ簭涓嶈兘鏄浆宸ュ簭锛�');
+ }
+ } else {
+ layer.msg('璇烽�夋嫨涓�琛屾暟鎹紪杈戯紒');
+ }
+ }
+
+ //宸ュ簭杩斿伐璁板綍
+ function get_Jl() {
+ var checkStatus = table.checkStatus('mainTable2')
+ , data = checkStatus.data;
+ if (checkStatus.data.length === 1) {
+ if (checkStatus.data[0]["娴佹按鍙�"] != "9999") {
+ layer.open({
+ type: 2
+ , skin: "layui-layer-rim" //鍔犱笂杈规
+ , title: "宸ュ簭杩斿伐璁板綍鍗曠紪杈�" //鏍囬
+ , closeBtn: 1 //绐椾綋鍙充笂瑙掑叧闂� 鐨� 鏍峰紡
+ , shift: 2 //寮瑰嚭鍔ㄧ敾
+ , area: ["100%", "100%"] //绐椾綋澶у皬
+ , maxmin: true //璁剧疆鏈�澶ф渶灏忔寜閽槸鍚︽樉绀�
+ , content: ['../../杞﹂棿绠$悊/宸ュ簭娴佽浆鍗�/Sc_ProcExchRecordBackBillEdit.html?OperationType=1&linterid=' + checkStatus.data[0]["hmainid"] + '&HEntryID=' + checkStatus.data[0]["娴佹按鍙�"], "yes"]
+ , btn1: function (index, laero) {
+ //鍒锋柊琛ㄦ牸鏁版嵁
+ DisPlay_HideColumn();
+ //鏇存柊琛ㄦ牸缂撳瓨鐨勬暟鎹�
+ layer.close(index);//鍏抽棴寮圭獥
+ }
+ })
+ } else {
+ layer.msg('杩斿伐宸ュ簭涓嶈兘鏄浆宸ュ簭锛�');
+ }
+ } else {
+ layer.msg('璇烽�夋嫨涓�琛屾暟鎹紪杈戯紒');
+ }
+ }
+
+ //瀛愭祦杞崱
+ function get_zlzk() {
+ var checkStatus = table.checkStatus('mainTable2')
+ , data = checkStatus.data;
+ if (checkStatus.data.length === 1) {
+ var linterid = data[0].hmainid;
+ var HEntryID = data[0].HEntryID;
+ var HProcID = data[0].HProcID;
+ //if (AllowLoadData(sSubStr) != false) {//闈炵┖楠岃瘉
+ layer.open({
+ type: 2
+ , area: ['100%', '100%']
+ , title: '宸ュ簭瀛愭祦杞崱-缂栬緫'
+ , shift: 0//寮瑰嚭鍔ㄧ敾
+ , content: '../宸ュ簭娴佽浆鍗�/Sc_ProcessExchangeBill.html?OperationType=5&linterid=' + linterid + '&HEntryID=' + HEntryID + '&HproID=' + HProcID
+ })
+ } else {
+ layer.msg('璇烽�夋嫨涓�琛屾暟鎹紪杈戯紒');
+ }
+ }
+
+
+ //宸ュ簭娲惧伐
+ //function get_Pg() {
+ // var checkStatus = table.checkStatus('mainTable2')
+ // , data = checkStatus.data;
+ // if (checkStatus.data.length === 1) {
+ // if (checkStatus.data[0]["娴佹按鍙�"] != "9999") {
+ // layer.open({
+ // type: 2
+ // , skin: "layui-layer-rim" //鍔犱笂杈规
+ // , title: "宸ュ簭娲惧伐鍗曠紪杈�" //鏍囬
+ // , closeBtn: 1 //绐椾綋鍙充笂瑙掑叧闂� 鐨� 鏍峰紡
+ // , shift: 2 //寮瑰嚭鍔ㄧ敾
+ // , area: ["100%", "100%"] //绐椾綋澶у皬
+ // , maxmin: true //璁剧疆鏈�澶ф渶灏忔寜閽槸鍚︽樉绀�
+ // , content: ['../../杞﹂棿绠$悊/宸ュ簭娴佽浆鍗�/Sc_ProcessSendWorkEdit.html?OperationType=1&linterid=' + checkStatus.data[0]["hmainid"] + '&HEntryID=' + checkStatus.data[0]["HEntryID"], "yes"]
+ // , btn: ["纭畾", "鍙栨秷"]
+ // , btn1: function (index, laero) {
+ // //鍒锋柊琛ㄦ牸鏁版嵁
+ // DisPlay_HideColumn();
+ // //鏇存柊琛ㄦ牸缂撳瓨鐨勬暟鎹�
+ // layer.close(index);//鍏抽棴寮圭獥
+ // }
+ // })
+ // } else {
+ // layer.msg('娲惧伐宸ュ簭涓嶈兘鏄浆宸ュ簭锛�');
+ // }
+ // } else {
+ // layer.msg('璇烽�夋嫨涓�琛屾暟鎹紪杈戯紒');
+ // }
+ //}
+
+ //#region 鏄剧ず鍒楁暟鎹� (涓诲垪琛�)
+ function DisPlay_HideColumn() {
+ $.ajax({
+ url: GetWEBURL() + '/Xt_grdAlignment_WMES/grdAlignmentWMESList',
+ type: "GET",
+ data: { "HModName": HModName, "user": sessionStorage["HUserName"] },
+ success: function (data1) {
+ if (data1.data.length != 0) {
+
+
+ var dataCol = [];//鏁版嵁搴撴煡璇㈠嚭鐨勫垪鏁版嵁
+ /*var titleData = ["hmainid", "hicmointerid", "HWorkShopID", "HDeptID", "HMaterID", "HMaterID2", "HUnitID", "HBillType", "hsubid"];//涓嶉渶瑕佹樉绀虹殑瀛楁 鍙墿灞�*/
+
+ dataCol = data1.data[0].HGridString.split(',');
+
+ for (var i = 0; i < option.cols[0].length - 2; i++) {
+ if (dataCol[i]) {
+ var dataCols = dataCol[i].split('|');
+ }
+ //闅愯棌鍒�
+ if (dataCols[1] == 1) {
+ option.cols[0][i + 1]["hide"] = true;
+ }
+ //璁剧疆鍒楀
+ if (dataCols[3] > 0) {
+ option.cols[0][i + 1]["width"] = dataCols[3];
+ }
+ //璁剧疆鍐呭瀛椾綋澶у皬
+ if (data1.data[0].HFontSize != 0) {
+ option.cols[0][i + 1]["style"] = "font-size:" + data1.data[0].HFontSize + "px;";
+ } else {
+ option.cols[0][i + 1]["style"] = "font-size:100%";
+ }
+ //璁剧疆鍒楀
+ //if (data1.data[0].HColumnWidth != 0) {
+ // option.cols[0][i + 1]["width"] = data1.data[0].HColumnWidth + "px;";
+ //} else {
+ // option.cols[0][i + 1]["width"] = "";
+ //}
+ //鏄剧ず鍒�
+ if (dataCols[1] == 0 && $.inArray(option.cols[0][i + 1]["title"], titleData) == -1) {
+ option.cols[0][i + 1]["hide"] = false;
+ }
+ //瀛椾綋鎵�鍦ㄤ綅缃�(宸� 灞呬腑 鍙�)
+ switch (dataCols[2]) {
+ case "L":
+ option.cols[0][i + 1]["align"] = "left";
+ break;
+ case "M":
+ option.cols[0][i + 1]["align"] = "center";
+ break;
+ case "R":
+ option.cols[0][i + 1]["align"] = "right";
+ break;
+ }
+ }
+
+ //鍙栨秷鍐荤粨鍒�
+ for (var i = 1; i < option.cols[0].length - 1; i++) {
+ if (option.cols[0][i]["fixed"] != null) {
+ option.cols[0][i]["fixed"] = null;
+ }
+ else {
+ break;
+ }
+ }
+ //鍐荤粨鍒�
+ if (data1.data[0].HFixCols != 0) {
+ for (var i = 0; i < data1.data[0].HFixCols; i++) {
+ if ($.inArray(option.cols[0][i + 1]["title"], titleData) != -1) {
+ data1.data[0].HFixCols += 1;
+ }
+ option.cols[0][i + 1]["fixed"] = "left";
+ }
+ }
+ table.render(option);
+ } else {
+ table.render(option);
+ }
+ }, error: function () {
+ layer.alert("鎺ュ彛璇锋眰澶辫触!", { icon: 5 });
+ }
+ })
+ }
+ //#endregion
+
+ //#region 鏄剧ず鍒楁暟鎹� (宸ヨ壓娴佺▼)
+ function DisPlay_HideColumn_Sec() {
+ $.ajax({
+ url: GetWEBURL() + '/Xt_grdAlignment_WMES/grdAlignmentWMESList',
+ type: "GET",
+ data: { "HModName": HModName + "_Sec", "user": sessionStorage["HUserName"] },
+ success: function (data1) {
+ if (data1.data.length != 0) {
+
+
+ var dataCol = [];//鏁版嵁搴撴煡璇㈠嚭鐨勫垪鏁版嵁
+ //var titleData = ["HMaterID", "HUnitID", "HICMOEmpID"];//涓嶉渶瑕佹樉绀虹殑瀛楁 鍙墿灞�
+
+ dataCol = data1.data[0].HGridString.split(',');
+
+ for (var i = 0; i < option2.cols[0].length - 2; i++) {
+ if (dataCol[i]) {
+ var dataCols = dataCol[i].split('|');
+ }
+ //闅愯棌鍒�
+ if (dataCols[1] == 1) {
+ option2.cols[0][i + 1]["hide"] = true;
+ }
+ //璁剧疆鍒楀
+ if (dataCols[3] > 0) {
+ option2.cols[0][i + 1]["width"] = dataCols[3];
+ }
+ //璁剧疆鍐呭瀛椾綋澶у皬
+ if (data1.data[0].HFontSize != 0) {
+ option2.cols[0][i + 1]["style"] = "font-size:" + data1.data[0].HFontSize + "px;";
+ } else {
+ option2.cols[0][i + 1]["style"] = "font-size:100%";
+ }
+ //璁剧疆鍒楀
+ //if (data1.data[0].HColumnWidth != 0) {
+ // option2.cols[0][i + 1]["width"] = data1.data[0].HColumnWidth + "px;";
+ //} else {
+ // option2.cols[0][i + 1]["width"] = "";
+ //}
+ //鏄剧ず鍒�
+ if (dataCols[1] == 0 && $.inArray(option2.cols[0][i + 1]["title"], titleData2) == -1) {
+ option2.cols[0][i + 1]["hide"] = false;
+ }
+ //瀛椾綋鎵�鍦ㄤ綅缃�(宸� 灞呬腑 鍙�)
+ switch (dataCols[2]) {
+ case "L":
+ option2.cols[0][i + 1]["align"] = "left";
+ break;
+ case "M":
+ option2.cols[0][i + 1]["align"] = "center";
+ break;
+ case "R":
+ option2.cols[0][i + 1]["align"] = "right";
+ break;
+ }
+ }
+
+ //鍙栨秷鍐荤粨鍒�
+ for (var i = 1; i < option2.cols[0].length - 1; i++) {
+ if (option2.cols[0][i]["fixed"] != null) {
+ option2.cols[0][i]["fixed"] = null;
+ }
+ else {
+ break;
+ }
+ }
+ //鍐荤粨鍒�
+ if (data1.data[0].HFixCols != 0) {
+ for (var i = 0; i < data1.data[0].HFixCols; i++) {
+ if ($.inArray(option2.cols[0][i + 1]["title"], titleData2) != -1) {
+ data1.data[0].HFixCols += 1;
+ }
+ option2.cols[0][i + 1]["fixed"] = "left";
+ }
+ }
+ table.render(option2);
+ } else {
+ table.render(option2);
+ }
+ }, error: function () {
+ layer.alert("鎺ュ彛璇锋眰澶辫触!", { icon: 5 });
+ }
+ })
+ }
+ //#endregion
+
+ //#region 闅愯棌鍒� 鏄剧ず鍒楁暟鎹� 锛堝櫒鍏锋竻鍗曪級
+ //闅愯棌
+ function get_HideColumn3() {
+ var colName = "";
+ for (var i = 1; i < option3.cols[0].length - 1; i++) {
+ colName += option3.cols[0][i]["title"] + ",";
+ }
+
+ colName = encodeURI(colName.substring(0, colName.length - 1));//瀵� URI 杩涜缂栫爜
+ layer.open({
+ type: 2
+ , skin: "layui-layer-rim" //鍔犱笂杈规
+ , title: "闅愯棌鍒楄缃�" //鏍囬
+ , closeBtn: 1 //绐椾綋鍙充笂瑙掑叧闂� 鐨� 鏍峰紡
+ , shift: 2 //寮瑰嚭鍔ㄧ敾
+ , area: ["50%", "90%"] //绐椾綋澶у皬
+ , maxmin: true //璁剧疆鏈�澶ф渶灏忔寜閽槸鍚︽樉绀�
+ , content: ['../../鍩虹璧勬枡/闅愯棌鍒楄缃�/Gy_GridView_Hide.html?HModName=' + HModName + "_Mod" + '&colName=' + colName, "yes"]
+ , btn: ["纭畾", "鍙栨秷"]
+ , btn1: function (index, laero) {
+ //鍒锋柊琛ㄦ牸鏁版嵁
+ DisPlay_HideColumn_Mod();
+ //鏇存柊琛ㄦ牸缂撳瓨鐨勬暟鎹�
+ layer.close(index);//鍏抽棴寮圭獥
+ }
+ })
+ }
+
+ //鏄剧ず
+ function DisPlay_HideColumn_Mod() {
+ $.ajax({
+ url: GetWEBURL() + '/Xt_grdAlignment_WMES/grdAlignmentWMESList',
+ type: "GET",
+ data: { "HModName": HModName + "_Mod", "user": sessionStorage["HUserName"] },
+ success: function (data1) {
+ if (data1.data.length != 0) {
+
+
+ var dataCol = [];//鏁版嵁搴撴煡璇㈠嚭鐨勫垪鏁版嵁
+ /*var titleData = ["hmainid", "hicmointerid", "HWorkShopID", "HDeptID", "HMaterID", "HMaterID2", "HUnitID", "HBillType", "hsubid"];//涓嶉渶瑕佹樉绀虹殑瀛楁 鍙墿灞�*/
+
+ dataCol = data1.data[0].HGridString.split(',');
+
+ for (var i = 0; i < option3.cols[0].length - 2; i++) {
+ if (dataCol[i]) {
+ var dataCols = dataCol[i].split('|');
+ }
+ //闅愯棌鍒�
+ if (dataCols[1] == 1) {
+ option3.cols[0][i + 1]["hide"] = true;
+ }
+ //璁剧疆鍒楀
+ if (dataCols[3] > 0) {
+ option3.cols[0][i + 1]["width"] = dataCols[3];
+ }
+ //璁剧疆鍐呭瀛椾綋澶у皬
+ if (data1.data[0].HFontSize != 0) {
+ option3.cols[0][i + 1]["style"] = "font-size:" + data1.data[0].HFontSize + "px;";
+ } else {
+ option3.cols[0][i + 1]["style"] = "font-size:100%";
+ }
+ //璁剧疆鍒楀
+ //if (data1.data[0].HColumnWidth != 0) {
+ // option.cols[0][i + 1]["width"] = data1.data[0].HColumnWidth + "px;";
+ //} else {
+ // option.cols[0][i + 1]["width"] = "";
+ //}
+ //鏄剧ず鍒�
+ if (dataCols[1] == 0 && $.inArray(option3.cols[0][i + 1]["title"], titleData3) == -1) {
+ option3.cols[0][i + 1]["hide"] = false;
+ }
+ //瀛椾綋鎵�鍦ㄤ綅缃�(宸� 灞呬腑 鍙�)
+ switch (dataCols[2]) {
+ case "L":
+ option3.cols[0][i + 1]["align"] = "left";
+ break;
+ case "M":
+ option3.cols[0][i + 1]["align"] = "center";
+ break;
+ case "R":
+ option3.cols[0][i + 1]["align"] = "right";
+ break;
+ }
+ }
+
+ //鍙栨秷鍐荤粨鍒�
+ for (var i = 1; i < option3.cols[0].length - 1; i++) {
+ if (option3.cols[0][i]["fixed"] != null) {
+ option3.cols[0][i]["fixed"] = null;
+ }
+ else {
+ break;
+ }
+ }
+ //鍐荤粨鍒�
+ if (data1.data[0].HFixCols != 0) {
+ for (var i = 0; i < data1.data[0].HFixCols; i++) {
+ if ($.inArray(option3.cols[0][i + 1]["title"], titleData3) != -1) {
+ data1.data[0].HFixCols += 1;
+ }
+ option3.cols[0][i + 1]["fixed"] = "left";
+ }
+ }
+ table.render(option3);
+ } else {
+ table.render(option3);
+ }
+ }, error: function () {
+ layer.alert("鎺ュ彛璇锋眰澶辫触!", { icon: 5 });
+ }
+ })
+ }
+ //#endregion
+
+ //#region 闅愯棌鍒� 鏄剧ず鍒楁暟鎹� 锛堝伐鑹哄弬鏁版竻鍗曪級
+ //闅愯棌
+ function get_HideColumn4() {
+ var colName = "";
+ for (var i = 1; i < option4.cols[0].length - 1; i++) {
+ colName += option4.cols[0][i]["title"] + ",";
+ }
+
+ colName = encodeURI(colName.substring(0, colName.length - 1));//瀵� URI 杩涜缂栫爜
+ layer.open({
+ type: 2
+ , skin: "layui-layer-rim" //鍔犱笂杈规
+ , title: "闅愯棌鍒楄缃�" //鏍囬
+ , closeBtn: 1 //绐椾綋鍙充笂瑙掑叧闂� 鐨� 鏍峰紡
+ , shift: 2 //寮瑰嚭鍔ㄧ敾
+ , area: ["50%", "90%"] //绐椾綋澶у皬
+ , maxmin: true //璁剧疆鏈�澶ф渶灏忔寜閽槸鍚︽樉绀�
+ , content: ['../../鍩虹璧勬枡/闅愯棌鍒楄缃�/Gy_GridView_Hide.html?HModName=' + HModName + "_Tech" + '&colName=' + colName, "yes"]
+ , btn: ["纭畾", "鍙栨秷"]
+ , btn1: function (index, laero) {
+ //鍒锋柊琛ㄦ牸鏁版嵁
+ DisPlay_HideColumn_Tech();
+ //鏇存柊琛ㄦ牸缂撳瓨鐨勬暟鎹�
+ layer.close(index);//鍏抽棴寮圭獥
+ }
+ })
+ }
+
+ //鏄剧ず
+ function DisPlay_HideColumn_Tech() {
+ $.ajax({
+ url: GetWEBURL() + '/Xt_grdAlignment_WMES/grdAlignmentWMESList',
+ type: "GET",
+ data: { "HModName": HModName + "_Tech", "user": sessionStorage["HUserName"] },
+ success: function (data1) {
+ if (data1.data.length != 0) {
+
+
+ var dataCol = [];//鏁版嵁搴撴煡璇㈠嚭鐨勫垪鏁版嵁
+ /*var titleData = ["hmainid", "hicmointerid", "HWorkShopID", "HDeptID", "HMaterID", "HMaterID2", "HUnitID", "HBillType", "hsubid"];//涓嶉渶瑕佹樉绀虹殑瀛楁 鍙墿灞�*/
+
+ dataCol = data1.data[0].HGridString.split(',');
+
+ for (var i = 0; i < option4.cols[0].length - 2; i++) {
+ if (dataCol[i]) {
+ var dataCols = dataCol[i].split('|');
+ }
+ //闅愯棌鍒�
+ if (dataCols[1] == 1) {
+ option4.cols[0][i + 1]["hide"] = true;
+ }
+ //璁剧疆鍒楀
+ if (dataCols[3] > 0) {
+ option4.cols[0][i + 1]["width"] = dataCols[3];
+ }
+ //璁剧疆鍐呭瀛椾綋澶у皬
+ if (data1.data[0].HFontSize != 0) {
+ option4.cols[0][i + 1]["style"] = "font-size:" + data1.data[0].HFontSize + "px;";
+ } else {
+ option4.cols[0][i + 1]["style"] = "font-size:100%";
+ }
+ //璁剧疆鍒楀
+ //if (data1.data[0].HColumnWidth != 0) {
+ // option.cols[0][i + 1]["width"] = data1.data[0].HColumnWidth + "px;";
+ //} else {
+ // option.cols[0][i + 1]["width"] = "";
+ //}
+ //鏄剧ず鍒�
+ if (dataCols[1] == 0 && $.inArray(option4.cols[0][i + 1]["title"], titleData4) == -1) {
+ option4.cols[0][i + 1]["hide"] = false;
+ }
+ //瀛椾綋鎵�鍦ㄤ綅缃�(宸� 灞呬腑 鍙�)
+ switch (dataCols[2]) {
+ case "L":
+ option4.cols[0][i + 1]["align"] = "left";
+ break;
+ case "M":
+ option4.cols[0][i + 1]["align"] = "center";
+ break;
+ case "R":
+ option4.cols[0][i + 1]["align"] = "right";
+ break;
+ }
+ }
+
+ //鍙栨秷鍐荤粨鍒�
+ for (var i = 1; i < option4.cols[0].length - 1; i++) {
+ if (option4.cols[0][i]["fixed"] != null) {
+ option4.cols[0][i]["fixed"] = null;
+ }
+ else {
+ break;
+ }
+ }
+ //鍐荤粨鍒�
+ if (data1.data[0].HFixCols != 0) {
+ for (var i = 0; i < data1.data[0].HFixCols; i++) {
+ if ($.inArray(option4.cols[0][i + 1]["title"], titleData4) != -1) {
+ data1.data[0].HFixCols += 1;
+ }
+ option4.cols[0][i + 1]["fixed"] = "left";
+ }
+ }
+ table.render(option4);
+ } else {
+ table.render(option4);
+ }
+ }, error: function () {
+ layer.alert("鎺ュ彛璇锋眰澶辫触!", { icon: 5 });
+ }
+ })
+ }
+ //#endregion
+
+ //#region 鏂板
+ function set_AddNew() {
+ layer.open({
+ type: 2
+ , skin: 'layui-layer-rim' //鍔犱笂杈规
+ , area: ['100%', '100%']
+ , title: '宸ュ簭娴佽浆鍗�-鏂板'
+ , shift: 0//寮瑰嚭鍔ㄧ敾
+ , content: '../宸ュ簭娴佽浆鍗�/Sc_ProcessExchangeBill.html?OperationType=1&linterid=&HEntryID=&HSouceBillType='
+ })
+ }
+ //#endregion
+
+ //#region 缂栬緫
+ function set_ShowBill() {
+ var checkStatus = table.checkStatus('mainTable')
+ , data = checkStatus.data;
+ if (checkStatus.data.length === 1) {
+ var linterid = data[0].hmainid;
+ //if (AllowLoadData(sSubStr) != false) {//闈炵┖楠岃瘉
+ layer.open({
+ type: 2
+ , area: ['100%', '100%']
+ , title: '宸ュ簭娴佽浆鍗�-缂栬緫'
+ , shift: 0//寮瑰嚭鍔ㄧ敾
+ , content: '../宸ュ簭娴佽浆鍗�/Sc_ProcessExchangeBill.html?OperationType=3&linterid=' + linterid + '&HEntryID=&HSouceBillType='
+ })
+ } else {
+ layer.msg('璇烽�夋嫨涓�琛屾暟鎹紪杈戯紒');
+ }
+ }
+ //#endregion
+
+ //#region 鍗曟嵁鍙樻洿
+ function get_FormChange() {
+ var checkStatus = table.checkStatus('mainTable')
+ , data = checkStatus.data;
+ if (checkStatus.data.length === 1) {
+ var linterid = data[0].hmainid;
+ layer.open({
+ type: 2
+ , area: ['100%', '100%']
+ , title: '宸ュ簭娴佽浆鍗�-鍗曟嵁鍙樻洿'
+ , shift: 0//寮瑰嚭鍔ㄧ敾
+ , content: '../宸ュ簭娴佽浆鍗�/Sc_ProcessExchangeBill_Change.html?linterid=' + linterid
+ , btn: ['纭', '鍙栨秷']
+ , btn1: function (index, laero) {
+ set_ClearBill();
+ //鏇存柊琛ㄦ牸缂撳瓨鐨勬暟鎹�
+ layer.close(index);//鍏抽棴寮圭獥
+ }
+ })
+ } else {
+ layer.msg('璇烽�夋嫨涓�琛屾暟鎹紪杈戯紒');
+ }
+ }
+ //#endregion
+
+ //鍒犻櫎
+ function set_DeleteBill() {
+ var checkStatus = table.checkStatus('mainTable')
+ , data = checkStatus.data;
+ if (checkStatus.data.length > 0) {
+ var HInterID = [];
+ for (var i = 0; i < data.length; i++) {
+ HInterID.push(data[i].hmainid.toString());
+ }
+
+ //閫昏緫鍒犻櫎鏂规硶
+ layer.confirm("纭瑕佸垹闄ゅ悧锛屽垹闄ゅ悗涓嶈兘鎭㈠", { title: "鍒犻櫎纭" }, function (index) {
+ $.ajax({
+ type: "GET",
+ url: GetWEBURL() + "/Sc_ProcessExchangeBill/DeltetProcessExchangeBillByID", //鏂规硶鎵�鍦ㄩ〉闈㈠拰鏂规硶鍚�
+ data: { "HInterID": HInterID.toString(), "HPRDORGID": sessionStorage["OrganizationID"], "user": sessionStorage["HUserName"] },
+ success: function (result) {
+ if (result.count == 1) {
+ layer.msg(result.Message, { time: 1 * 1000, icon: 1 }, function () {
+ // 寰楀埌frame绱㈠紩
+ var index = layer.getFrameIndex(window.name);
+ //鍏抽棴褰撳墠frame
+ layer.close(index);
+ //淇敼涓哄姛鍚庡埛鏂扮晫闈�
+ window.location.reload();
+ });
+
+ } else {
+ layer.alert(result.code + result.Message, { icon: 5 });
+ }
+ }, error: function () {
+ layer.alert("鎺ュ彛璇锋眰澶辫触!", { icon: 5 });
+ }
+ });
+ })
+ }
+ else {
+ layer.msg('璇烽�夋嫨涓�琛屾暟鎹垹闄わ紒');
+ }
+ }
+
+ //澶嶅埗
+ function set_Copy() {
+ var checkStatus = table.checkStatus('mainTable')
+ , data = checkStatus.data;
+ if (checkStatus.data.length === 1) {
+ var linterid = data[0].hmainid;
+ //if (AllowLoadData(sSubStr) != false) {//闈炵┖楠岃瘉
+ layer.open({
+ type: 2
+ , area: ['100%', '100%']
+ , title: '宸ュ簭娴佽浆鍗�-缂栬緫'
+ , shift: 0//寮瑰嚭鍔ㄧ敾
+ , content: '../宸ュ簭娴佽浆鍗�/Sc_ProcessExchangeBill.html?OperationType=4&linterid=' + linterid + '&HEntryID=&HSouceBillType='
+ })
+ } else {
+ layer.msg('璇烽�夋嫨涓�琛屾暟鎹紪杈戯紒');
+ }
+ }
+
+ //鎵归噺澶嶅埗
+ function set_Copy_pl() {
+ var checkStatus = table.checkStatus('mainTable')
+ , data = checkStatus.data;
+ if (checkStatus.data.length == 1) {
+ var linterid = data[0].hmainid;
+ layer.open({
+ type: 2
+ , area: ['40%', '40%']
+ , title: '宸ュ簭娴佽浆鍗�-鎵归噺澶嶅埗'
+ , shift: 0//寮瑰嚭鍔ㄧ敾
+ , content: '../宸ュ簭娴佽浆鍗�/Sc_ProcessExchangeBill_Copy_PL.html?OperationType=plfz&linterid=' + linterid
+ })
+ } else {
+ layer.msg('璇烽�夋嫨涓�琛屾暟鎹紒');
+ }
+ }
+
+ //鎷嗗垎
+ function set_cf() {
+ var checkStatus = table.checkStatus('mainTable')
+ , data = checkStatus.data;
+ if (checkStatus.data.length === 1) {
+ var linterid = data[0].hmainid;
+ //if (AllowLoadData(sSubStr) != false) {//闈炵┖楠岃瘉
+ layer.open({
+ type: 2
+ , area: ['100%', '100%']
+ , title: '宸ュ簭娴佽浆鍗″垪琛�-缂栬緫'
+ , shift: 0//寮瑰嚭鍔ㄧ敾
+ , content: '../宸ュ簭娴佽浆鍗�/Sc_ProcessExchangeBill_CF.html?OperationType=1&linterid=' + linterid + '&HEntryID=&HSouceBillType='
+ })
+ } else {
+ layer.msg('璇烽�夋嫨涓�琛屾暟鎹紪杈戯紒');
+ }
+ }
+
+ //涓嬫煡(1:宸ュ簭杩涚珯鎺ユ敹鍗曘��2锛氬伐搴忓嚭绔欐眹鎶ュ崟)
+ function get_LookDown(num) {
+ var checkStatus = table.checkStatus('mainTable')
+ , data = checkStatus.data;
+ if (data.length === 1) {
+ var url = "";
+ var operationName = "";
+ var HBillNo = data[0]["鍗曟嵁鍙�"];
+ if (num == 1) {
+ url = '../../杞﹂棿绠$悊/宸ュ簭杩涚珯鎺ユ敹鍗�/Cj_StationInBillList.html?HBillNo=' + HBillNo;
+ operationName = "宸ュ簭娴佽浆鍗$淮鎶�-涓嬫煡(宸ュ簭杩涚珯鎺ユ敹鍗�)";
+ } else if (num == 2) {
+ url = '../../杞﹂棿绠$悊/宸ュ簭鍑虹珯姹囨姤鍗�/Cj_StationOutBillList.html?HBillNo=' + HBillNo;
+ operationName = "宸ュ簭娴佽浆鍗$淮鎶�-涓嬫煡(宸ュ簭鍑虹珯姹囨姤鍗�)";
+ }
+ layer.open({
+ type: 2
+ , area: ['100%', '100%']
+ , title: operationName
+ , shift: 0//寮瑰嚭鍔ㄧ敾
+ , content: url
+ })
+ } else {
+ layer.msg('璇烽�夋嫨涓�琛屾暟鎹笅鎺紒');
+ }
+ }
+
+ //棰勮
+ function get_view() {
+ var checkStatus = table.checkStatus('mainTable')
+ , data = checkStatus.data;
+ if (checkStatus.data.length === 1) {
+ layer.open({
+ type: 2
+ , area: ['50%', '50%']
+ , title: '鎵撳嵃妯$増閫夋嫨'
+ , shade: 0.6 //閬僵閫忔槑搴�
+ , maxmin: false //鍏佽鍏ㄥ睆鏈�灏忓寲
+ , anim: 0 //0-6鐨勫姩鐢诲舰寮忥紝-1涓嶅紑鍚�
+ , content: ['../../BaseSet/SRM_OpenTmpList.html?linterid=' + data[0].hmainid.toString() + QJQD + '&MyMsg=' + data[0].hmainid.toString() + '&Type=HProcessExchange', 'yes']
+ , resize: false
+ })
+ }
+ else {
+ layer.msg('璇烽�夋嫨涓�琛屾暟鎹墦鍗帮紒');
+ }
+ }
+ //鎵撳嵃
+ function get_print() {
+ var checkStatus = table.checkStatus('mainTable')
+ , data = checkStatus.data;
+ if (checkStatus.data.length == 1) {
+ var linterid = [];
+
+ for (var i = 0; i < data.length; i++) {
+ linterid.push(data[i].hmainid.toString())
+ }
+ layer.open({
+ type: 2
+ , area: ['80%', '80%']
+ , title: '鎵撳嵃妯$増閫夋嫨'
+ , shade: 0.6 //閬僵閫忔槑搴�
+ , maxmin: false //鍏佽鍏ㄥ睆鏈�灏忓寲
+ , anim: 0 //0-6鐨勫姩鐢诲舰寮忥紝-1涓嶅紑鍚�
+ , content: ['../../BaseSet/SRM_OpenTmpList.html?linterid=' + linterid.toString() + "|" + QJQD + '&MyMsg=' + linterid.toString() + '&Type=HProcessExchange', 'yes']
+ , resize: false
+ })
+ }
+ else {
+ layer.msg('璇烽�夋嫨涓�琛屾暟鎹墦鍗帮紒');
+ }
+ }
+
+ //鎵归噺鎵撳嵃
+ var time;
+ var num = 0;
+ function get_print_pl() {
+ var checkStatus = table.checkStatus('mainTable')
+ , data = checkStatus.data;
+
+ if (checkStatus.data.length > 0) {
+ //閫昏緫鍒犻櫎鏂规硶
+ layer.confirm("纭瑕佹壒閲忔墦鍗板悧?", { title: "纭" }, function (index) {
+ time = setInterval(function () {
+ dy(data);
+ }, 2000);
+ //鍏抽棴褰撳墠frame
+ layer.close(index);
+ })
+ }
+ else {
+ layer.msg('璇烽�夋嫨涓�琛屾暟鎹墦鍗帮紒');
+ }
+ }
+
+ function dy(rest) {
+ var HInterID = rest[num].hmainid.toString();
+ var sWhere = "select cast((cast( b.娴佹按鍙� as float)/10) as decimal(6,1)) 娴佹按鍙�,鐢熶骇璁㈠崟鍙�,a.鐢熶骇鏁伴噺,a.鎷嗗垎鍙�,a.娴佽浆鍗℃暟閲�,a.浜よ揣鏃ユ湡,a.浜у搧浠g爜,a.鍗曟嵁鍙�,a.浜у搧瑙勬牸,a.浜у搧鍚嶇О,a.鏃ユ湡,a.璁″垝瀹屽伐鏃ユ湡,a.鍗曟嵁鍙�,b.宸ュ簭鍚嶇О,b.妯″叿缂栧彿,b.宸ヨ壓鍙傛暟,b.鍔犲伐璇存槑,a.骞呭,a.鍏嬮噸,a.鐧藉澂瑕佹眰,a.搴曢儴澶囨敞,a.瀹㈡埛,a.涓氬姟鍛�,a.姣涢珮,a.瀵告暟缁勭粐,a.鍏ㄦ瘺闀�,a.鍧竷瀵嗗害,a.姣涚罕鍚嶇О鍙婅鏍�,a.搴曚笣,a.杈呮暟閲�,a.杈呭姪鍗曚綅,a.瀹氬瀷娴嗘枡,a.浜よ揣鏃ユ湡,a.鏌撹壊瑕佹眰 from h_v_Sc_ProcessExchangeBillQuery a left join h_v_Sc_ProcessExchangeBillQuerySub b on a.hmainid=b.hmainid where a.hmainid in(" + HInterID + ") order by cast(b.娴佹按鍙� as int)";
+ $.ajax({
+ type: "GET",
+ url: GetWEBURL() + "/Gy_SOPBillList/WindowPrintList", //鏂规硶鎵�鍦ㄩ〉闈㈠拰鏂规硶鍚�
+ async: false,
+ data: { "sWhere": sWhere },
+ success: function (data) {
+ if (data.count == 1) { // 璇存槑楠岃瘉鎴愬姛浜嗭紝
+
+ if (data.data.length != 0) {
+ var dataPrint = [];
+ for (var i = 0; i < data.data.length; i++) {
+ data.data[i]["娴佹按鍙�"] = data.data[i]["娴佹按鍙�"].toFixed(1);
+ dataPrint.push(data.data[i])
+ }
+
+ var Customer = {
+ "Table": dataPrint
+ }
+
+ var args = {
+ type: "print",
+ showOptionDlg: false, //濡傛灉涓嶆樉绀烘墦鍗板璇濇鑰岀洿鎺ユ墦鍗帮紝灏嗘琛屾敞閲婂幓鎺夊嵆鍙�
+ report: urlAddRandomNo("../../grf/cs10.grf"),
+ data: Customer
+ };
+ //var args = {
+ // report: urlAddRandomNo("../../grf/cs10.grf"),
+ // data: Customer
+ //};
+ webapp_ws_ajax_run(args);
+
+ if (rest.length <= num + 1) {
+ num = 0;
+ clearInterval(time);
+ } else {
+ num++;
+ }
+
+ } else {
+ layer.msg("鏌ユ棤鏁版嵁!");
+ }
+
+ }
+ else {
+ layer.msg(data.Message, { icon: 5 });
+ }
+ layer.closeAll("loading");
+ },
+ error: function (err) {
+ layer.msg("閿欒:" + err, { icon: 5 });
+ }
+ })
+
+ }
+
+
+ //宸ュ簭鍑虹珯姹囨姤鍗�
+ function set_StationOut() {
+ var checkStatus = table.checkStatus('mainTable2')
+ , data = checkStatus.data;
+ if (data.length == 1) {
+ var HProcNo = data[0].娴佹按鍙�.toString();
+
+ if (HProcNo == "9999") {
+ return layer.msg("娴佹按鍙蜂笉鑳戒负杞伐搴忔祦姘村彿,璇烽噸鏂伴�夋嫨!");
+ }
+ else {
+ layer.open({
+ type: 2
+ , area: ['100%', '100%']
+ , title: '宸ュ簭鍑虹珯姹囨姤鍗�'
+ , shift: 0//寮瑰嚭鍔ㄧ敾
+ , content: '../../杞﹂棿绠$悊/宸ュ簭鍑虹珯姹囨姤鍗�/Cj_StationOutBill.html?OperationType=2&HBillNo=' + HBillNo + '&HProcNo=' + HProcNo
+ })
+ }
+
+ } else {
+ layer.msg('璇烽�夋嫨涓�琛屽伐搴忔暟鎹笅鎺紒');
+ }
+ }
+
+ //宸ュ簭杩涚珯鎺ユ敹鍗�
+ function get_StationIn() {
+ var checkStatus = table.checkStatus('mainTable2')
+ , data = checkStatus.data;
+ if (data.length == 1) {
+ var HProcNo = data[0].娴佹按鍙�.toString();
+
+ if (HProcNo == "9999") {
+ return layer.msg("娴佹按鍙蜂笉鑳戒负杞伐搴忔祦姘村彿,璇烽噸鏂伴�夋嫨!");
+ }
+ else {
+ layer.open({
+ type: 2
+ , area: ['100%', '100%']
+ , title: '宸ュ簭杩涚珯鎺ユ敹鍗�'
+ , shift: 0//寮瑰嚭鍔ㄧ敾
+ , content: '../../杞﹂棿绠$悊/宸ュ簭杩涚珯鎺ユ敹鍗�/Cj_StationInBill.html?OperationType=2&HBillNo=' + HBillNo + '&HProcNo=' + HProcNo
+ })
+ }
+
+ } else {
+ layer.msg('璇烽�夋嫨涓�琛屽伐搴忔暟鎹笅鎺紒');
+ }
+ }
+
+ //鍒楁槑鏄剧ず涓嬫媺妗�
+ function ColFilter() {
+ var Organization = '<option value="0" selected="selected" ></option>';
+ for (var i = 1; i < option.cols[0].length; i++) {
+ if (option.cols[0][i].hide != true) {
+ Organization += '<option style="color:blue;" value="' + option.cols[0][i].field + '">' + option.cols[0][i].field + '</option>';
+ }
+ }
+ $("#ColName").empty();
+ $("#ColName").append(Organization);
+ form.render('select');
+ }
+
+ //#region 鍒锋柊
+ function get_Refresh() {
+ set_ClearQuery();
+ get_Display(sWhere);
+ }
+
+
+ //瀹℃牳 [1 瀹℃牳銆�2 鍙嶅鏍竇
+ function set_CheckBill(num) {
+ var checkStatus = table.checkStatus('mainTable')
+ , data = checkStatus.data;
+
+ if (data.length == 1) {
+ layer.confirm("纭瑕佸鏍稿悧?", function (index) {
+ var wait = layer.load();
+ var HInterID = data[0].hmainid;
+ $.ajax({
+ url: GetWEBURL() + '/Sc_ProcessExchangeBill/CheckSc_ProcessExchangeBill',
+ type: "GET",
+ data: { "HInterID": HInterID, "Type": num, "user": sessionStorage["HUserName"] },
+ success: function (result) {
+ if (result.count == 1) {
+ get_FastQuery();
+ layer.msg(result.Message, { icon: 1 });
+ layer.close(wait);
+ } else {
+ layer.alert(result.code + result.Message, { icon: 5 });
+ layer.close(wait);
+ }
+ }, error: function () {
+ layer.alert("鎺ュ彛璇锋眰澶辫触!", { icon: 5 });
+ layer.close(wait);
+ }
+ });
+ })
+ } else {
+ layer.msg("璇烽�夋嫨涓�鏉℃暟鎹�!");
+ }
+ }
+
+
+ //鍏抽棴 [1 鍏抽棴銆�2 鍙嶅叧闂璢
+ function set_CloseBill(num) {
+ var checkStatus = table.checkStatus('mainTable')
+ , data = checkStatus.data;
+
+ if (data.length == 1) {
+ layer.confirm("纭瑕佸叧闂悧?", function (index) {
+ var wait = layer.load();
+ var HInterID = data[0].hmainid;
+ $.ajax({
+ url: GetWEBURL() + '/Sc_ProcessExchangeBill/CloseSc_ProcessExchangeBill',
+ type: "GET",
+ data: { "HInterID": HInterID, "Type": num, "user": sessionStorage["HUserName"] },
+ success: function (result) {
+ if (result.count == 1) {
+ layer.msg(result.Message, { icon: 1 });
+ layer.close(wait);
+ } else {
+ layer.alert(result.code + result.Message, { icon: 5 });
+ layer.close(wait);
+ }
+ }, error: function () {
+ layer.alert("鎺ュ彛璇锋眰澶辫触!", { icon: 5 });
+ layer.close(wait);
+ }
+ });
+ })
+ }
+ else {
+ layer.msg("璇烽�夋嫨涓�鏉℃暟鎹�!");
+ }
+ }
+
+ //#endregion
+ //浠ヤ笂鏄痩ayui妯″潡
+ });
+
+
+
+
+ </script>
+
+</body>
+</html>
diff --git "a/WebTM/views/\350\275\246\351\227\264\347\256\241\347\220\206/\345\267\245\345\272\217\350\277\233\347\253\231\346\216\245\346\224\266\345\215\225/Cj_StationInBillList.html" "b/WebTM/views/\350\275\246\351\227\264\347\256\241\347\220\206/\345\267\245\345\272\217\350\277\233\347\253\231\346\216\245\346\224\266\345\215\225/Cj_StationInBillList.html"
index 06585f3..792fb4b 100644
--- "a/WebTM/views/\350\275\246\351\227\264\347\256\241\347\220\206/\345\267\245\345\272\217\350\277\233\347\253\231\346\216\245\346\224\266\345\215\225/Cj_StationInBillList.html"
+++ "b/WebTM/views/\350\275\246\351\227\264\347\256\241\347\220\206/\345\267\245\345\272\217\350\277\233\347\253\231\346\216\245\346\224\266\345\215\225/Cj_StationInBillList.html"
@@ -566,6 +566,7 @@
default:
}
}
+ sWhere += " and HBillSubType<>'SUB'";
get_Display(sWhere);
sWhere = "";//璋冪敤鎺ュ彛鍚庢竻绌簊Where缂撳瓨
}
diff --git "a/WebTM/views/\350\275\246\351\227\264\347\256\241\347\220\206/\345\267\245\345\272\217\350\277\233\347\253\231\346\216\245\346\224\266\345\215\225/Cj_StationInBillSubList.html" "b/WebTM/views/\350\275\246\351\227\264\347\256\241\347\220\206/\345\267\245\345\272\217\350\277\233\347\253\231\346\216\245\346\224\266\345\215\225/Cj_StationInBillSubList.html"
new file mode 100644
index 0000000..f2e9b32
--- /dev/null
+++ "b/WebTM/views/\350\275\246\351\227\264\347\256\241\347\220\206/\345\267\245\345\272\217\350\277\233\347\253\231\346\216\245\346\224\266\345\215\225/Cj_StationInBillSubList.html"
@@ -0,0 +1,931 @@
+锘�<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <title>鎸囧紩鍗″紑宸ュ崟</title>
+ <meta name="renderer" content="webkit">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+ <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
+ <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/layui.js"></script>
+ <script src="../../../layuiadmin/Scripts/json2.js"></script>
+ <script src="../../../layuiadmin/Scripts/jquery-1.4.1.js"></script>
+ <script src="../../../layuiadmin/Scripts/webConfig.js"></script>
+ <script src="../../../layuiadmin/zgqCustom/zgqCustom.js"></script>
+ <script src="../../../layuiadmin/PubCustom.js"></script>
+
+</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-colla-title layui-inline">
+ <div class="layui-inline">
+ <span>鏇村</span>
+ </div>
+ </div>
+ <div class="layui-inline">
+ <label class="layui-form-label">鐘舵��</label>
+ <div class="layui-input-block">
+ <select name="HStatus" lay-filter="HStatus" style="width:190px;">
+ <option value="-1" selected="selected">鍏ㄩ儴</option>
+ <option value="0">鏈鏍�</option>
+ <option value="1">宸插鏍�</option>
+ <option value="2">宸插叧闂�</option>
+ </select>
+ </div>
+ </div>
+ <div class="layui-inline">
+ <label class="layui-form-label">寮�濮嬫棩鏈�</label>
+ <div class="layui-input-block">
+ <input type="date" class="layui-input" id="HBeginDate" style="width:190px;">
+ </div>
+ </div>
+ <div class="layui-inline">
+ <label class="layui-form-label">缁撴潫鏃ユ湡</label>
+ <div class="layui-input-block">
+ <input type="date" class="layui-input" id="HEndDate" style="width:190px;">
+ </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>
+ <button class="layui-btn layuiadmin-btn-order" type="button" lay-submit="" lay-filter="btnReSearch" id="btnReSearch" style="padding:0 5px">閲嶇疆</button>
+ <div class="layui-colla-content">
+ <div class="layui-row">
+ <div class="layui-inline">
+ <div class="layui-inline">
+ <span>鍏朵粬鏉′欢></span>
+ </div>
+ </div>
+ <div class="layui-inline">
+ <label class="layui-form-label" style="width: 85px;">浠诲姟鍗曞彿</label>
+ <div class="layui-input-block" style="margin-left: 120px;">
+ <input type="text" class="layui-input" name="HWorkBillNo" id="HWorkBillNo">
+ </div>
+ </div>
+ <div class="layui-inline">
+ <label class="layui-form-label" style="width: 85px;">鍗曟嵁鍙�</label>
+ <div class="layui-input-block" style="margin-left: 120px;">
+ <input type="text" class="layui-input" name="HBillNo" id="HBillNo">
+ </div>
+ </div>
+ <div class="layui-inline">
+ <label class="layui-form-label" style="width: 85px;">宸ュ簭娴佽浆鍗″彿</label>
+ <div class="layui-input-block" style="margin-left: 120px;">
+ <input type="text" class="layui-input" name="宸ュ簭娴佽浆鍗″彿" id="宸ュ簭娴佽浆鍗″彿">
+ </div>
+ </div>
+ </div>
+ <div class="layui-row" style=" margin-top: 10px; margin-left: 80px;">
+ <div class="layui-inline">
+ <label class="layui-form-label" style="width: 85px;">浜у搧浠g爜</label>
+ <div class="layui-input-block" style="margin-left: 120px;">
+ <input type="text" class="layui-input" name="HNumber" id="HNumber">
+ </div>
+ </div>
+ <div class="layui-inline">
+ <label class="layui-form-label" style="width: 85px;">褰撳墠宸ュ簭</label>
+ <div class="layui-input-block" style="margin-left: 120px;">
+ <input type="text" class="layui-input" name="HName" id="HName">
+ </div>
+ </div>
+ </div>
+ <div class="layui-row" style=" margin-top: 10px; margin-left: 80px;">
+ <div class="layui-inline">
+ <label class="layui-form-label">杩囨护</label>
+ <div class="layui-input-block">
+ <select name="ColName" id="ColName" lay-filter="ColName" style="width:190px;">
+ </select>
+ </div>
+ </div>
+ <div class="layui-inline">
+ <select name="Comparator" id="Comparator" lay-filter="Comparator" style="width:190px;">
+ <option value="0" selected="selected"></option>
+ <option value="=">=</option>
+ <option value=">=">>=</option>
+ <option value=">">></option>
+ <option value="<="><=</option>
+ <option value="<"><</option>
+ <option value="<>"><></option>
+ <option value="7">鍖呭惈</option>
+ <option value="8">宸﹀寘鍚�</option>
+ <option value="9">鍙冲寘鍚�</option>
+ <option value="10">涓嶅寘鍚�</option>
+ </select>
+ </div>
+ <div class="layui-inline">
+ <input type="text" class="layui-input" value="" name="ColContent" id="ColContent">
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <table class="" id="mainTable" lay-filter="mainTable"></table>
+ <script type="text/html" id="toolbarDemo">
+ <div class="layui-btn-container">
+ <button type="button" class="layui-btn layui-btn-sm" lay-event="btn-Add" id="btn-Add"><i class="layui-icon layui-icon-add-1"></i>鏂板</button>
+ <button type="button" class="layui-btn layui-btn-sm" lay-event="btn-Edit" id="btn-Edit"><i class="layui-icon layui-icon-edit"></i>缂栬緫</button>
+ <button type="button" class="layui-btn layui-btn-sm" lay-event="btn-Delete" id="btn-Delete"><i class="layui-icon layui-icon-delete"></i>鍒犻櫎</button>
+ <button type="button" class="layui-btn layui-btn-sm" lay-event="btn-Audit" id="btn-Audit"><i class="layui-icon layui-icon-radio"></i>瀹℃牳</button>
+ <button type="button" class="layui-btn layui-btn-sm" lay-event="btn-DeAudit" id="btn-DeAudit"><i class="layui-icon layui-icon-circle"></i>鍙嶅鏍�</button>
+ <button type="button" class="layui-btn layui-btn-sm" lay-event="set_CloseBill" id="set_CloseBill"><i class="layui-icon layui-icon-form"></i>鍏抽棴</button>
+ <button type="button" class="layui-btn layui-btn-sm" lay-event="set_CancelCloseBill" id="set_CancelCloseBill"><i class="layui-icon layui-icon-form"></i>鍙嶅叧闂�</button>
+ <button type="button" class="layui-btn layui-btn-sm" lay-event="btn-FirstPieceCheck" id="btn-FirstPieceCheck">棣栨</button>
+ <!--<button type="button" class="layui-btn layui-btn-sm" lay-event="btn-Print" id="btn-Print"><i class="layui-icon layui-icon-circle"></i>棰勮</button>-->
+ <!--<button type="button" class="layui-btn layui-btn-sm" lay-event="btn-Cell" id="btn-Cell"><i class="layui-icon layui-icon-ok"></i>淇濆瓨鍒楀</button>-->
+ <!--<button type="button" class="layui-btn layui-btn-sm" lay-event="btn-RefreshCell" id="btn-RefreshCell"><i class="layui-icon layui-icon-refresh"></i>榛樿鍒楀</button>-->
+ <button type="button" class="layui-btn layui-btn-sm" lay-event="set_HideColumn"><i class="layui-icon layui-icon-form"></i>鍒楄缃�</button>
+ <button type="button" class="layui-btn layui-btn-sm" lay-event="get_export" id="export"><i class="layui-icon layui-icon-export"></i>瀵煎嚭</button>
+ <button type="button" class="layui-btn layui-btn-sm" lay-event="btn-Exit" id="btn-Exit">閫�鍑�</button>
+ </div>
+ </script>
+ </form>
+ </div>
+ </div>
+ </div>
+ </div>
+ <script type="text/html" id="toolBar">
+ <a class="layui-btn layui-btn-xs" lay-event="edit">缂栬緫</a>
+ <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">鍒犻櫎</a>
+ </script>
+ <script>
+ layui.config({
+ base: '../../../layuiadmin/' //闈欐�佽祫婧愭墍鍦ㄨ矾寰�
+ }).extend({
+ index: 'lib/index', //涓诲叆鍙fā鍧�
+ }).use(['index', 'form', 'table', 'element', 'laypage', 'laydate'], function () {
+ var $ = layui.$
+ , admin = layui.admin
+ , layer = layui.layer
+ , table = layui.table
+ , form = layui.form
+ , element = layui.element
+ , laypage = layui.laypage
+ , laydate = layui.laydate
+ , util = layui.util
+ //鍏敤鍙橀噺
+ var sWhere = "";
+ var option = [];
+ var ins; //鐢ㄤ簬瀵煎嚭excel
+ var HModName = "Cj_StationInBillList";
+ var titleData = ["hmainid", "HProcID", "HMaterID", "HEmpID", "HSourceID", "HGroupID", "HInterID", "HProcExchInterID", "HProcExchEntryID", "HICMOInterID", "HICMOEntryID"];//涓嶉渶瑕佹樉绀虹殑瀛楁 鍙墿灞�
+
+ //宸ュ簭娴佽浆鍗′笅鏌ユ爣璁�
+ var lookDownBar = 0; //(0:涓嬫煡鎿嶄綔锛�1锛氱洿鎺ユ煡鐪�)
+ var params = get_UrlVars(); //鑾峰彇鍙傛暟
+
+
+ //鍒濆鍖栬〃鏍�
+ set_InitGrid();
+ //DisPlay_HideColumn();
+
+ //閲嶇疆鎸夐挳
+ form.on('submit(btnReSearch)', function (data) {
+ set_ClearQuery();
+ });
+
+ //鏌ヨ鎸夐挳
+ form.on('submit(btnSearch)', function (data) {
+ get_FastQuery();
+ });
+
+ //鐢熶骇璁㈠崟鍥炶溅鏂规硶
+ $('#HWorkBillNo').on('keydown', function (event) {
+ var HWorkBillNo = $('#HWorkBillNo').val();
+ if (event.keyCode == 13) {
+ if (!HWorkBillNo) {
+ layer.msg("浠诲姟鍗曞彿涓嶈兘涓虹┖锛�")
+ return;
+ }
+ $("#btnSearch").click();
+ }
+ });
+ //鍗曟嵁鍙峰洖杞︽柟娉�
+ $('#HBillNo').on('keydown', function (event) {
+ var HBillNo = $('#HBillNo').val();
+ if (event.keyCode == 13) {
+ if (!HBillNo) {
+ layer.msg("鍗曟嵁鍙蜂笉鑳戒负绌猴紒")
+ return;
+ }
+ $("#btnSearch").click();
+ }
+ });
+ //宸ュ簭娴佽浆鍗″洖杞︽柟娉�
+ $('#宸ュ簭娴佽浆鍗″彿').on('keydown', function (event) {
+ var HStepBillNo = $('#宸ュ簭娴佽浆鍗″彿').val();
+ if (event.keyCode == 13) {
+ if (!HStepBillNo) {
+ layer.msg("宸ュ簭娴佽浆鍗″彿涓嶈兘涓虹┖锛�")
+ return;
+ }
+ $("#btnSearch").click();
+ }
+ });
+
+ //琛岀洃鍚簨浠�
+ table.on('row(mainTable)', function (obj) {
+ var flag = !obj.tr.find(':checkbox:first').prop('checked');
+ obj.tr.find(':checkbox').prop('checked', flag);
+ if (flag) {
+ obj.tr.find('.layui-form-checkbox').addClass('layui-form-checked'); //璁剧疆澶嶉�夋閫変腑鏍峰紡
+ $(obj.tr.selector).attr({ "style": "background:#ceedfa;color:black" });//鏀瑰彉褰撳墠tr鑳屾櫙棰滆壊鍜屽瓧浣撻鑹�
+ } else {
+ obj.tr.find('.layui-form-checkbox').removeClass('layui-form-checked');//鍙栨秷澶嶉�夋閫変腑鏍峰紡
+ $(obj.tr.selector).attr({ "style": "background:" });//鍙栨秷褰撳墠tr棰滆壊
+ }
+ //mainTable 涓鸿〃鏍糏D 娉ㄦ剰姝ゅ濡傛灉ID涓嶆纭皢瀵艰嚧浣犲湪鐩戝惉澶嶉�夋鏃惰幏鍙栦笉鍒颁綘閫夋嫨鐨勬暟鎹紝鍓嶉潰鐨勫彧鏄坊鍔犳垨鍒犻櫎閫変腑鏈�変腑鏍峰紡浠ュ強璁剧疆鑳屾櫙鑹诧紝瀛椾綋棰滆壊
+ layui.each(table.cache.mainTable, function (i, l) {
+ if (obj.tr.index() == l.LAY_TABLE_INDEX) {
+ l.LAY_CHECKED = flag;
+ }
+ });
+ });
+
+ //澶村伐鍏锋爮浜嬩欢
+ table.on('toolbar(mainTable)', function (obj) {
+ switch (obj.event) {
+ //鏂板
+ case 'btn-Add': set_AddNew();
+ break;
+ //缂栬緫
+ case 'btn-Edit': set_ShowBill();
+ break;
+ //鍒犻櫎
+ case 'btn-Delete': btn_Delete();
+ break;
+ //瀹℃牳
+ case 'btn-Audit': set_CheckBill();
+ break;
+ //鍙嶅鏍�
+ case 'btn-DeAudit': set_AbandonCheck();
+ break;
+ //鍏抽棴
+ case 'set_CloseBill': set_CloseBill(1);
+ break;
+ //鍙嶅叧闂�
+ case 'set_CancelCloseBill': set_CloseBill(2);
+ break;
+ //棣栨
+ case 'btn-FirstPieceCheck': set_FirstPieceCheck();
+ break;
+ //棰勮
+ case 'btn-Cell': layer.msg('棰勮锛�');
+ break;
+ //淇濆瓨鍒楀
+ case 'btn-Cell': layer.msg('淇濆瓨鍒楀锛�');
+ break;
+ //榛樿鍒楀
+ case 'btn-RefreshCell': layer.msg('榛樿鍒楀锛�');
+ break;
+ //鍒楄缃�
+ case 'set_HideColumn': get_HideColumn();
+ break;
+ //閫�鍑�
+ case 'btn-Exit': get_Exit();
+ break;
+ //瀵煎嚭excel
+ case 'get_export':
+ get_Export();
+ break;
+ };
+ });
+
+
+ //#region 鏈〉闈㈡墍鏈夎璋冪敤鐨勬柟娉�
+
+ //#region缂栬緫鍓嶅垽鏂�
+ function set_ShowBillJudge(data) {
+ var HBillNo = data[0].鍗曟嵁鍙�;
+ var wait = layer.load();
+ $.ajax({
+ type: "GET",
+ url: GetWEBURL() + "/Cj_StationInBill/set_ShowBillJudge", //鏂规硶鎵�鍦ㄩ〉闈㈠拰鏂规硶鍚�
+ data: { "HBillNo": HBillNo },
+ success: function (result) {
+ if (result.count == 1) {
+ //鎵撳紑缂栬緫椤甸潰
+ set_ShowBill_open(data);
+ } else {
+ layer.alert(result.Message, { icon: 5 });
+ }
+ layer.close(wait);
+ }, error: function () {
+ layer.close(wait);
+ layer.alert("鎺ュ彛璇锋眰澶辫触!", { icon: 5 });
+ }
+ });
+ }
+ //#endregion
+
+ //#region 鎵撳紑缂栬緫椤甸潰
+ function set_ShowBill_open(data) {
+ layer.open({
+ type: 2
+ , area: ['100%', '100%']
+ , title: '宸ュ簭杩涚珯鎺ユ敹鍗�-缂栬緫'
+ , shade: 0.6
+ , maxmin: false
+ , anim: 0
+ , content: ['Cj_StationInBill.html?OperationType=4&linterid=' + data[0].HInterID + '&HSouceBillType=&HBillNo=' + data[0].鍗曟嵁鍙�, 'yes']
+ , resize: false
+ , cancel: function () {
+ btnIs();
+ }
+ , end: function () {
+ get_FastQuery(table, option);
+ }
+ })
+ }
+ //#endregion
+
+ //#endregion
+
+ //鍔熻兘鎸夐挳鏄惁绂佺敤鏂规硶锛屾瘡娆″姞杞借〃鏍奸兘瑕佽皟鐢�
+ function btnIs() {
+ //$('#btn-Add').addClass("layui-btn-disabled").attr("disabled", true);//鏂板鎸夐挳
+ //$('#btn-Delete').addClass("layui-btn-disabled").attr("disabled", true);//鍒犻櫎鎸夐挳
+ //$('#btn-Audit').addClass("layui-btn-disabled").attr("disabled", true);//瀹℃牳鎸夐挳
+ //$('#btn-DeAudit').addClass("layui-btn-disabled").attr("disabled", true);//鍙嶅鏍告寜閽�
+ $('#btn-Print').addClass("layui-btn-disabled").attr("disabled", true);//棰勮鎸夐挳
+ $('#btn-Cell').addClass("layui-btn-disabled").attr("disabled", true);//淇濆瓨鍒楀鎸夐挳
+ $('#btn-RefreshCell').addClass("layui-btn-disabled").attr("disabled", true);//榛樿鍒楀鎸夐挳
+ //$('#btn-Exit').addClass("layui-btn-disabled").attr("disabled", true);//閫�鍑烘寜閽�
+ }
+
+ //鍒濆鍖栬〃鏍�
+ function set_InitGrid() {
+ $("#HBeginDate").val(Format(new Date(new Date() - 1000 * 60 * 60 * 24 * 7), "yyyy-MM-dd"));
+ $("#HEndDate").val(Format(new Date(), "yyyy-MM-dd"));
+ option = {
+ elem: '#mainTable'
+ , toolbar: '#toolbarDemo'
+ , defaultToolbar: ['filter', 'exports', 'print']
+ , height: 'full-50'
+ , page: true
+ , cellMinWidth: 90
+ , limit: 50
+ , limits: [50, 500, 5000, 20000]
+ , cols: [[
+ { type: 'checkbox', fixed: 'left' }
+ , { field: 'hmainid', title: 'hmainid', sort: true, hide: true }
+ , { field: '浠诲姟鍗�', title: '浠诲姟鍗�', width: 125 }
+ , { field: '鍗曟嵁鍙�', title: '鍗曟嵁鍙�', width: 190 }
+ , { field: '鍒跺崟浜�', title: '鍒跺崟浜�' }
+ , { field: '娴佽浆鍗″彿', title: '宸ュ簭娴佽浆鍗″彿', width: 125 }
+ , { field: 'HProcID', title: 'HProcID', hide: true }
+ , { field: '褰撳墠宸ュ簭浠g爜', title: '褰撳墠宸ュ簭浠g爜', width: 125 }
+ , { field: '褰撳墠宸ュ簭', title: '褰撳墠宸ュ簭' }
+ , { field: 'HMaterID', title: 'HMaterID', hide: true }
+ , { field: '浜у搧浠g爜', title: '浜у搧浠g爜' }
+ , { field: '浜у搧鍚嶇О', title: '浜у搧鍚嶇О', width: 125 }
+ , { field: '瑙勬牸鍨嬪彿', title: '瑙勬牸鍨嬪彿' }
+ , {
+ field: '杩涚珯鏃堕棿', title: '杩涚珯鏃堕棿', width: 105, templet: function (d) {
+ if (d.杩涚珯鏃堕棿 == null) {
+ return "";
+ }
+ return util.toDateString(d.杩涚珯鏃堕棿, "yyyy-MM-dd HH:mm:ss");
+ }
+ }
+ , { field: '鎺ユ敹鏁伴噺', title: '杩涚珯鎺ユ敹鏁伴噺' }
+ , { field: 'HEmpID', title: 'HEmpID', hide: true }
+ , { field: '鎿嶄綔鍛樹唬鐮�', title: '鎿嶄綔鍛樹唬鐮�', width: 125 }
+ , { field: '鎿嶄綔鍛�', title: '鎿嶄綔鍛�' }
+ , { field: 'HSourceID', title: 'HSourceID', hide: true }
+ , { field: '鐢熶骇璧勬簮浠g爜', title: '鐢熶骇璧勬簮浠g爜', width: 125 }
+ , { field: '鐢熶骇璧勬簮', title: '鐢熶骇璧勬簮' }
+ , { field: 'HGroupID', title: 'HGroupID', hide: true }
+ , { field: '鐢熶骇鐝粍浠g爜', title: '鐢熶骇鐝粍浠g爜', width: 125 }
+ , { field: '鐢熶骇鐝粍浠g爜', title: '鐢熶骇鐝粍浠g爜', width: 125 }
+ , { field: '鐢熶骇鐝粍', title: '鐢熶骇鐝粍' }
+ , { field: 'LOT鏁伴噺', title: 'LOT鏁伴噺' }
+ ]]
+ , text: {
+ none: '鏃犳暟鎹紒'
+ }
+ };
+ set_ClearQuery();
+ get_FastQuery();
+ }
+
+ //鍔犺浇缃戞牸
+ function get_Display(sWhere) {
+ //杩涘叆椤甸潰鏄剧ず鐨勭紦瀛樺垪琛�
+ var ajaxLoad = layer.load();
+ var wait = layer.load();
+ $.ajax({
+ url: GetWEBURL() + '/Cj_StationInBill/get_Display',
+ type: "GET",
+ data: { "sWhere": sWhere, "user": sessionStorage["HUserName"]},
+ success: function (data1) {
+ if (data1.count == 1) {
+ var data = [];
+ var col = [];
+ //缁欑┖鐨勬暟缁勮祴鍊�
+ for (var key in data1.list) {
+ data.push({ "id": data1.list[key].ColmCols, "name": data1.list[key].ColmCols, "Type": data1.list[key].ColmType });
+ }
+ //鍦ㄥ垪琛ㄥ乏杈规坊鍔犲嬀閫夋
+ col.push({ type: 'checkbox', fixed: 'left' });
+ for (var i = 0; i < data.length; i++) {
+ // if (data[i].name == 'HInterID' || data[i].name == 'HBillType' || data[i].name == 'hmainid') {
+ if ($.inArray(data[i].name, titleData) > -1) {
+ col.push({ field: data[i].id, title: data[i].name, align: 'center', hide: true }); //闅愯棌id鍒�
+ }
+ else {
+ switch (data[i].Type) {
+ //int
+ case 'DateTime':
+ col.push({ field: data[i].id, title: data[i].name, align: 'center', sort: true, templet: "<div>{{d." + data[i].name + " ==null ?'':layui.util.toDateString(d." + data[i].name + ", 'yyyy-MM-dd')}}</div>", width: 200 });
+ break;
+ default:
+ col.push({ field: data[i].id, title: data[i].name, align: 'center', sort: true, width: 200 });
+ }
+ }
+ }
+
+ //鍔ㄦ�佹樉绀哄垪鍚�
+ option = {
+ elem: '#mainTable'
+ , toolbar: '#toolbarDemo'
+ , cols: [col]
+ , data: data1.data
+ , height: 'full-50'
+ , page: true
+ , cellMinWidth: 90
+ , limit: 50
+ , limits: [50, 500, 5000, 20000]
+ }
+ ins = table.render(option);
+
+ //鍒锋柊琛ㄦ牸鏁版嵁
+ DisPlay_HideColumn();
+
+ layer.close(ajaxLoad);
+ if ($("#Comparator").val() == 0 && $("#ColContent").val() == "") {
+ ColFilter();
+ }
+ //layer.alert("鏌ヨ鎴愬姛", { icon: 1 });
+ } else {
+ layer.close(ajaxLoad);
+ layer.alert(data1.code + data1.Message, { icon: 5 });
+ }
+ }, error: function () {
+ layer.close(ajaxLoad);
+ layer.alert("鎺ュ彛璇锋眰澶辫触!", { icon: 5 });
+ }
+ });
+ layer.close(wait);
+ }
+
+ //蹇�熻繃婊�
+ function get_FastQuery() {
+ //鍒ゆ柇鏄惁涓轰笅鏌ユ搷浣滐紝鑻ユ槸鍒欏彉鏇存煡璇㈠崟鍙峰拰鏃堕棿杩囨护鏉′欢
+ if (typeof (params[params[0]]) != "undefined" && lookDownBar == 0) {
+ $("#宸ュ簭娴佽浆鍗″彿").val(params[params[0]]);
+ $("#HBeginDate").val("1990-01-01");
+ $("#HEndDate").val("2200-12-30");
+ lookDownBar = 1;
+ }
+
+ var HStatus = $("select[name='HStatus']").val();//鐘舵��
+ var 宸ュ簭娴佽浆鍗″彿 = $("#宸ュ簭娴佽浆鍗″彿").val();
+ var HWorkBillNo = $("#HWorkBillNo").val(); //浠诲姟鍗曞彿
+ var HBillNo = $("#HBillNo").val(); //鍗曟嵁鍙�
+ var HBeginDate = $("#HBeginDate").val();//寮�濮嬫棩鏈�
+ var HEndDate = $("#HEndDate").val();//缁撴潫鏃ユ湡
+ var ColName = $("#ColName").val();//澶嶉�夋
+ var Comparator = $("#Comparator").val()
+ var ColContent = $("#ColContent").val();
+ var HNumber = $("#HNumber").val(); //浜у搧浠g爜 鍗崇墿鏂欑紪鐮�
+ var HName = $("#HName").val(); //褰撳墠宸ュ簭
+
+ if (ColName != 0 && Comparator != 0) {
+ var com = "";
+ switch (Comparator) {
+ case "7":
+ com = "like'%" + ColContent + "%'";
+ break;
+ case "8":
+ com = "like'%" + ColContent + "'";
+ break;
+ case "9":
+ com = "like'" + ColContent + "%'";
+ break;
+ case "10":
+ com = "not like'%" + ColContent + "%'";
+ break;
+ default:
+ com = "" + Comparator + "'" + ColContent + "'";
+ break;
+ }
+ sWhere += " and " + ColName + " " + com;
+ }
+
+ if (宸ュ簭娴佽浆鍗″彿) {
+ sWhere += " and 娴佽浆鍗″彿 like '%" + 宸ュ簭娴佽浆鍗″彿 + "%'";
+ }
+ if (HBeginDate) {
+ sWhere += " and CONVERT(varchar(100),杩涚珯鏃堕棿, 23) >= '" + HBeginDate + "'";
+ }
+ if (HEndDate) {
+ sWhere += " and CONVERT(varchar(100),杩涚珯鏃堕棿, 23) <= '" + HEndDate + "'";
+ }
+ if (HWorkBillNo) {
+ sWhere += " and 浠诲姟鍗� like '%" + HWorkBillNo + "%'";
+ }
+ if (HBillNo) {
+ sWhere += " and 鍗曟嵁鍙� like '%" + HBillNo + "%'";
+ }
+ if (HNumber) {
+ sWhere += " and 浜у搧浠g爜 like '%" + HNumber + "%'";
+ }
+ if (HName) {
+ sWhere += " and 褰撳墠宸ュ簭 like '%" + HName + "%'";
+ }
+ if (HStatus) {
+ switch (HStatus) {
+ case '-1': //鍏ㄩ儴
+ sWhere += "";
+ break;
+ case '0': //鏈鏍�
+ sWhere += " and 瀹℃牳浜�=''";
+ break;
+ case '1': //宸插鏍�
+ sWhere += " and 瀹℃牳浜�<>''";
+ break;
+ case '2': //宸插叧闂�
+ sWhere += " and 鍏抽棴浜�<>''";
+ default:
+ }
+ }
+ sWhere += " and HBillSubType='SUB'";
+ get_Display(sWhere);
+ sWhere = "";//璋冪敤鎺ュ彛鍚庢竻绌簊Where缂撳瓨
+ }
+
+ //閲嶇疆杩囨护鏉′欢
+ function set_ClearQuery() {
+ $("#HWorkBillNo").val("");
+ $("#HBillNo").val("");
+ $("#宸ュ簭娴佽浆鍗″彿").val("");
+ $("#HBeginDate").val(Format(new Date(new Date() - 1000 * 60 * 60 * 24 * 7), "yyyy-MM-dd"));
+ $("#HEndDate").val(Format(new Date(), "yyyy-MM-dd"));
+ $("#ColContent").val("");
+ $("#ColName").val("0");
+ $("#Comparator").val("0");
+ $("#HNumber").val("");
+ $("#HName").val("");
+ form.render('select');
+ sWhere = "";
+ }
+
+ //缂栬緫鍗曟嵁
+ function set_ShowBill() {
+ var checkStatus = table.checkStatus('mainTable')
+ , data = checkStatus.data;
+ if (checkStatus.data.length === 1) {
+ //鎵撳紑缂栬緫椤甸潰
+ set_ShowBill_open(data);
+ } else {
+ layer.msg('璇烽�夋嫨涓�琛屾暟鎹紪杈戯紒');
+ }
+ }
+
+ //鍒犻櫎鍗曟嵁
+ function btn_Delete() {
+ var checkStatus = table.checkStatus('mainTable')
+ , data = checkStatus.data;
+ if (checkStatus.data.length === 1) {
+ layer.confirm('纭畾鍒犻櫎' + data[0].鍗曟嵁鍙� + '鍚楋紵', function (index) {
+ var ajaxLoad = layer.load();
+ //閫昏緫鍒犻櫎鏂规硶
+ $.ajax({
+ url: GetWEBURL() + '/Cj_StationInBill/del_StationInBill',
+ type: "GET",
+ data: { "HInterID": data[0].HInterID, "HDeleteMan": sessionStorage["HUserName"] },
+ success: function (result) {
+ if (result.count == 1) {
+ get_FastQuery();
+ layer.close(ajaxLoad);
+ } else {
+ layer.close(ajaxLoad);
+ layer.alert(result.Message, { icon: 5 });
+ }
+ }, error: function () {
+ layer.close(ajaxLoad);
+ layer.alert("鎺ュ彛璇锋眰澶辫触!", { icon: 5 });
+ }
+ });
+ layer.close(index);
+ });
+ } else {
+ layer.msg('璇烽�夋嫨涓�琛屾暟鎹紪杈戯紒');
+ }
+ }
+
+ //鏂板鍗曟嵁
+ function set_AddNew() {
+ layer.open({
+ type: 2
+ , area: ['100%', '100%']
+ , title: '宸ュ簭杩涚珯鎺ユ敹鍗�-鏂板'
+ , shade: 0.6
+ , maxmin: false
+ , anim: 0
+ , content: ['Cj_StationInBill.html?OperationType=1&linterid=0&HSouceBillType=&HBillNo=0&closeType=1', 'yes']
+ , resize: false
+ , cancel: function () {
+ btnIs();
+ }
+ , end: function () {
+ get_FastQuery(table, option);
+ }
+ })
+ }
+
+ //棣栨
+ function set_FirstPieceCheck() {
+ var checkStatus = table.checkStatus('mainTable')
+ , data = checkStatus.data;
+ if (checkStatus.data.length === 1) {
+ var linterid = data[0].HInterID.toString();
+ var OperationType = 2;
+ layer.open({
+ type: 2
+ , area: ['100%', '100%']
+ , title: '棣栦欢妫�楠屽崟-缂栬緫'
+ , shade: 0.6
+ , maxmin: false
+ , anim: 0
+ , content: ['../../璐ㄩ噺绠$悊/棣栦欢妫�楠屽崟/QC_Add_Edit_FirstPieceCheckBill.html?OperationType=' + OperationType + '&linterid=' + linterid + '&HSouceBillType=3790&HICMOEntryID=0', 'yes']
+ , resize: false
+ , cancel: function () {
+ btnIs();
+ }
+ , end: function () {
+ get_FastQuery(table, option);
+ }
+ })
+ } else {
+ layer.msg('璇烽�夋嫨涓�琛屾暟鎹紪杈戯紒');
+ }
+ }
+
+ //瀵煎嚭Execel
+ function get_Export() {
+ table.exportFile(ins.config.id, option.data, "xls");
+ }
+
+
+
+ //閫�鍑�
+ function get_Exit() {
+ Pub_Close(2);
+ }
+
+ //瀹℃牳
+ function set_CheckBill() {
+ var checkStatus = table.checkStatus('mainTable')
+ , data = checkStatus.data;
+ if (checkStatus.data.length === 1) {
+ var InterID = data[0].hmainid.toString();
+ //閫昏緫瀹℃牳鏂规硶
+ var wait = layer.load();
+ $.ajax({
+ type: "GET",
+ url: GetWEBURL() + "/Cj_StationInBill/set_CheckBill", //鏂规硶鎵�鍦ㄩ〉闈㈠拰鏂规硶鍚�
+ data: { "HInterID": InterID, "CurUserName": sessionStorage["HUserName"] },
+ success: function (result) {
+ if (result.count == 1) {
+ layer.msg(result.Message, { icon: 1 });
+ get_FastQuery(table, option);
+ } else {
+ layer.alert(result.Message, { icon: 5 });
+ }
+ layer.close(wait);
+ }, error: function () {
+ layer.close(wait);
+ layer.alert("鎺ュ彛璇锋眰澶辫触!", { icon: 5 });
+ }
+ });
+ }
+ else {
+ layer.msg('璇烽�夋嫨涓�琛屾暟鎹鏍革紒');
+ }
+ }
+
+ //鍙嶅鏍�
+ function set_AbandonCheck() {
+ var checkStatus = table.checkStatus('mainTable')
+ , data = checkStatus.data;
+ if (checkStatus.data.length === 1) {
+ var InterID = data[0].hmainid.toString();
+ //閫昏緫瀹℃牳鏂规硶
+ var wait = layer.load();
+ $.ajax({
+ type: "GET",
+ url: GetWEBURL() + "/Cj_StationInBill/set_AbandonCheck", //鏂规硶鎵�鍦ㄩ〉闈㈠拰鏂规硶鍚�
+ data: { "HInterID": InterID, "CurUserName": sessionStorage["HUserName"] },
+ success: function (result) {
+ if (result.count == 1) {
+ layer.msg(result.Message, { icon: 1 });
+ get_FastQuery(table, option);
+ } else {
+ layer.alert(result.Message, { icon: 5 });
+ }
+ layer.close(wait);
+ }, error: function () {
+ layer.close(wait);
+ layer.alert("鎺ュ彛璇锋眰澶辫触!", { icon: 5 });
+ }
+ });
+ }
+ else {
+ layer.msg('璇烽�夋嫨涓�琛屾暟鎹鏍革紒');
+ }
+ }
+
+ //鍏抽棴 [1 鍏抽棴銆�2 鍙嶅叧闂璢
+ function set_CloseBill(num) {
+ var checkStatus = table.checkStatus('mainTable')
+ , data = checkStatus.data;
+
+ if (data.length == 1) {
+ layer.confirm("纭瑕佸叧闂悧?", function (index) {
+ var wait = layer.load();
+ var HInterID = data[0].hmainid;
+ $.ajax({
+ url: GetWEBURL() + '/Cj_StationInBill/CloseCj_StationInBill',
+ type: "GET",
+ data: { "HInterID": HInterID, "Type": num, "user": sessionStorage["HUserName"] },
+ success: function (result) {
+ if (result.count == 1) {
+ layer.msg(result.Message, { icon: 1 });
+ layer.close(wait);
+ } else {
+ layer.alert(result.code + result.Message, { icon: 5 });
+ layer.close(wait);
+ }
+ }, error: function () {
+ layer.alert("鎺ュ彛璇锋眰澶辫触!", { icon: 5 });
+ layer.close(wait);
+ }
+ });
+ })
+ }
+ else {
+ layer.msg("璇烽�夋嫨涓�鏉℃暟鎹�!");
+ }
+ }
+
+ //鍒楁槑鏄剧ず涓嬫媺妗�
+ function ColFilter() {
+ var Organization = '<option value="0" selected="selected" ></option>';
+ for (var i = 1; i < option.cols[0].length; i++) {
+ if (option.cols[0][i].hide != true) {
+ Organization += '<option style="color:blue;" value="' + option.cols[0][i].field + '">' + option.cols[0][i].field + '</option>';
+ }
+ }
+ $("#ColName").empty();
+ $("#ColName").append(Organization);
+ form.render('select');
+ }
+
+ //闅愯棌鍒楄缃�
+ function get_HideColumn() {
+ var colName = "";
+ var contentUrl = "";
+ for (var i = 1; i < option.cols[0].length - 1; i++) {
+ colName += option.cols[0][i]["title"] + ",";
+ }
+ var urlStr = window.document.location.pathname;//鑾峰彇鏂囦欢璺緞
+ var urlLen = urlStr.split('/');
+ for (var i = 0; i < urlLen.length - 4; i++) {
+ contentUrl += "../";
+ }
+ colName = encodeURI(colName.substring(0, colName.length - 1));//瀵� URI 杩涜缂栫爜
+
+ contentUrl += '鍩虹璧勬枡/闅愯棌鍒楄缃�/Gy_GridView_Hide.html?HModName=' + HModName + '&colName=' + colName;
+
+ layer.open({
+ type: 2
+ , skin: "layui-layer-rim" //鍔犱笂杈规
+ , title: "闅愯棌鍒楄缃�" //鏍囬
+ , closeBtn: 1 //绐椾綋鍙充笂瑙掑叧闂� 鐨� 鏍峰紡
+ , shift: 2 //寮瑰嚭鍔ㄧ敾
+ , area: ["50%", "90%"] //绐椾綋澶у皬
+ , maxmin: true //璁剧疆鏈�澶ф渶灏忔寜閽槸鍚︽樉绀�
+ , content: [contentUrl, "yes"]
+ , btn: ["纭畾", "鍙栨秷"]
+ , btn1: function (index, laero) {
+ //鍒锋柊琛ㄦ牸鏁版嵁
+ DisPlay_HideColumn();
+ //鏇存柊琛ㄦ牸缂撳瓨鐨勬暟鎹�
+ layer.close(index);//鍏抽棴寮圭獥
+ }
+ })
+ }
+
+ //鏄剧ず鍒楁暟鎹�
+ function DisPlay_HideColumn() {
+ $.ajax({
+ url: GetWEBURL() + '/Xt_grdAlignment_WMES/grdAlignmentWMESList',
+ type: "GET",
+ data: { "HModName": HModName, "user": sessionStorage["HUserName"] },
+ success: function (data1) {
+ if (data1.data.length != 0) {
+
+
+ var dataCol = [];//鏁版嵁搴撴煡璇㈠嚭鐨勫垪鏁版嵁
+ /*var titleData = ["hmainid", "HProcID", "HMaterID", "HEmpID", "HSourceID", "HGroupID"];//涓嶉渶瑕佹樉绀虹殑瀛楁 鍙墿灞�*/
+
+ dataCol = data1.data[0].HGridString.split(',');
+
+ for (var i = 0; i < option.cols[0].length - 2; i++) {
+ if (dataCol[i]) {
+ var dataCols = dataCol[i].split('|');
+ }
+ //闅愯棌鍒�
+ if (dataCols[1] == 1) {
+ option.cols[0][i + 1]["hide"] = true;
+ }
+ //璁剧疆鍒楀
+ if (dataCols[3] > 0) {
+ option.cols[0][i + 1]["width"] = dataCols[3];
+ }
+ //璁剧疆鍐呭瀛椾綋澶у皬
+ if (data1.data[0].HFontSize != 0) {
+ option.cols[0][i + 1]["style"] = "font-size:" + data1.data[0].HFontSize + "px;";
+ } else {
+ option.cols[0][i + 1]["style"] = "font-size:100%";
+ }
+ //璁剧疆鍒楀
+ //if (data1.data[0].HColumnWidth != 0) {
+ // option.cols[0][i + 1]["width"] = data1.data[0].HColumnWidth + "px;";
+ //} else {
+ // option.cols[0][i + 1]["width"] = "";
+ //}
+ //鏄剧ず鍒�
+ if (dataCols[1] == 0 && $.inArray(option.cols[0][i + 1]["title"], titleData) == -1) {
+ option.cols[0][i + 1]["hide"] = false;
+ }
+ //瀛椾綋鎵�鍦ㄤ綅缃�(宸� 灞呬腑 鍙�)
+ switch (dataCols[2]) {
+ case "L":
+ option.cols[0][i + 1]["align"] = "left";
+ break;
+ case "M":
+ option.cols[0][i + 1]["align"] = "center";
+ break;
+ case "R":
+ option.cols[0][i + 1]["align"] = "right";
+ break;
+ }
+ }
+
+ //鍙栨秷鍐荤粨鍒�
+ for (var i = 1; i < option.cols[0].length - 1; i++) {
+ if (option.cols[0][i]["fixed"] != null) {
+ option.cols[0][i]["fixed"] = null;
+ }
+ else {
+ break;
+ }
+ }
+ //鍐荤粨鍒�
+ if (data1.data[0].HFixCols != 0) {
+ for (var i = 0; i < data1.data[0].HFixCols; i++) {
+ if ($.inArray(option.cols[0][i + 1]["title"], titleData) != -1) {
+ data1.data[0].HFixCols += 1;
+ }
+ option.cols[0][i + 1]["fixed"] = "left";
+ }
+ }
+ table.render(option);
+ } else {
+ table.render(option);
+ }
+ }, error: function () {
+ layer.alert("鎺ュ彛璇锋眰澶辫触!", { icon: 5 });
+ }
+ })
+ }
+
+ //浠ヤ笂鏄痩ayui妯″潡
+ });
+
+
+
+
+ </script>
+
+</body>
+</html>
\ No newline at end of file
--
Gitblit v1.9.1