loulijun2021
2022-07-04 991a63234bba49da5a22d0f64ae15837d3253829
除生产管理外   其它页面能适应小屏
已重命名135个文件
已添加1个文件
已复制1个文件
已修改15个文件
已删除1个文件
1362 ■■■■ 文件已修改
public/grwebapp.js 490 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
public/index.html 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/1a.grf 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/1a_test.grf 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/1b.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/1c.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/1d.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/1e.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/1f.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/1g.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/1h.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/1i.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/1j.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/1k.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/1l.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/1m.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/1n.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/1o.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/1p.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/1q.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/2a.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/2b.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/2c.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/2d.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/2e.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/2f.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/2g.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/2h.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/2i.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/2j.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/2k.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/2l.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/2m.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/3@.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/3a.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/3b.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/3c.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/3d.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/3e.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/3f.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/3g.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/3h.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/3i.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/3j.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/3k.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/3l.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/3m.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/3n.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/3o.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/3p.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/3q-1.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/3q-2.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/3q-3.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/3q.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/4a.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/4b.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/4c.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/4d.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/4e.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/5a.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/5b.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/5c.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/5d.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/5e.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/5f.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/5g.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/5h.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/5i.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/5j.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/5k.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/5l.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/5m.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/5n.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/5o.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/5p.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/6a.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/6b.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/6c.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/6d.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/6e.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/6f.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/6g.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/6h.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/6i.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/6j.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/6k.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/6l.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/6m.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/6n.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/7-1a.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/7-1a2.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/7-1b.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/7-1c.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/7-1d.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/7-1e.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/7-1f.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/7-1g.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/7-1h.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/7-1i.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/7-2a.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/7-2b.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/7-2c.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/7-2d.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/7-2e.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/7-2f.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/7-2g.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/7-3a.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/7-3b.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/7-3c.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/7-3d.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/7-3e.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/7-3f.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/7-3g.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/8a.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/8b.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/8c.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/8d.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/8e.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/8f.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/8g.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/8h.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/8i.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/9a.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/9b.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/9x.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/SummaryToDetail/ChartBar.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/SummaryToDetail/Crosstab.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/SummaryToDetail/Crosstab_Period.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/SummaryToDetail/Detail.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/SummaryToDetail/Summary.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/a0.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/a1.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/aaa.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/ds.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/program/data_from_url.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/产品流传单.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grf/产品流传单A5.grf 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grid/grwebapp.js 499 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
public/static/grid/webapp-ws-tutorial.htm 46 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/scgl.js 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/jcsz/jsqd.vue 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/jcsz/wldw.vue 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/jcsz/yhqd.vue 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/jcsz/zzjg.vue 43 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/sbgl/sbqd.vue 34 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/scgl/gd.vue 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/scgl/scdd.vue 47 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/wlgl/kwdy.vue 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/zzmx/chda.vue 41 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/zzmx/gxdy.vue 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/zzmx/gylx.vue 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/zzmx/gylx_bak.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/zzmx/jpgj.vue 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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.grf
copy 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
      })
    }
  }