public/grwebapp.js
ÎļþÒÑɾ³ý public/index.html
@@ -6,7 +6,7 @@ <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"> <link rel="icon" href="<%= BASE_URL %>favicon.ico"> <title><%= webpackConfig.name %></title> <script src="./grwebapp.js"></script> <script src="static/grid/grwebapp.js"></script> </head> <body> <noscript> public/static/grf/1a.grf
ÎļþÃû´Ó public/grf/1a.grf ÐÞ¸Ä @@ -311,4 +311,4 @@ ] } ] } } public/static/grf/1a_test.grfcopy from public/grf/1a.grf copy to public/static/grf/1a_test.grf
Îļþ´Ó public/grf/1a.grf ¸´ÖÆ @@ -1,4 +1,4 @@ { { "Version":"6.8.5.0", "Title":"1a.ç®åè¡¨æ ¼", "Author":"éæµªæ¥è¡¨è½¯ä»¶", @@ -311,4 +311,4 @@ ] } ] } } public/static/grf/1b.grf
public/static/grf/1c.grf
public/static/grf/1d.grf
public/static/grf/1e.grf
public/static/grf/1f.grf
public/static/grf/1g.grf
public/static/grf/1h.grf
public/static/grf/1i.grf
public/static/grf/1j.grf
public/static/grf/1k.grf
public/static/grf/1l.grf
public/static/grf/1m.grf
public/static/grf/1n.grf
public/static/grf/1o.grf
public/static/grf/1p.grf
public/static/grf/1q.grf
public/static/grf/2a.grf
public/static/grf/2b.grf
public/static/grf/2c.grf
public/static/grf/2d.grf
public/static/grf/2e.grf
public/static/grf/2f.grf
public/static/grf/2g.grf
public/static/grf/2h.grf
public/static/grf/2i.grf
public/static/grf/2j.grf
public/static/grf/2k.grf
public/static/grf/2l.grf
public/static/grf/2m.grf
public/static/grf/3@.grf
public/static/grf/3a.grf
public/static/grf/3b.grf
public/static/grf/3c.grf
public/static/grf/3d.grf
public/static/grf/3e.grf
public/static/grf/3f.grf
public/static/grf/3g.grf
public/static/grf/3h.grf
public/static/grf/3i.grf
public/static/grf/3j.grf
public/static/grf/3k.grf
public/static/grf/3l.grf
public/static/grf/3m.grf
public/static/grf/3n.grf
public/static/grf/3o.grf
public/static/grf/3p.grf
public/static/grf/3q-1.grf
public/static/grf/3q-2.grf
public/static/grf/3q-3.grf
public/static/grf/3q.grf
public/static/grf/4a.grf
public/static/grf/4b.grf
public/static/grf/4c.grf
public/static/grf/4d.grf
public/static/grf/4e.grf
public/static/grf/5a.grf
public/static/grf/5b.grf
public/static/grf/5c.grf
public/static/grf/5d.grf
public/static/grf/5e.grf
public/static/grf/5f.grf
public/static/grf/5g.grf
public/static/grf/5h.grf
public/static/grf/5i.grf
public/static/grf/5j.grf
public/static/grf/5k.grf
public/static/grf/5l.grf
public/static/grf/5m.grf
public/static/grf/5n.grf
public/static/grf/5o.grf
public/static/grf/5p.grf
public/static/grf/6a.grf
public/static/grf/6b.grf
public/static/grf/6c.grf
public/static/grf/6d.grf
public/static/grf/6e.grf
public/static/grf/6f.grf
public/static/grf/6g.grf
public/static/grf/6h.grf
public/static/grf/6i.grf
public/static/grf/6j.grf
public/static/grf/6k.grf
public/static/grf/6l.grf
public/static/grf/6m.grf
public/static/grf/6n.grf
public/static/grf/7-1a.grf
public/static/grf/7-1a2.grf
public/static/grf/7-1b.grf
public/static/grf/7-1c.grf
public/static/grf/7-1d.grf
public/static/grf/7-1e.grf
public/static/grf/7-1f.grf
public/static/grf/7-1g.grf
public/static/grf/7-1h.grf
public/static/grf/7-1i.grf
public/static/grf/7-2a.grf
public/static/grf/7-2b.grf
public/static/grf/7-2c.grf
public/static/grf/7-2d.grf
public/static/grf/7-2e.grf
public/static/grf/7-2f.grf
public/static/grf/7-2g.grf
public/static/grf/7-3a.grf
public/static/grf/7-3b.grf
public/static/grf/7-3c.grf
public/static/grf/7-3d.grf
public/static/grf/7-3e.grf
public/static/grf/7-3f.grf
public/static/grf/7-3g.grf
public/static/grf/8a.grf
public/static/grf/8b.grf
public/static/grf/8c.grf
public/static/grf/8d.grf
public/static/grf/8e.grf
public/static/grf/8f.grf
public/static/grf/8g.grf
public/static/grf/8h.grf
public/static/grf/8i.grf
public/static/grf/9a.grf
public/static/grf/9b.grf
public/static/grf/9x.grf
public/static/grf/SummaryToDetail/ChartBar.grf
public/static/grf/SummaryToDetail/Crosstab.grf
public/static/grf/SummaryToDetail/Crosstab_Period.grf
public/static/grf/SummaryToDetail/Detail.grf
public/static/grf/SummaryToDetail/Summary.grf
public/static/grf/a0.grf
public/static/grf/a1.grf
public/static/grf/aaa.grf
public/static/grf/ds.grf
public/static/grf/program/data_from_url.grf
public/static/grf/²úÆ·Á÷´«µ¥.grf
public/static/grf/²úÆ·Á÷´«µ¥A5.grf
public/static/grid/grwebapp.js
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,499 @@ //åé _grwebapp_url æå®WEBæ¥è¡¨å®¢æ·ç«¯å®è£ ç¨åºçä¸è½½URLï¼å½éè¿WebSocketéè®¯ä¸æåæ¶ï¼æç¤ºç¨æ·ç¨æ¤URLä¸è½½ç¨åºè¿è¡å®è£ ã //æç¨äºèªå¨æ´æ°WEBæ¥è¡¨å®¢æ·ç«¯æ¶ä¸è½½æ°çæ¬ï¼å¼åè åºå° _grwebapp_url æ¹ä¸ºèªå·±æå¡å¨çURLï¼æ¹ä¾¿ç¨æ·ä»å¯è®¿é®çWEBæå¡å¨ä¸è½½ //åé _grwebapp_version æå®èªå¨æ´æ°æ¶ï¼å®¢æ·ç«¯ç¨åºéè¦ççæ¬å·ï¼å¦æå°äºæ¤çæ¬å·ï¼åèªå¨è¿è¡æ´æ° var _grwebapp_websocket = null, _grwebapp_url = "http://www.rubylong.cn/download/gridreport6-webapp.exe", _grwebapp_version = "6.8.2.0", webapp_onmessage ; //妿éè¦ååºæ§è¡ä»»å¡åçæ¶æ¯ååºï¼åºè¯¥åä¸ä¸ªå称为 webapp_onmessage ç function function webapp_url_method_valid(url, method) { if (!method) { if (typeof url == "object") { method = url.method; url = url.url; } if (!method) { method = /.grf|.txt|.xml|.json/.test(url) ? "GET" : "POST"; } } return method; } //æ¤å½æ°ç¨äºå¤æä¸ä¸ªå鿝å¦ä¸ºURLå符串ï¼å¦æç±»å为å符串ä¸é¦ä¸ªé空ç½å符ä¸ä¸ºâ<âä¸â{âå³å¤å®ä¸ºURL //妿忰æ¯ä¸ä¸ªobject对象ï¼ä¸å ¶å ·æâurlâ屿§ï¼åå ¶æ¯HTTPParamå¯¹è±¡ï¼æ¯ä¸ä¸ªurlåæ° var webapp_is_url = function (p) { var index = 0, len = p.length, ch; //å¯¹è±¡å¦ææurl屿§ï¼å¤å®ä¸ºurl if (typeof p == "object") { return !!p.url; } if (typeof p != "string") { return 0; } //é¦å æ¾å°ç¬¬ä¸ä¸ªé空ç½å符 while (index < len) { ch = p[index]; if (!/\s/g.test(ch)) break; index++; } //妿䏿¯xmlæjsonææ¬ä¸²ï¼åå¤å®ä¸ºurl return (ch != "{") && (ch != "<") && (p.substr(index, 4) != "_WR_"); }; function webapp_ajax(method, url, callback, cbthis, params) { var xmlhttp = new XMLHttpRequest(), headers; xmlhttp.onreadystatechange = function () { if (xmlhttp.readyState == 4 && xmlhttp.status > 0) { callback.call(cbthis, xmlhttp, xmlhttp.status == 200); } } xmlhttp.onerror = function () { callback.call(cbthis, xmlhttp, 0); } if (typeof url == "object") { headers = url.headers; if (typeof headers == "string") { headers = JSON.parse(headers) } if (!method) { method = url.method; } if (!params) { params = url.data; } url = url.url; } xmlhttp.open(webapp_url_method_valid(url, method), url, true); //弿¥è¯·æ±æ°æ® if (headers && typeof headers == "object") { for (var key in headers) { xmlhttp.setRequestHeader(key, headers[key]); } } xmlhttp.send(params); //POST æ PUT å¯ä»¥ä¼ éåæ° } ///////////////////////////////////////////////////////////////////////////// //å建å¯å¨WEBæ¥è¡¨å®¢æ·ç«¯çURLåè®®åæ° function _gr_up_href(args) { return "grwebapp://" + (args ? JSON.stringify(args) : ""); } //éè¿URLåè®®å¯å¨WEBæ¥è¡¨å®¢æ·ç«¯ç¨åº //åæ° appUpdate æå®æ¯å¦èªå¨æ´æ°WEBæ¥è¡¨å®¢æ·ç«¯ç¨åºï¼æ ¹æ®_grwebapp_versionä¸å·²ç»å®è£ çç¨åºçæ¬è¿è¡æ¯è¾ï¼æéè¿è¡èªå¨å级 function webapp_urlprotocol_startup(appUpdate) { var arg = appUpdate ? { type: "update", url: _grwebapp_url, ver: _grwebapp_version } : 0; window.location.href = _gr_up_href(arg); } //妿WEBæ¥è¡¨å®¢æ·ç«¯ç¨åºæªè¿è¡ï¼å éè¿URLåè®®å¯å¨WEBæ¥è¡¨å®¢æ·ç«¯ç¨åº //éç¥WEBæ¥è¡¨å®¢æ·ç«¯ç¨åºæ ¹æ®æ¨¡æ¿ä¸æ°æ®çURLï¼ä»¥åçæç±»åçç¸å ³åæ°è¿è¡æ¥è¡¨çæï¼ function webapp_urlprotocol_run(args, report_url, data_url) { if (report_url) { args.report = report_url; } if (data_url) { args.data = data_url; } window.location.href = _gr_up_href(args); } ///////////////////////////////////////////////////////////////////////////// //æ£æ¥WebSocketæ¯å¦å·²ç»å建并éè®¯è¿æ¥æå function webapp_ws_check(slience) { if (!slience) { if (!_grwebapp_websocket) { alert("WebSocket没æåå»ºï¼æ æ³åéæ°æ®ï¼"); } else if (_grwebapp_websocket.readyState != 1) { alert("WebSocketæ£å¨è¿æ¥ä¸ï¼æä¸è½åéæ°æ®ï¼"); } } return _grwebapp_websocket && (_grwebapp_websocket.readyState === 1); } //å建并éè®¯è¿æ¥WebSocket function webapp_ws_create(onopen) { //妿已ç»å建ï¼ä¸è¿æ¥æ£å¸¸ï¼åä¸è¦å次å建 if (_grwebapp_websocket && _grwebapp_websocket.readyState === 1) { return; } //夿å½åæµè§å¨æ¯å¦æ¯æWebSocket if ('WebSocket' in window) { _grwebapp_websocket = new WebSocket("ws://127.0.0.1:22333"); //è¿æ¥æå建ç«çåè°æ¹æ³ if (onopen) { _grwebapp_websocket.onopen = function () { //alert("_grwebapp_websocket.onopen"); onopen(); } } // debugger; //æ¥æ¶å°æ¶æ¯çåè°æ¹æ³ if (window.webapp_onmessage) { _grwebapp_websocket.onmessage = function (event) { window.webapp_onmessage(event); } } _grwebapp_websocket.onerror = function () { var children = document.body.children, childrenLen = children.length, referNode = childrenLen ? children[0] : null, newNode = document.createElement("h3"); _grwebapp_websocket = null; //å¼¹åºalertæç¤ºä¿¡æ¯ï¼å¯ä¿®æ¹ä¸ºæ´éåç表述 //alert("å建WebSocket失败ï¼å¯è½æ¯âWEBæ¥è¡¨å®¢æ·ç«¯ç¨åºâ卿¬æºæ²¡æå®è£ ï¼æå¨æ¥è¡¨ç½é¡µå è½½æ¶æ²¡æè°ç¨âwebapp_urlprotocol_startupâ彿°è¿è¡å¯å¨ã"); alert("å建WebSocket失败ï¼å¯è½æ¯WEBæ¥è¡¨å®¢æ·ç«¯ç¨åºæ²¡æå¯å¨ï¼æå ¶å¨æ¬æºæ²¡æå®è£ ï¼è¯·æ ¹æ®ç½é¡µé¡¶é¨çæç¤ºè¿è¡ç¸åºçæä½ã"); //å¨ç½é¡µæåé¢å ä¸æç¤ºä¸è½½çæåï¼å¯ä¿®æ¹ä¸ºæ´éåç表述ä¸çé¢å½¢å¼ //newNode.innerHTML = 'ç¹å«æç¤ºï¼<a href="' + _grwebapp_url + '">ç¹å»ä¸è½½WEBæ¥è¡¨å®¢æ·ç«¯ç¨åº</a>ï¼ä¸è½½ååå»ä¸è½½çæä»¶è¿è¡å®è£ ï¼å®è£ 宿åéæ°æå¼å½åç½é¡µã'; newNode.innerHTML = 'ç¹å«æç¤ºï¼å°è¯<a href="javascript:webapp_urlprotocol_startup();">å¯å¨WEBæ¥è¡¨å®¢æ·ç«¯ç¨åº</a>ãæ<a href="' + _grwebapp_url + '">ç¹å»ä¸è½½WEBæ¥è¡¨å®¢æ·ç«¯ç¨åº</a>ï¼ä¸è½½ååå»ä¸è½½çæä»¶è¿è¡å®è£ ï¼å®è£ 宿åéæ°æå¼å½åç½é¡µã'; document.body.insertBefore(newNode, referNode); }; //è¿æ¥å ³éçåè°æ¹æ³ _grwebapp_websocket.onclose = function () { _grwebapp_websocket = null; } //æè§è¿é¨åå¯ä»¥ä¸è¦ //çå¬çªå£å ³éäºä»¶ï¼å½çªå£å ³éæ¶ï¼ä¸»å¨å»å ³é_grwebapp_websocketè¿æ¥ï¼é²æ¢è¿æ¥è¿æ²¡æå¼å°±å ³éçªå£ï¼serverç«¯ä¼æå¼å¸¸ã //window.onbeforeunload = function () { // if (_grwebapp_websocket) { // _grwebapp_websocket.close(); // } //} } else { alert('å½åæµè§å¨ä¸æ¯æHTML5çWebSocketï¼è¯·éç¨æ´æ°çæ¬çæµè§å¨ï¼') } } function webapp_build_one(pack, report, report_method, data, data_method, callback_fun, dataParams) { if (!report) { alert("å¨åæ°ä¸æ²¡æå®ä¹æ¥è¡¨æ¨¡æ¿çurlï¼æ¥è¡¨ä¸è½çæï¼"); return; } if (data) { if (webapp_is_url(data)) { webapp_ajax(data_method, data, function (xmlhttp, success) { if (success) { pack.data = xmlhttp.responseText; callback_fun(); } else { //alert("è½½å ¥æ¥è¡¨æ°æ®å¤±è´¥ï¼ååºæ¶æ¯ï¼" + xmlhttp.responseText); window.open(data, "blank"); } }, undefined, dataParams); } else { pack.data = (typeof data == "object") ? JSON.stringify(data) : data; callback_fun(); } } else { pack.data = ""; } if (webapp_is_url(report)) { webapp_ajax(report_method, report, function (xmlhttp, success) { if (success) { pack.report = xmlhttp.responseText; callback_fun(); } else { //alert("è½½å ¥æ¥è¡¨æ¨¡æ¿å¤±è´¥ï¼ååºæ¶æ¯ï¼" + xmlhttp.responseText); window.open(report, "blank"); } }); } else { pack.report = (typeof report == "object") ? JSON.stringify(report) : report; callback_fun(); } } //å°åæ°éè¿WebSocketåéç»WEBæ¥è¡¨å®¢æ·ç«¯ï¼WEBæ¥è¡¨å®¢æ·ç«¯æ§è¡å¯¹åºçä»»å¡ //åæ°è¯´æï¼ //argsï¼ // æ¥è¡¨çæç¸å ³çåæ°ï¼ä¸ºä¸ä¸ªç»æä½å¯¹è±¡æç»æä½å¯¹è±¡æ°ç»ã // å½åæ°ä¸ºæ°ç»æ¶ï¼è¡¨ç¤ºæ¯æ§è¡æ¹éä»»å¡ãæ¤æ¶åé¢ç report ä¸ data åæ°ä¸ä¼è¢«ç¨å°ã // ç»æä½å¯¹è±¡çåä¸ªæ°æ®é¡¹è¯´æè¯·åè帮å©ä¸âWEBæ¥è¡¨(B/Sæ¥è¡¨)->WEBæ¥è¡¨å®¢æ·ç«¯->å¯å¨åæ°è¯´æâé¨å //reportï¼ // æ¥è¡¨æ¨¡æ¿ææ¬ï¼æ¥è¡¨å®ä¹æ ¼å¼å¿ 须为JSONæ ¼å¼ãæ¤åæ°å¯ç©ºï¼ä¸ºç©ºè¡¨ç¤ºæ§è¡éæ¥è¡¨çæä»»å¡ï¼æWEBæ¥è¡¨å®¢æ·ç«¯éè¿URLè·åæ¥è¡¨æ¨¡æ¿ã //dataï¼ // æ¥è¡¨æ°æ®ææ¬ï¼æ¤åæ°å¯ç©ºï¼æ¥è¡¨æ éæä¾æ°æ®ï¼æWEBæ¥è¡¨å®¢æ·ç«¯éè¿URLè·åæ¥è¡¨æ°æ®ã // // æ¥è¡¨æ°æ®å¯¹åºç XML æ JSON ææ¬ï¼è¯·åè帮å©âWEBæ¥è¡¨(B/Sæ¥è¡¨)->WEBæ¥è¡¨æ°æ®âä¸ç说æã function webapp_ws_run(variant_args, report, data) { function run_one(args, reportText, dataText) { var msg; if (webapp_ws_check()) { if (typeof args === "string") { args = { type: args }; } msg = JSON.stringify(args); if (reportText) { if (reportText.substr(0, 4) === "_WR_") { msg += reportText.length; } msg += reportText; if (dataText) { msg += dataText; } } _grwebapp_websocket.send(msg); } } //end of run_one if (!webapp_ws_check(1)) { //妿WebSocket没æè¿æ¥ï¼åé¦å åå»ºå¹¶è¿æ¥WebSocketï¼å¹¶å¨onopenäºä»¶ä¸æ§è¡ç¸å ³çä»»å¡ webapp_ws_create(function () { webapp_ws_run(variant_args, report, data); }); return; } if (Array.isArray(variant_args)) { variant_args.forEach(function (args) { run_one(args); }) } else { run_one(variant_args, report, data); } } //éè¿ ajax æ¹å¼è·åæ¥è¡¨æ¨¡æ¿ä¸æ¥è¡¨æ°æ®ï¼ç¶åéè¿ WebSocket åéç¸å ³æ°æ®ç»WEBæ¥è¡¨å®¢æ·ç«¯å¹¶çææ¥è¡¨ //åæ°æ¢å¯ä»¥æ¯åä¸ªç»æä½å¯¹è±¡ï¼ä¹å¯ä»¥æ¯ç»æä½å¯¹è±¡æ°ç»ãå¦ææ¯æ°ç»ï¼è¡¨ç¤ºææ¹çæå¤ä¸ªæ¥è¡¨ã //ç»æä½å¯¹è±¡çåä¸ªæ°æ®é¡¹è¯´æè¯·åè帮å©ä¸âWEBæ¥è¡¨(B/Sæ¥è¡¨)->WEBæ¥è¡¨å®¢æ·ç«¯->å¯å¨åæ°è¯´æâé¨åã function webapp_ws_ajax_run(variant_args) { function run_one(args) { var report = args.report, data = args.data, report_method = args.report_method, data_method = args.data_method, dataUrlParams = args.dataUrlParams, pack = {}; function run() { //åªæå½reportä¸dataé½èµå¼ä¹åæè¿è¡ï¼å³åWEBæ¥è¡¨å®¢æ·ç«¯ç¨åºåéæ°æ® if (pack.report && pack.data !== undefined) { webapp_ws_run(args, pack.report, pack.data); } } //å 为argséè¦ä¼ éç»WEBAPPï¼reportä¸dataçurlç¸å ³çåæ°ä¸éè¦ä¼ éï¼æä»¥å°å ¶å 餿 delete args.report; delete args.data; delete args.report_method; delete args.data_method; delete args.dataUrlParams; webapp_build_one(pack, report, report_method, data, data_method, run, dataUrlParams); } //end of run_one if (!webapp_ws_check(1)) { //妿WebSocket没æè¿æ¥ï¼åé¦å åå»ºå¹¶è¿æ¥WebSocketï¼å¹¶å¨onopenäºä»¶ä¸æ§è¡ç¸å ³çä»»å¡ webapp_ws_create(function () { webapp_ws_ajax_run(variant_args); }); return; } if (Array.isArray(variant_args)) { variant_args.forEach(function (args) { run_one(args); }); } else { run_one(variant_args); } } //éè¿ ajax æ¹å¼è·åå¤ä¸ªæ¥è¡¨ç模æ¿ä¸æ°æ®ï¼ç¶åç¨ WebSocket å°æ°æ®ä¸æ¬¡æ§åéç»WEBæ¥è¡¨å®¢æ·ç«¯ç¨åºã //å®ç°å¤ä¸ªæ¥è¡¨åæ¶çæå¨ä¸ä¸ªä»»å¡ä¸(åºç¨Grid++Reportçç¬ç«åæ¥è¡¨åè½å®ç°)ï¼è¾¾å°å¤ä¸ªæ¥è¡¨åæ¶é¢è§ãæå°ä¸æ°æ®å¯¼åº function webapp_ws_ajax_together(args, reports) { var reportCount = reports.length, reportPacks = [], gettedCount = 0; //æç¤ºå·²ç»è·åå°æ°æ®çæ¥è¡¨ä¸ªæ° function ajaxRequestOne(arg, index) { var report = arg.report, data = arg.data, report_method = arg.report_method, data_method = arg.data_method, dataUrlParams = arg.dataUrlParams, pack = reportPacks[index]; function try_ws_send() { var msg, dataMsg = "", lengths = []; if (pack.report && pack.data !== undefined) { if (++gettedCount >= reportCount) { //åªæå½å ¨é¨æ¥è¡¨ç模æ¿ä¸æ°æ®é½å·²ç»è·åå°ä¹åï¼æä¼åWEBæ¥è¡¨å®¢æ·ç«¯åéæ°æ® msg = JSON.stringify(args); reportPacks.forEach(function (item) { var report = item.report, data = item.data, reportLen = report.length, reportLenText = ""; if (report.substr(0, 4) === "_WR_") { reportLenText += reportLen; dataMsg += reportLenText; reportLen += reportLenText.length; } dataMsg += report; if (data) { dataMsg += data; } lengths.push(reportLen + data.length); }); msg += JSON.stringify(lengths); msg += dataMsg; _grwebapp_websocket.send(msg); } } } webapp_build_one(pack, report, report_method, data, data_method, try_ws_send, dataUrlParams); } //end of ajaxRequestOne if (!webapp_ws_check(1)) { //妿WebSocket没æè¿æ¥ï¼åé¦å åå»ºå¹¶è¿æ¥WebSocketï¼å¹¶å¨onopenäºä»¶ä¸æ§è¡ç¸å ³çä»»å¡ webapp_ws_create(function () { webapp_ws_ajax_together(args, reports); }); return; } reports.forEach(function (report, index) { reportPacks.push({}); ajaxRequestOne(report, index); }); } ///////////////////////////////////////////////////////////////////////////// //éè¿WebSocketåWEBæ¥è¡¨å®¢æ·ç«¯åéæä¸¾åºå½åçµèçæææå°æºä¿¡æ¯çæä»¤ //å¨ç½é¡µç webapp_onmessage 彿°ä¸æ¥æ¶WEBæ¥è¡¨å®¢æ·ç«¯è¿åçç»æï¼å ·ä½è¯·åèä¾åã function webapp_ws_fun_Printers() { webapp_ws_run({ type: "fun", fun: "Printers" }); } //éè¿WebSocketåWEBæ¥è¡¨å®¢æ·ç«¯åéæä¸¾åºå½åçµèçæå®æå°æºçå ¨é¨å¯ç¨çº¸å¼ çæä»¤ //å¨ç½é¡µç webapp_onmessage 彿°ä¸æ¥æ¶WEBæ¥è¡¨å®¢æ·ç«¯è¿åçç»æï¼å ·ä½è¯·åèä¾å function webapp_ws_fun_PrinterPapers(printer) { webapp_ws_run({ type: "fun", fun: "PrinterPapers", printer: printer }); } //éè¿WebSocketåWEBæ¥è¡¨å®¢æ·ç«¯åé忢å½åæ¥è¡¨é¢è§å¹¶å ³éé¢è§çªå£çæä»¤ function webapp_ws_fun_StopPreview() { webapp_ws_run({ type: "fun", fun: "StopPreview" }); } ///////////////////////////////////////////////////////////////////////////// //éè¿WebSocketåWEBæ¥è¡¨å®¢æ·ç«¯åéæ¶æ¯è¿è¡èªå¨æ´æ°æ£æ¥å¤ç function webapp_ws_autoupdate() { webapp_ws_run({ type: "update", url: _grwebapp_url, ver: _grwebapp_version }); } ///////////////////////////////////////////////////////////////////////////// //为URL追å ä¸ä¸ªå为idçéæºæ°åæ°ï¼ç¨äºé²æ¢æµè§å¨ç¼åã //æ¥è¡¨æ¨¡æ¿éæ°è®¾è®¡åï¼å 为æµè§å¨ç¼åè让æ¥è¡¨çæä¸è½åæ åºæ°ä¿®æ¹çè®¾è®¡ç»æï¼URLå追å ä¸ä¸ªéæºæ°åæ°å¯ä»¥é¿å è¿æ ·çé®é¢ //åæ°urlå¿ é¡»æ¯éæçURLï¼å ¶åæ¬èº«æ ä»»ä½åæ° //å¦ææ¨¡æ¿å ä¹ä¸æä¹ä¿®æ¹ï¼å¯ä»¥å»æå¯¹æ¬å½æ°çè°ç¨ function urlAddRandomNo(url) { return url + "?id=" + Math.floor(Math.random() * 10000); } //æ ¹æ®å½åç½é¡µURLè·åå°å½åWEBæå¡å¨çæ ¹URLï¼å¹¶è®°å½å¨ window.rootURL ä¸ function gr_extractRootURL() { var path = window.location.pathname, index = path.lastIndexOf("/"); window.rootURL = window.location.protocol + "//" + window.location.host; if (index >= 0) { path = path.substr(0, index); //demmoçæ ¹ç®å½å¨å½å页é¢ç1级ç®å½ä¹ä¸ index = path.lastIndexOf("/"); if (index >= 0) { path = path.substr(0, index); } window.rootURL += path; } window.rootURL += "/"; } //vueä¸ä½¿ç¨å°ä¸å注é弿¾ //export { // webapp_url_method_valid, // webapp_urlprotocol_startup, // webapp_ajax, // webapp_ws_ajax_run, // webapp_urlprotocol_run, // urlAddRandomNo, // webapp_onmessage, // webapp_ws_fun_StopPreview, // webapp_ws_fun_PrinterPapers, // webapp_ws_fun_Printers, // webapp_ws_ajax_together, // webapp_ws_autoupdate, // gr_extractRootURL //} public/static/grid/webapp-ws-tutorial.htm
ÎļþÃû´Ó public/webapp-ws-tutorial.htm ÐÞ¸Ä @@ -2,16 +2,12 @@ <html> <head> <title>WEBæ¥è¡¨å®¢æ·ç«¯ä½¿ç¨æç¨(WebSocket) - éæµªWEBæ¥è¡¨</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <meta name="Description" content="éæµªHTML5æ¥è¡¨åºç¨WEBæ¥è¡¨å®¢æ·ç«¯å®ç°æå°ä¸æ°æ®å¯¼åºã"/> <meta name="Keywords" content="WEBæ¥è¡¨,WEBæå°,HTML5æ¥è¡¨,WEBæ¥è¡¨å®¢æ·ç«¯"/> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="Description" content="éæµªHTML5æ¥è¡¨åºç¨WEBæ¥è¡¨å®¢æ·ç«¯å®ç°æå°ä¸æ°æ®å¯¼åºã" /> <meta name="Keywords" content="WEBæ¥è¡¨,WEBæå°,HTML5æ¥è¡¨,WEBæ¥è¡¨å®¢æ·ç«¯" /> <script src="grwebapp.js"></script> <script language="javascript" type="text/javascript"> import {webapp_urlprotocol_startup} from "./grwebapp"; function window_onload() { console.log('æ§è¡äºï¼') //*è¿å¥ç¹å«éè¦*ï¼åªæå¨WEBæ¥è¡¨å®¢æ·ç«¯ç¨åºåï¼æè½è¿è¡WebSocketé讯 //妿WEBæ¥è¡¨å®¢æ·ç«¯ç¨åºä¸ºå¼æºèªå¯å¨ï¼ä»¥ä¸è°ç¨åºè¯¥å»æãæ´å¤è¯´æè¯·åè帮å©âWEBæ¥è¡¨(B/Sæ¥è¡¨)->WEBæ¥è¡¨å®¢æ·ç«¯->é¨ç½²ä¸å®è£ âé¨åä¸ä¸è°·æChromeæµè§å¨çç¸å ³è¯´æ webapp_urlprotocol_startup(); //å¯å¨WEBæ¥è¡¨å®¢æ·ç«¯ç¨åºï¼ä»¥ä¾¿ä¾¦å¬æ¥å WebSocket æ°æ® @@ -43,7 +39,8 @@ //alert(event.data); if (message.event == "PrintEnd") { OnPrintEnd(); } else if (message.event == "ExportEnd") { } else if (message.event == "ExportEnd") { OnExportEnd(); } } @@ -58,9 +55,6 @@ <h3>èµ·æ¥ä¾å</h3> <p><a href='javascript:ws_ajax_preview();'>æå°é¢è§(AJAX)</a>éè¿AJAXæ¹å¼è·åæ¥è¡¨æ¨¡æ¿ä¸æ¥è¡¨æ°æ®</p> <script language="javascript" type="text/javascript"> import {urlAddRandomNo, webapp_ws_ajax_run} from "./grwebapp"; function ws_ajax_preview() { //åæ°å ·ä½è¯´æè¯·åèå¸®å©ææ¡£ä¸çâWEBæ¥è¡¨(B/Sæ¥è¡¨)->WEBæ¥è¡¨å®¢æ·ç«¯->å¯å¨åæ°è¯´æâé¨å var args = { @@ -93,11 +87,8 @@ } </script> <p><a href='javascript:ws_ajax_print();'>æå°(AJAX)</a>éè¿AJAXæ¹å¼è·åæ¥è¡¨æ¨¡æ¿ä¸æ¥è¡¨æ°æ®</p> <p> <a href='javascript:ws_ajax_print();'>æå°(AJAX)</a>éè¿AJAXæ¹å¼è·åæ¥è¡¨æ¨¡æ¿ä¸æ¥è¡¨æ°æ®</p> <script language="javascript" type="text/javascript"> import {urlAddRandomNo, webapp_ws_ajax_run} from "./grwebapp"; function ws_ajax_print() { var args = { type: "print", @@ -112,9 +103,6 @@ <p><a href='javascript:ws_ajax_export_xls();'>导åºExcel(AJAX)</a>éè¿AJAXæ¹å¼è·åæ¥è¡¨æ¨¡æ¿ä¸æ¥è¡¨æ°æ®</p> <script language="javascript" type="text/javascript"> import {urlAddRandomNo, webapp_ws_ajax_run} from "./grwebapp"; function ws_ajax_export_xls() { var args = { type: "xls", @@ -128,11 +116,8 @@ </script> <h3>èªå®ä¹æå°åæ°</h3> <p><a href='javascript:print_arguments();'>èªå®ä¹æå°åæ°</a>ï¼æå®æå°æºï¼è®¾ç½®é份æå°ä¸æå°ä»½æ°ã</p> <p> <a href='javascript:print_arguments();'>èªå®ä¹æå°åæ°</a>ï¼æå®æå°æºï¼è®¾ç½®é份æå°ä¸æå°ä»½æ°ã</p> <script language="javascript" type="text/javascript"> import {urlAddRandomNo, webapp_ws_ajax_run} from "./grwebapp"; function print_arguments() { var args = { type: "print", //妿æ¯è¦è¿è¡æå°ï¼å° type 设置为 print @@ -147,14 +132,11 @@ } </script> <p><a href='javascript:export_xls_custom();'>èªå®ä¹å¯¼åºExcel</a>ï¼è®¾ç½®åéçé项忰ï¼å°æ°æ®å¯¼åºä¸ºè¿ç»çè¡¨æ ¼ï¼é¡µç页èä¸å¯¼åºï¼ä¸æ¾ç¤ºå¯¼åºåæ°å¯¹è¯æ¡çã</p> <p> <a href='javascript:export_xls_custom();'>èªå®ä¹å¯¼åºExcel</a>ï¼è®¾ç½®åéçé项忰ï¼å°æ°æ®å¯¼åºä¸ºè¿ç»çè¡¨æ ¼ï¼é¡µç页èä¸å¯¼åºï¼ä¸æ¾ç¤ºå¯¼åºåæ°å¯¹è¯æ¡çã</p> <script language="javascript" type="text/javascript"> import {urlAddRandomNo, webapp_ws_ajax_run} from "./grwebapp"; function export_xls_custom() { var args = { report: urlAddRandomNo("../grf/1a.grf"), report:urlAddRandomNo("../grf/1a.grf"), data: "../data/DataCenter.ashx?data=Customer", type: "xls", ExportPageBreak: false, @@ -173,15 +155,12 @@ <p><a href='javascript:ws_data_from_string();'>æå°é¢è§(æ¥è¡¨æ°æ®æ¥èªå符串)</a>ï¼éè¿WebSocketç´æ¥å°ç½é¡µä¸çåç¬¦ä¸²æ°æ®ä¼ éç»WEBæ¥è¡¨å®¢æ·ç«¯ã</p> <script language="javascript" type="text/javascript"> import {urlAddRandomNo, webapp_ws_ajax_run} from "./grwebapp"; function ws_data_from_string() { var args = { type: "preview", //设置ä¸åç屿§å¯ä»¥æ§è¡ä¸åçä»»å¡ï¼å¦ï¼preview print pdf xls csv txt rtf img grd report: urlAddRandomNo("../grf/1a.grf"), //å®é åºç¨ä¸ï¼dataåºè¯¥ä¸ºç¨åºä¸éè¿åç§éå¾è·åå°çæ°æ®ï¼æåè¦å°æ°æ®è½¬æ¢ä¸ºæ¥è¡¨éè¦çXMLæJSONæ ¼å¼çåç¬¦ä¸²æ°æ® data: "<xml>" + data:"<xml>" + "<row><CustomerID>HUNGC</CustomerID><CompanyName>äºéæºæ¢°</CompanyName><ContactName>èå ç</ContactName><ContactTitle>éå®ä»£è¡¨</ContactTitle></row>" + "<row><CustomerID>CENTC</CustomerID><CompanyName>䏿·å®ä¸</CompanyName><ContactName>çå ç</ContactName><ContactTitle>å¸åºç»ç</ContactTitle></row>" + "<row><CustomerID>CACTU</CustomerID><CompanyName>å¨èªè´§è¿</CompanyName><ContactName>åå ç</ContactName><ContactTitle>éå®ä»£ç</ContactTitle></row>" + @@ -195,13 +174,10 @@ <p><a href='javascript:ws_data_from_object();'>æå°é¢è§(æ¥è¡¨æ°æ®æ¥èªJSON对象)</a>ï¼éè¿WebSocketç´æ¥å°ç½é¡µä¸çJSONå¯¹è±¡æ°æ®ä¼ éç»WEBæ¥è¡¨å®¢æ·ç«¯ã</p> <script language="javascript" type="text/javascript"> import {urlAddRandomNo, webapp_ws_ajax_run} from "./grwebapp"; function ws_data_from_object() { var args = { type: "preview", //设置ä¸åç屿§å¯ä»¥æ§è¡ä¸åçä»»å¡ï¼å¦ï¼preview print pdf xls csv txt rtf img grd report: urlAddRandomNo("../grf/1a.grf"), report: urlAddRandomNo("../grf/1a_test.grf"), //å®é åºç¨ä¸ï¼dataåºè¯¥ä¸ºç¨åºä¸éè¿åç§éå¾è·åå°çæ°æ®ï¼æåè¦å°æ°æ®è½¬æ¢ä¸ºæ¥è¡¨éè¦çXMLæJSONæ ¼å¼çåç¬¦ä¸²æ°æ® data: { src/api/scgl.js
@@ -76,3 +76,20 @@ params: data }) } // export function MesOrderStepSearch(data) { return request({ url: 'ProductionManagement/MesOrderStepSearch', method: 'get', params: data }) } // export function MesOrderStepStart(data) { return request({ url: 'ProductionManagement/MesOrderStepStart', method: 'post', params: data }) } src/views/jcsz/jsqd.vue
@@ -89,7 +89,6 @@ <el-table-column prop="description" label="è§è²æè¿°" show-overflow-tooltip sortable="custom" /> <el-table-column @@ -101,7 +100,6 @@ prop="lm_date" label="å建æ¶é´" sortable="custom" show-overflow-tooltip /> <el-table-column prop="lm_date" @@ -152,7 +150,7 @@ <el-dialog :title="operation==='add'?'æ°å¢':'ç¼è¾'" :visible.sync="dialogVisible" width="50%" width="65%" top="15vh" :close-on-click-modal="false" @closed="handleClose" @@ -160,17 +158,17 @@ > <el-form ref="dialogForm" inline :rules="dialogFormRules" :model="dialogForm" label-width="80px"> <el-form-item label="è§è²ç¼ç " prop="RoleCode"> <el-input v-model="dialogForm.RoleCode" :disabled="operation!=='add'" style="width: 220px" /> <el-input v-model="dialogForm.RoleCode" :disabled="operation!=='add'" style="width: 200px" /> </el-form-item> <el-form-item label="è§è²åç§°" prop="RoleName"> <el-input v-model="dialogForm.RoleName" style="width: 220px" /> <el-input v-model="dialogForm.RoleName" style="width: 200px" /> </el-form-item> <el-form-item prop="RoleTypeCode" label="è§è²ç±»å"> <el-select v-model="dialogForm.RoleTypeCode" filterable :popper-append-to-body="false" style="width: 220px" style="width: 200px" placeholder="è¯·éæ©" > <el-option @@ -182,7 +180,7 @@ </el-select> </el-form-item> <el-form-item label="è§è²æè¿°" prop="description"> <el-input v-model="dialogForm.description" type="textarea" style="width: 220px" /> <el-input v-model="dialogForm.description" type="textarea" style="width: 200px" /> </el-form-item> </el-form> <span slot="footer" class="dialog-footer"> @@ -209,7 +207,7 @@ <el-table :data="RoleTypeCodeArr" border height="400" height="300" highlight-current-row :header-cell-style="this.$headerCellStyle" :cell-style="this.$cellStyle" @@ -281,6 +279,7 @@ width="80%" :close-on-click-modal="false" top="15vh" :fullscreen="isFullscreen" class="userDialogVisible" @closed="handleCloseUser" @close="handleCloseUser" @@ -295,10 +294,10 @@ <div style="display: flex;min-height: 50px"> <el-form ref="dialogFormUser" inline :model="dialogFormUser" label-width="80px"> <el-form-item label="ç¨æ·ç¼ç "> <el-input v-model="dialogFormUser.usercode" class="userDialogVisibleInput" style="width: 220px" /> <el-input v-model="dialogFormUser.usercode" style="width: 200px" /> </el-form-item> <el-form-item label="ç¨æ·åç§°"> <el-input v-model="dialogFormUser.username" class="userDialogVisibleInput" style="width: 220px" /> <el-input v-model="dialogFormUser.username" style="width: 200px" /> </el-form-item> <el-form-item label="æå±ç»ç»"> <el-cascader @@ -309,8 +308,7 @@ :append-to-body="false" :options="StuOrgArr" :props="defaultProps" class="userDialogVisibleInput" style="width: 220px;" style="width: 200px;" @change="dialogCascaderChange" /> @@ -320,9 +318,8 @@ v-model="dialogFormUser.isrole" filterable :popper-append-to-body="false" style="width: 220px" style="width: 200px" placeholder="è¯·éæ©" class="userDialogVisibleInput" > <el-option v-for="item in roleArr" @@ -424,6 +421,7 @@ :visible.sync="dialogVisibleRight" width="50%" top="15vh" :fullscreen="isFullscreen" :close-on-click-modal="false" class="dialogVisibleRight" @closed="handleCloseRight" @@ -535,6 +533,7 @@ // } // } return { isFullscreen: false, mainHeight: 0, tableHeight: 0, form: { @@ -787,8 +786,11 @@ // è·å页é¢é«åº¦ getHeight() { this.$nextTick(() => { console.log(window.innerHeight) console.log(window.innerHeight) this.mainHeight = window.innerHeight - 250 this.tableHeight = this.mainHeight - 100 this.isFullscreen = window.innerHeight < 800 }) }, /* 设置模å*/ @@ -1360,9 +1362,9 @@ color: #606266; } ::v-deep .el-dialog__body { padding: 20px 100px !important; } //::v-deep .el-dialog__body { // padding: 20px 100px !important; //} .settingDialogVisible, .userDialogVisible, .dialogVisibleRight { ::v-deep .el-dialog__body { @@ -1428,16 +1430,6 @@ background-color: $main_color; } } } .userDialogVisible { ::v-deep .userDialogVisibleInput { //width:calc(100% - 30px) !important; } //::v-deep .el-form-item { // width:calc(100% - 30px) !important; //} } ::v-deep .el-radio__input.is-checked .el-radio__inner { src/views/jcsz/wldw.vue
@@ -71,7 +71,6 @@ <el-table-column prop="name" label="åä½åç§°" show-overflow-tooltip sortable="custom" min-width="200px" /> @@ -134,7 +133,6 @@ label="å建æ¶é´" sortable="custom" width="200" show-overflow-tooltip /> <el-table-column label="æä½" @@ -505,9 +503,9 @@ color: #606266; } ::v-deep .el-dialog__body { padding: 20px 100px !important; } //::v-deep .el-dialog__body { // padding: 20px 100px !important; //} ::v-deep .el-radio__input.is-checked .el-radio__inner { background-color: $main_color; src/views/jcsz/yhqd.vue
@@ -140,7 +140,6 @@ prop="lm_date" label="å建æ¶é´" width="200" show-overflow-tooltip sortable="custom" /> <el-table-column @@ -180,7 +179,7 @@ <el-dialog :title="operation==='add'?'æ°å¢':'ç¼è¾'" :visible.sync="dialogVisible" width="50%" width="65%" :close-on-click-modal="false" top="15vh" @closed="handleClose" @@ -188,20 +187,20 @@ > <el-form ref="dialogForm" :rules="dialogFormRules" inline :model="dialogForm" label-width="80px"> <el-form-item label="ç¨æ·ç¼ç " prop="UserCode"> <el-input v-model="dialogForm.UserCode" :disabled="operation!=='add'" style="width: 220px" /> <el-input v-model="dialogForm.UserCode" :disabled="operation!=='add'" style="width: 200px" /> </el-form-item> <el-form-item label="ç¨æ·åç§°" prop="UserName"> <el-input v-model="dialogForm.UserName" style="width: 220px" /> <el-input v-model="dialogForm.UserName" style="width: 200px" /> </el-form-item> <el-form-item label="ç¨æ·å¯ç " prop="Password"> <el-input v-model="dialogForm.Password" style="width: 220px" /> <el-input v-model="dialogForm.Password" style="width: 200px" /> </el-form-item> <el-form-item label="å¨èç¶æ" prop="Enable"> <el-select v-model="dialogForm.Enable" :popper-append-to-body="false" filterable style="width: 220px" style="width: 200px" placeholder="è¯·éæ©" > <el-option @@ -220,7 +219,7 @@ popper-class="elCascader" :options="StuOrgArr" :props="defaultProps" style="width: 220px;" style="width: 200px;" @change="dialogCascaderChange" /> </el-form-item> @@ -229,7 +228,7 @@ v-model="dialogForm.wagetype" :popper-append-to-body="false" filterable style="width: 220px" style="width: 200px" placeholder="è¯·éæ©" > <el-option @@ -242,10 +241,10 @@ </el-form-item> <el-form-item label="èç³»æ¹å¼"> <el-input v-model="dialogForm.Mobile" style="width: 220px" /> <el-input v-model="dialogForm.Mobile" style="width: 200px" /> </el-form-item> <el-form-item label="çµåé®ç®±"> <el-input v-model="dialogForm.Email" style="width: 220px" /> <el-input v-model="dialogForm.Email" style="width: 200px" /> </el-form-item> </el-form> <span slot="footer" class="dialog-footer"> @@ -260,8 +259,9 @@ <el-dialog title="å ³èè§è²" :visible.sync="dialogVisibleRoles" width="50%" width="65%" top="15vh" :fullscreen="isFullscreen" :close-on-click-modal="false" class="dialogVisibleRoles" @closed="handleCloseRoles" @@ -309,6 +309,7 @@ show-checkbox node-key="code" default-expand-all style="height: 300px" :props="defaultPropsOfRoleTree" @check="checkBoxClick" /> @@ -355,6 +356,7 @@ } } return { isFullscreen: false, mainHeight: 0, tableHeight: 0, form: { @@ -587,9 +589,15 @@ }, // è·å页é¢é«åº¦ getHeight() { console.log(window.innerHeight) console.log(window.innerWidth) this.$nextTick(() => { this.mainHeight = window.innerHeight - 250 this.tableHeight = this.mainHeight - 100 this.isFullscreen = window.innerHeight < 800 if (window.innerHeight < 800) { this.tableHeight = this.tableHeight - 50 } }) }, // å ³èè§è²ç¹å»äºä»¶ @@ -926,9 +934,9 @@ color: #606266; } ::v-deep .el-dialog__body { padding: 20px 100px !important; } //::v-deep .el-dialog__body { // padding: 20px 100px !important; //} ::v-deep .el-radio__input.is-checked .el-radio__inner { background-color: $main_color; src/views/jcsz/zzjg.vue
@@ -99,7 +99,6 @@ <el-table-column prop="lm_date" label="å建æ¶é´" show-overflow-tooltip sortable="custom" /> <el-table-column @@ -130,7 +129,7 @@ <el-dialog :title="operation==='add'?'æ°å¢':'ç¼è¾'" :visible.sync="dialogVisible" width="50%" width="60%" top="15vh" :close-on-click-modal="false" @closed="handleClose" @@ -151,15 +150,15 @@ </el-radio-group> </el-form-item> <el-form-item label="ç»ç»ç¼ç " prop="OrgCode"> <el-input v-model="dialogForm.OrgCode" disabled style="width: 220px" /> <el-input v-model="dialogForm.OrgCode" disabled style="width: 200px" /> </el-form-item> <el-form-item label="ç»ç»åç§°" prop="OrgName"> <el-input v-model="dialogForm.OrgName" style="width: 220px" /> <el-input v-model="dialogForm.OrgName" style="width: 200px" /> </el-form-item> <el-form-item v-if="dialogFormOrgTypeSelected!=='F'" prop="SupUnit" label="ä¸çº§åä½"> <el-select v-model="dialogForm.SupUnit" style="width: 220px" style="width: 200px" filterable :popper-append-to-body="false" placeholder="è¯·éæ©" @@ -215,6 +214,8 @@ } } return { windowHeight: 0, windowWidth: 0, mainHeight: 0, tableHeight: 0, numvalue: 0, @@ -265,12 +266,38 @@ } }, // watch: { // windowHeight(val) { // console.log('宿¶å±å¹é«åº¦ï¼', val, this.windowHeight) // }, // windowWidth(val) { // if (val < 768) { // this.dialogWidth = '100%' // } else { // this.dialogWidth = '75%' // } // console.log('宿¶å±å¹å®½åº¦ï¼', val, this.windowHeight) // } // }, created() { this.getOrganizationSearch() }, mounted() { window.addEventListener('resize', this.getHeight) this.getHeight() // console.log('页é¢è¿å ¥æ¶ç宽度ï¼', document.body.clientWidth) // if (document.body.clientWidth < 768) { // this.dialogWidth = '100%' // } // // // <!--æwindow.onresizeäºä»¶æå¨å°mounted彿°ä¸--> // window.onresize = () => { // return (() => { // this.windowHeight = document.documentElement.clientHeight// é« // this.windowWidth = document.documentElement.clientWidth // 宽 // })() // } }, methods: { async getOrganizationSearch() { @@ -466,9 +493,9 @@ color: #606266; } ::v-deep .el-dialog__body { padding: 20px 100px !important; } //::v-deep .el-dialog__body { // padding: 20px 100px !important; //} ::v-deep .el-radio__input.is-checked .el-radio__inner { background-color: $main_color; src/views/sbgl/sbqd.vue
@@ -200,20 +200,20 @@ :close-on-click-modal="false" :title="operation==='add'?'æ°å¢':'ç¼è¾'" :visible.sync="dialogVisible" width="50%" width="65%" top="15vh" @closed="handleClose" @close="handleClose" > <el-form ref="dialogForm" inline :rules="dialogFormRules" :model="dialogForm" label-width="80px"> <el-form-item label="设å¤ç¼ç " prop="devicecode"> <el-input v-model="dialogForm.devicecode" :disabled="operation!=='add'" style="width: 220px" /> <el-input v-model="dialogForm.devicecode" :disabled="operation!=='add'" style="width: 200px" /> </el-form-item> <el-form-item label="设å¤åç§°" prop="devicename"> <el-input v-model="dialogForm.devicename" style="width: 220px" /> <el-input v-model="dialogForm.devicename" style="width: 200px" /> </el-form-item> <el-form-item label="设å¤ç±»å" prop="devicetypecode"> <el-select v-model="dialogForm.devicetypecode" :popper-append-to-body="false" style="width: 220px" placeholder="è¯·éæ©" @change="devicetypecodeChange"> <el-select v-model="dialogForm.devicetypecode" :popper-append-to-body="false" style="width: 200px" placeholder="è¯·éæ©" @change="devicetypecodeChange"> <el-option v-for="item in DeviceTypeArr" :key="item.code" @@ -223,7 +223,7 @@ </el-select> </el-form-item> <el-form-item label="设å¤ç»" prop="devicegroupcode"> <el-select v-model="dialogForm.devicegroupcode" :popper-append-to-body="false" :disabled="dialogForm.devicetypecode===''" style="width: 220px" placeholder="è¯·éæ©"> <el-select v-model="dialogForm.devicegroupcode" :popper-append-to-body="false" :disabled="dialogForm.devicetypecode===''" style="width: 200px" placeholder="è¯·éæ©"> <el-option v-for="item in DeviceGroupDialogArr" :key="item.code" @@ -235,14 +235,14 @@ <el-form-item label="æå ¥æ¥æ" prop="importdate"> <el-date-picker v-model="dialogForm.importdate" style="width: 220px" style="width: 200px" type="date" placeholder="éæ©æ¥æ" popper-class="dateStyle" /> </el-form-item> <el-form-item label="æå±è½¦é´" prop="workshopcode"> <el-select v-model="dialogForm.workshopcode" :popper-append-to-body="false" style="width: 220px" placeholder="è¯·éæ©" @change="workshopcodeChange"> <el-select v-model="dialogForm.workshopcode" :popper-append-to-body="false" style="width: 200px" placeholder="è¯·éæ©" @change="workshopcodeChange"> <el-option v-for="item in WorkShopArr" :key="item.code" @@ -252,7 +252,7 @@ </el-select> </el-form-item> <el-form-item label="æå±äº§çº¿" prop="linecode"> <el-select v-model="dialogForm.linecode" :popper-append-to-body="false" :disabled="dialogForm.workshopcode===''" style="width: 220px" placeholder="è¯·éæ©"> <el-select v-model="dialogForm.linecode" :popper-append-to-body="false" :disabled="dialogForm.workshopcode===''" style="width: 200px" placeholder="è¯·éæ©"> <el-option v-for="item in WorkLineArr" :key="item.linecode" @@ -262,7 +262,7 @@ </el-select> </el-form-item> <el-form-item label="使ç¨ç¶æ" prop="status"> <el-select v-model="dialogForm.status" :popper-append-to-body="false" style="width: 220px" placeholder="è¯·éæ©"> <el-select v-model="dialogForm.status" :popper-append-to-body="false" style="width: 200px" placeholder="è¯·éæ©"> <el-option v-for="item in StatusArr" :key="item.value" @@ -288,7 +288,7 @@ <el-dialog title="设å¤ç±»å" :visible.sync="DeviceTypeDialogVisible" width="50%" width="65%" top="15vh" :close-on-click-modal="false" class="DeviceTypeDialogVisible" @@ -301,7 +301,7 @@ <el-table :data="DeviceTypeArray" border height="400" height="300" highlight-current-row :header-cell-style="this.$headerCellStyle" :cell-style="this.$cellStyle" @@ -388,7 +388,7 @@ :data="DeviceGroupArray" border highlight-current-row height="400" height="300" :header-cell-style="this.$headerCellStyle" :cell-style="this.$cellStyle" @sort-change="sortChangeOfDeviceGroup" @@ -438,7 +438,6 @@ <el-table-column prop="remark" label="åç»æè¿°" show-overflow-tooltip sortable="custom" > <template slot-scope="{row}"> @@ -773,6 +772,9 @@ this.$nextTick(() => { this.mainHeight = window.innerHeight - 250 this.tableHeight = this.mainHeight - 100 if (window.innerHeight < 800) { this.tableHeight = this.tableHeight - 50 } }) }, @@ -1022,9 +1024,9 @@ color: #606266; } ::v-deep .el-dialog__body { padding: 20px 100px !important; } //::v-deep .el-dialog__body { // padding: 20px 100px !important; //} .DeviceTypeDialogVisible { ::v-deep .el-dialog__body { src/views/scgl/gd.vue
@@ -30,14 +30,15 @@ </el-form-item> <el-form-item label="产åç¼ç " style=" display: flex;"> <el-select v-model="form.partcode" :popper-append-to-body="false" style="width: 200px" placeholder="è¯·éæ©"> <el-option v-for="item in OrgTypeArr" :key="item.code" :label="item.name" :value="item.code" /> </el-select> <!-- <el-select v-model="form.partcode" :popper-append-to-body="false" style="width: 200px" placeholder="è¯·éæ©">--> <!-- <el-option--> <!-- v-for="item in OrgTypeArr"--> <!-- :key="item.code"--> <!-- :label="item.name"--> <!-- :value="item.code"--> <!-- />--> <!-- </el-select>--> <el-input v-model="form.partcode" style="width: 200px" placeholder="请è¾å ¥" /> </el-form-item> <el-form-item label="产ååç§°" style=" display: flex;"> <el-input v-model="form.partname" style="width: 200px" placeholder="请è¾å ¥" /> @@ -109,6 +110,7 @@ <template scope="scope"> <el-radio v-model="radioSelected" :label="scope.$index" style="color: #fff;padding-left: 10px; margin-right: -25px;" @change.native="getCurrentRow(scope.row)" /> @@ -397,6 +399,7 @@ // åéæ¡éä¸è·åå½åè¡ä¿¡æ¯ getCurrentRow(row) { console.log(row, 1) this.radioSelected = row }, // æ°å¢æé® add(operation) { @@ -640,4 +643,9 @@ border-color: $main_color; } .elTableDiv{ ::v-deep .el-radio__label{ display: none; } } </style> src/views/scgl/scdd.vue
@@ -30,14 +30,16 @@ </el-form-item> <el-form-item label="产åç¼ç " style=" display: flex;"> <el-select v-model="form.partcode" :popper-append-to-body="false" style="width: 200px" placeholder="è¯·éæ©"> <el-option v-for="item in OrgTypeArr" :key="item.code" :label="item.name" :value="item.code" /> </el-select> <el-input v-model="form.partcode" style="width: 200px" placeholder="请è¾å ¥" /> <!-- <el-select v-model="form.partcode" :popper-append-to-body="false" style="width: 200px" placeholder="è¯·éæ©">--> <!-- <el-option--> <!-- v-for="item in partArr"--> <!-- :key="item.code"--> <!-- :label="item.name"--> <!-- :value="item.code"--> <!-- />--> <!-- </el-select>--> </el-form-item> <el-form-item label="产ååç§°" style=" display: flex;"> <el-input v-model="form.partname" style="width: 200px" placeholder="请è¾å ¥" /> @@ -81,6 +83,7 @@ <el-button type="primary" icon="el-icon-switch-button" @click="orderClose" >订åå ³é </el-button> <!-- <el-button type="primary" icon="el-icon-circle-plus-outline" @click="add('add')">æ°å¢</el-button>--> @@ -109,6 +112,7 @@ <template scope="scope"> <el-radio v-model="radioSelected" :label="scope.$index" style="color: #fff;padding-left: 10px; margin-right: -25px;" @change.native="getCurrentRow(scope.row)" /> @@ -221,7 +225,7 @@ placeholder="è¯·éæ©" > <el-option v-for="item in OrgTypeArr" v-for="item in erporderstusArr" :key="item.code" :label="item.name" :value="item.code" @@ -263,7 +267,7 @@ <span slot="footer" class="dialog-footer"> <div class="footerButton"> <el-button @click="dialogVisibleCancel">å æ¶</el-button> <el-button type="primary" @click="dialogVisibleConfirm">ç¡® å®</el-button> <el-button type="primary" @click="dialogVisibleConfirm">ä¸ è¾¾</el-button> </div> </span> </el-dialog> @@ -275,6 +279,7 @@ import { AddUpdateOrganization, DeleteOrganization, OrganizationSearch, PrentOrganization } from '@/api/jcsz' import { getCookie } from '@/utils/auth' import { ErpOrderSearch } from '@/api/scgl' import { PartSelect } from '@/api/zzmx' const SER_HZ = /^[\u4e00-\u9fa5]+$/ export default { @@ -311,12 +316,13 @@ page: 1, // 第å 页 rows: 20 // æ¯é¡µå¤å°æ¡ }, // partArr: [], erporderstusArr: [ { code: 'CREATING', name: 'è¿è¡ä¸' }, { code: 'NEW', name: 'æªå¼å§' } ], total: 10, radioSelected: '', radioSelected: {}, tableData: [], dialogVisible: false, dialogForm: { @@ -343,6 +349,7 @@ }, created() { this.getErpOrderSearch() // this.getPartSelect()// è·å产åç¼ç ä¿¡æ¯ }, mounted() { window.addEventListener('resize', this.getHeight) @@ -354,6 +361,10 @@ this.tableData = res.data this.total = res.count }, // async getPartSelect() { // const { data: res } = await PartSelect() // this.partArr = res // }, // æåºæ¹åæ¶ sortChange({ column, prop, order }) { if (order === 'descending') { @@ -371,9 +382,6 @@ search() { this.getErpOrderSearch() }, upload() { }, // éç½® reset() { this.form.erporderstus = '' @@ -389,6 +397,11 @@ // åéæ¡éä¸è·åå½åè¡ä¿¡æ¯ getCurrentRow(row) { console.log(row, 1) this.radioSelected = row }, // 订åå ³é orderClose() { console.log(this.radioSelected, 1) }, // æ°å¢æé® add(operation) { @@ -632,4 +645,10 @@ border-color: $main_color; } .elTableDiv{ ::v-deep .el-radio__label{ display: none; } } </style> src/views/wlgl/kwdy.vue
@@ -352,6 +352,9 @@ this.$nextTick(() => { this.mainHeight = window.innerHeight - 250 this.tableHeight = this.mainHeight - 100 if (window.innerHeight < 800) { this.tableHeight = this.tableHeight - 50 } }) } } src/views/zzmx/chda.vue
@@ -103,20 +103,17 @@ /> <el-table-column prop="partcode" show-overflow-tooltip label="ç©æç¼ç " sortable="custom" /> <el-table-column prop="partname" show-overflow-tooltip label="ç©æåç§°" sortable="custom" /> <el-table-column prop="partspec" label="ç©æè§æ ¼" show-overflow-tooltip width="110" sortable="custom" /> @@ -139,7 +136,6 @@ <el-table-column prop="stck_name" label="ä»åºåç§°" show-overflow-tooltip sortable="custom" /> <el-table-column @@ -163,7 +159,6 @@ <el-table-column prop="lm_date" label="å建æ¶é´" show-overflow-tooltip sortable="custom" /> <el-table-column @@ -206,26 +201,26 @@ :close-on-click-modal="false" :title="operation==='add'?'æ°å¢':'ç¼è¾'" :visible.sync="dialogVisible" width="50%" width="65%" top="15vh" @closed="handleClose" @close="handleClose" > <el-form ref="dialogForm" inline :rules="dialogFormRules" :model="dialogForm" label-width="80px"> <el-form-item label="ç©æç¼ç " prop="materialcode"> <el-input v-model="dialogForm.materialcode" :disabled="operation!=='add'" style="width: 220px" /> <el-input v-model="dialogForm.materialcode" :disabled="operation!=='add'" style="width: 200px" /> </el-form-item> <el-form-item label="ç©æåç§°" prop="materialname"> <el-input v-model="dialogForm.materialname" style="width: 220px" /> <el-input v-model="dialogForm.materialname" style="width: 200px" /> </el-form-item> <el-form-item label="ç©æè§æ ¼" prop="materialspec"> <el-input v-model="dialogForm.materialspec" style="width: 220px" /> <el-input v-model="dialogForm.materialspec" style="width: 200px" /> </el-form-item> <el-form-item label="使ç¨åä½" prop="uomcode"> <el-select v-model="dialogForm.uomcode" :popper-append-to-body="false" style="width: 220px" style="width: 200px" placeholder="è¯·éæ©" > <el-option @@ -240,7 +235,7 @@ <el-select v-model="dialogForm.warehousecode" :popper-append-to-body="false" style="width: 220px" style="width: 200px" placeholder="è¯·éæ©" > <el-option @@ -255,7 +250,7 @@ <el-select v-model="dialogForm.stocktypecode" :popper-append-to-body="false" style="width: 220px" style="width: 200px" placeholder="è¯·éæ©" @change="val=>stocktypecodeChange(val,'dialogForm')" > @@ -271,7 +266,7 @@ <el-select v-model="dialogForm.materialtypecode" :popper-append-to-body="false" style="width: 220px" style="width: 200px" :disabled="dialogForm.stocktypecode===''" placeholder="è¯·éæ©" > @@ -284,10 +279,10 @@ </el-select> </el-form-item> <el-form-item label="æå°åºå" prop="minstockqty"> <el-input v-model="dialogForm.minstockqty" style="width: 220px" /> <el-input v-model="dialogForm.minstockqty" style="width: 200px" /> </el-form-item> <el-form-item label="æå¤§åºå" prop="maxstockqty"> <el-input v-model="dialogForm.maxstockqty" style="width: 220px" /> <el-input v-model="dialogForm.maxstockqty" style="width: 200px" /> </el-form-item> </el-form> <span slot="footer" class="dialog-footer"> @@ -303,7 +298,7 @@ :close-on-click-modal="false" title="åä½è®¾ç½®" :visible.sync="officeDialogVisible" width="50%" width="65%" top="15vh" class="officeDialogVisible" @close="handleCloseOffice" @@ -316,7 +311,7 @@ :data="officeTableData" border highlight-current-row height="400" height="300" :header-cell-style="this.$headerCellStyle" :cell-style="this.$cellStyle" @sort-change="sortChangeOfOffice" @@ -425,6 +420,7 @@ :visible.sync="dialogVisibleRoute" width="50%" top="15vh" :fullscreen="isFullscreen" class="dialogVisibleRoute" @closed="handleCloseRoute" @close="handleCloseRoute" @@ -542,6 +538,7 @@ } } return { isFullscreen: false, mainHeight: 0, tableHeight: 0, form: { @@ -791,6 +788,10 @@ this.$nextTick(() => { this.mainHeight = window.innerHeight - 250 this.tableHeight = this.mainHeight - 100 this.isFullscreen = window.innerHeight < 800 if (window.innerHeight < 800) { this.tableHeight = this.tableHeight - 50 } }) }, /* ç¹å»å ³èå·¥èºè·¯çº¿æ¨¡å*/ @@ -1100,9 +1101,9 @@ color: #606266; } ::v-deep .el-dialog__body { padding: 20px 100px !important; } //::v-deep .el-dialog__body { // padding: 20px 100px !important; //} .dialogVisibleRoute { ::v-deep .el-dialog__body { src/views/zzmx/gxdy.vue
@@ -232,6 +232,7 @@ :visible.sync="workDialogVisible" width="50%" top="15vh" :fullscreen="isFullscreen" :close-on-click-modal="false" class="workDialogVisible" @closed="workHandleClose" @@ -278,6 +279,7 @@ :data="workDialogForm.workTreeArr" show-checkbox node-key="code" style="height: 300px;" default-expand-all :props="workTreeDefaultProps" @check="checkBoxClick" @@ -299,6 +301,7 @@ :visible.sync="defectDialogVisible" width="50%" top="15vh" :fullscreen="isFullscreen" :close-on-click-modal="false" class="defectDialogVisible" @closed="defectHandleClose" @@ -319,7 +322,7 @@ :data="defectTree" show-checkbox node-key="code" style="height: 400px;" style="height: 500px;" default-expand-all :props="workTreeDefaultProps" /> @@ -371,6 +374,7 @@ } } return { isFullscreen: false, mainHeight: 0, tableHeight: 0, form: { @@ -564,6 +568,10 @@ this.$nextTick(() => { this.mainHeight = window.innerHeight - 250 this.tableHeight = this.mainHeight - 100 this.isFullscreen = window.innerHeight < 800 if (window.innerHeight < 800) { this.tableHeight = this.tableHeight - 50 } }) }, /* å ³èå·¥ä½ç«æ¨¡å*/ src/views/zzmx/gylx.vue
@@ -123,6 +123,7 @@ width="70%" :close-on-click-modal="false" top="15vh" :fullscreen="isFullscreen" @closed="handleClose" @close="handleClose" > @@ -277,6 +278,7 @@ } } return { isFullscreen: false, mainHeight: 0, tableHeight: 0, form: { @@ -632,6 +634,7 @@ this.$nextTick(() => { this.mainHeight = window.innerHeight - 250 this.tableHeight = this.mainHeight - 100 this.isFullscreen = window.innerHeight < 800 }) } } src/views/zzmx/gylx_bak.vue
@@ -59,8 +59,8 @@ <!-- </template>--> </el-table-column> <el-table-column label="å·¥èºè·¯çº¿" prop="gylx" /> <el-table-column show-overflow-tooltip label="ç©æç¼ç " prop="wlbm" /> <el-table-column show-overflow-tooltip label="ç©æåç§°" prop="wlmc" /> <el-table-column label="ç©æç¼ç " prop="wlbm" /> <el-table-column label="ç©æåç§°" prop="wlmc" /> <el-table-column label="ç©æè§æ ¼" prop="wlgg" /> <el-table-column label="ç»æè£ ç®±" prop="jszx"> <template slot-scope="{row}"> src/views/zzmx/jpgj.vue
@@ -201,6 +201,7 @@ :visible.sync="dialogVisible" width="70%" top="15vh" :fullscreen="isFullscreen" :close-on-click-modal="false" @closed="handleClose" @close="handleClose" @@ -450,6 +451,7 @@ } } return { isFullscreen: false, mainHeight: 0, tableHeight: 0, form: { @@ -815,6 +817,7 @@ this.$nextTick(() => { this.mainHeight = window.innerHeight - 250 this.tableHeight = this.mainHeight - 100 this.isFullscreen = window.innerHeight < 800 }) } }