eoss-ui 0.5.43 → 0.5.45

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (138) hide show
  1. package/CHANGELOG.md +929 -0
  2. package/README.md +18 -0
  3. package/lib/button-group.js +136 -69
  4. package/lib/button.js +146 -72
  5. package/lib/checkbox-group.js +132 -67
  6. package/lib/data-table-form.js +142 -74
  7. package/lib/data-table.js +225 -104
  8. package/lib/date-picker.js +132 -67
  9. package/lib/dialog.js +145 -71
  10. package/lib/eoss-ui.common.js +717 -414
  11. package/lib/flow-group.js +157 -74
  12. package/lib/flow-list.js +136 -69
  13. package/lib/flow.js +185 -99
  14. package/lib/form.js +141 -69
  15. package/lib/handle-user.js +142 -70
  16. package/lib/handler.js +165 -93
  17. package/lib/index.js +1 -1
  18. package/lib/input-number.js +132 -67
  19. package/lib/input.js +132 -67
  20. package/lib/login.js +165 -97
  21. package/lib/main.js +258 -153
  22. package/lib/nav.js +132 -67
  23. package/lib/page.js +132 -67
  24. package/lib/player.js +132 -67
  25. package/lib/qr-code.js +132 -67
  26. package/lib/radio-group.js +132 -67
  27. package/lib/retrial-auth.js +144 -71
  28. package/lib/select-ganged.js +132 -67
  29. package/lib/select.js +132 -67
  30. package/lib/selector-panel.js +147 -74
  31. package/lib/selector.js +132 -67
  32. package/lib/sizer.js +132 -67
  33. package/lib/steps.js +132 -67
  34. package/lib/switch.js +132 -67
  35. package/lib/table-form.js +139 -72
  36. package/lib/tabs.js +135 -69
  37. package/lib/theme-chalk/data-table.css +1 -1
  38. package/lib/theme-chalk/index.css +1 -1
  39. package/lib/theme-chalk/toolbar.css +1 -1
  40. package/lib/tips.js +132 -67
  41. package/lib/toolbar.js +7 -1
  42. package/lib/tree-group.js +167 -71
  43. package/lib/tree.js +132 -67
  44. package/lib/upload.js +143 -78
  45. package/lib/utils/util.js +132 -67
  46. package/lib/wujie.js +132 -67
  47. package/lib/wxlogin.js +132 -67
  48. package/package.json +2 -2
  49. package/packages/button/src/main.vue +14 -5
  50. package/packages/button-group/src/main.vue +2 -0
  51. package/packages/data-table/src/column.vue +4 -0
  52. package/packages/data-table/src/main.vue +65 -26
  53. package/packages/data-table-form/src/tbody.vue +3 -0
  54. package/packages/dialog/src/main.vue +11 -2
  55. package/packages/flow/src/component/CustomPreset.vue +14 -7
  56. package/packages/flow/src/component/FileList.vue +4 -2
  57. package/packages/flow/src/component/Preset.vue +11 -13
  58. package/packages/flow/src/form.vue +5 -4
  59. package/packages/flow/src/main.vue +7 -7
  60. package/packages/flow/src/table.vue +8 -1
  61. package/packages/flow-group/src/main.vue +23 -5
  62. package/packages/form/src/main.vue +12 -0
  63. package/packages/form/src/table.vue +2 -0
  64. package/packages/handle-user/src/main.vue +8 -1
  65. package/packages/handler/src/main.vue +35 -28
  66. package/packages/login/src/main.vue +35 -31
  67. package/packages/main/src/async-component/index.vue +4 -2
  68. package/packages/main/src/main.vue +70 -31
  69. package/packages/main/src/userinfo.vue +29 -25
  70. package/packages/retrial-auth/src/main.vue +10 -2
  71. package/packages/selector-panel/src/selection.vue +6 -0
  72. package/packages/tabs/src/main.vue +1 -0
  73. package/packages/theme-chalk/lib/base.css +1 -0
  74. package/packages/theme-chalk/lib/button-group.css +1 -0
  75. package/packages/theme-chalk/lib/button.css +1 -0
  76. package/packages/theme-chalk/lib/card.css +1 -0
  77. package/packages/theme-chalk/lib/cascader.css +0 -0
  78. package/packages/theme-chalk/lib/checkbox-group.css +1 -0
  79. package/packages/theme-chalk/lib/clients.css +1 -0
  80. package/packages/theme-chalk/lib/data-table-form.css +1 -0
  81. package/packages/theme-chalk/lib/data-table.css +1 -0
  82. package/packages/theme-chalk/lib/date-picker.css +1 -0
  83. package/packages/theme-chalk/lib/dialog.css +1 -0
  84. package/packages/theme-chalk/lib/enterprise.css +1 -0
  85. package/packages/theme-chalk/lib/error-page.css +1 -0
  86. package/packages/theme-chalk/lib/flow-chart.css +0 -0
  87. package/packages/theme-chalk/lib/flow-group.css +1 -0
  88. package/packages/theme-chalk/lib/flow-list.css +1 -0
  89. package/packages/theme-chalk/lib/flow.css +1 -0
  90. package/packages/theme-chalk/lib/fonts/iconfont.ttf +0 -0
  91. package/packages/theme-chalk/lib/fonts/iconfont.woff +0 -0
  92. package/packages/theme-chalk/lib/form.css +1 -0
  93. package/packages/theme-chalk/lib/handle-user.css +1 -0
  94. package/packages/theme-chalk/lib/handler.css +1 -0
  95. package/packages/theme-chalk/lib/icon.css +1 -0
  96. package/packages/theme-chalk/lib/icons.css +1 -0
  97. package/packages/theme-chalk/lib/index.css +1 -0
  98. package/packages/theme-chalk/lib/input-number.css +0 -0
  99. package/packages/theme-chalk/lib/input.css +1 -0
  100. package/packages/theme-chalk/lib/label.css +1 -0
  101. package/packages/theme-chalk/lib/layout.css +1 -0
  102. package/packages/theme-chalk/lib/login.css +1 -0
  103. package/packages/theme-chalk/lib/main.css +1 -0
  104. package/packages/theme-chalk/lib/mainComp.css +0 -0
  105. package/packages/theme-chalk/lib/menu.css +1 -0
  106. package/packages/theme-chalk/lib/nav.css +1 -0
  107. package/packages/theme-chalk/lib/notify.css +0 -0
  108. package/packages/theme-chalk/lib/page.css +1 -0
  109. package/packages/theme-chalk/lib/pagination.css +1 -0
  110. package/packages/theme-chalk/lib/player.css +1 -0
  111. package/packages/theme-chalk/lib/qr-code.css +1 -0
  112. package/packages/theme-chalk/lib/radio-group.css +1 -0
  113. package/packages/theme-chalk/lib/retrial-auth.css +1 -0
  114. package/packages/theme-chalk/lib/select-ganged.css +1 -0
  115. package/packages/theme-chalk/lib/select.css +1 -0
  116. package/packages/theme-chalk/lib/selector-panel.css +1 -0
  117. package/packages/theme-chalk/lib/selector.css +1 -0
  118. package/packages/theme-chalk/lib/sizer.css +1 -0
  119. package/packages/theme-chalk/lib/steps.css +1 -0
  120. package/packages/theme-chalk/lib/switch.css +1 -0
  121. package/packages/theme-chalk/lib/table-form.css +0 -0
  122. package/packages/theme-chalk/lib/tabs-panel.css +0 -0
  123. package/packages/theme-chalk/lib/tabs.css +1 -0
  124. package/packages/theme-chalk/lib/tips.css +1 -0
  125. package/packages/theme-chalk/lib/toolbar.css +1 -0
  126. package/packages/theme-chalk/lib/tree-group.css +1 -0
  127. package/packages/theme-chalk/lib/tree.css +1 -0
  128. package/packages/theme-chalk/lib/upload.css +1 -0
  129. package/packages/theme-chalk/lib/wujie.css +0 -0
  130. package/packages/theme-chalk/lib/wxlogin.css +1 -0
  131. package/packages/theme-chalk/src/data-table.scss +6 -0
  132. package/packages/theme-chalk/src/toolbar.scss +3 -0
  133. package/packages/toolbar/src/main.vue +10 -1
  134. package/packages/tree-group/src/main.vue +36 -2
  135. package/packages/upload/src/main.vue +6 -6
  136. package/src/index.js +1 -1
  137. package/src/utils/util.js +148 -80
  138. package/packages/theme-chalk/gulpfile.js +0 -25
package/lib/wxlogin.js CHANGED
@@ -258,7 +258,13 @@ var ajax = function ajax(_ref) {
258
258
  if (response.status === 200) {
259
259
  if (response.data.rCode === 64 || response.data.rCode === 65 || response.data.rCode === 67 || response.data.rCode === 69) {
260
260
  removeStorage(['Authorization', 'token', 'ssId', 'userId', 'userName', 'deviceUnique', 'menus', 'menus', 'useCaseCodes', 'mainConfig', 'jump']);
261
- if (win.top.location.href.indexOf('#/login') === -1 && win.top.location.href.indexOf('/login.html') === -1) {
261
+ var href = '';
262
+ try {
263
+ href = win.top.location.href;
264
+ } catch (error) {
265
+ href = win.location.href;
266
+ }
267
+ if (href.indexOf('#/login') === -1 && href.indexOf('/login.html') === -1) {
262
268
  var remind = sessionStorage.getItem('remind');
263
269
  if (!remind) {
264
270
  clearTimeout(loginMsg);
@@ -274,33 +280,37 @@ var ajax = function ajax(_ref) {
274
280
  closeOnClickModal: false,
275
281
  type: 'warning'
276
282
  }).then(function () {
277
- var loginPage = getStorage('login') || getStorage('loginPage');
278
- if (loginPage) {
279
- var src = void 0;
280
- if (!startWith(loginPage, ['http', '/'], true)) {
281
- var pathname = win.top.location.pathname;
282
- if (pathname !== '/') {
283
- pathname = pathname.split('/');
284
- pathname.splice(pathname.length - 1);
285
- pathname = pathname.join('/');
286
- src = pathname + '/' + loginPage.replace('./', '');
283
+ try {
284
+ var loginPage = getStorage('login') || getStorage('loginPage');
285
+ if (loginPage) {
286
+ var src = void 0;
287
+ if (!startWith(loginPage, ['http', '/'], true)) {
288
+ var pathname = win.top.location.pathname;
289
+ if (pathname !== '/') {
290
+ pathname = pathname.split('/');
291
+ pathname.splice(pathname.length - 1);
292
+ pathname = pathname.join('/');
293
+ src = pathname + '/' + loginPage.replace('./', '');
294
+ } else {
295
+ src = pathname + loginPage.replace('./', '');
296
+ }
287
297
  } else {
288
- src = pathname + loginPage.replace('./', '');
298
+ src = loginPage;
289
299
  }
300
+ win.top.location.href = src;
301
+ } else if (win.top.location.href.indexOf('main.html') > -1) {
302
+ win.top.location.href = './login.html';
290
303
  } else {
291
- src = loginPage;
292
- }
293
- win.top.location.href = src;
294
- } else if (win.top.location.href.indexOf('main.html') > -1) {
295
- win.top.location.href = './login.html';
296
- } else {
297
- var hash = win.top.location.hash;
298
- if (hash) {
299
- var len = win.top.location.href.indexOf(hash);
300
- win.top.location.href = win.location.href.slice(0, len) + '#/login';
301
- } else {
302
- win.top.location.href = '/login.html';
304
+ var hash = win.top.location.hash;
305
+ if (hash) {
306
+ var len = win.top.location.href.indexOf(hash);
307
+ win.top.location.href = win.location.href.slice(0, len) + '#/login';
308
+ } else {
309
+ win.top.location.href = '/login.html';
310
+ }
303
311
  }
312
+ } catch (error) {
313
+ win.postMessage({ type: 1 }, '*');
304
314
  }
305
315
  }).catch(function (e) {
306
316
  sessionStorage.removeItem('remind');
@@ -738,7 +748,13 @@ var delUrlParam = function delUrlParam(_ref2) {
738
748
  var url = _ref2.url,
739
749
  key = _ref2.key;
740
750
 
741
- var src = url ? decodeURI(url) : decodeURI(win.top.location.href);
751
+ var pUrl = '';
752
+ try {
753
+ pUrl = win.top.location.href;
754
+ } catch (error) {
755
+ pUrl = win.location.href;
756
+ }
757
+ var src = url ? decodeURI(url) : decodeURI(pUrl);
742
758
  var param = getParams({ url: src });
743
759
  if (param && key.length) {
744
760
  if (Array.isArray(key)) {
@@ -1234,6 +1250,21 @@ var getHour = function getHour(datetime) {
1234
1250
  return datetimeObj.getHours();
1235
1251
  };
1236
1252
 
1253
+ /**
1254
+ * getMyWinTop
1255
+ * @desc 获取同域的top窗口
1256
+ * @param {object} wind - window对象
1257
+ **/
1258
+ var getMyWinTop = function getMyWinTop(wind) {
1259
+ wind = wind ? wind : win;
1260
+ try {
1261
+ wind.parent.document;
1262
+ return getMyWinTop(wind.parent);
1263
+ } catch (error) {
1264
+ return wind;
1265
+ }
1266
+ };
1267
+
1237
1268
  /**
1238
1269
  * getWeekNumber
1239
1270
  * @desc 当年第几周
@@ -1988,7 +2019,12 @@ var isLogined = function isLogined(_ref8) {
1988
2019
  }).catch(function () {});
1989
2020
  return;
1990
2021
  }
1991
- var pathname = win.top.location.pathname;
2022
+ var pathname = '';
2023
+ try {
2024
+ pathname = win.top.location.pathname;
2025
+ } catch (error) {
2026
+ pathname = win.location.pathname;
2027
+ }
1992
2028
  if (loginPage) {
1993
2029
  sessionStorage.setItem('loginPage', loginPage);
1994
2030
  if (!startWith(loginPage, ['http', '/'], true)) {
@@ -2029,22 +2065,38 @@ var isLogined = function isLogined(_ref8) {
2029
2065
  deviceUnique: results.deviceUnique
2030
2066
  }
2031
2067
  });
2032
- var url = delUrlParam({
2033
- url: win.top.location.href,
2034
- key: ['serverId', 'authType', 'code', 'sessionId']
2035
- });
2036
- win.top.location.href = url;
2037
- setTimeout(function () {
2038
- win.top.location.reload();
2039
- }, 200);
2068
+ try {
2069
+ var url = delUrlParam({
2070
+ url: win.top.location.href,
2071
+ key: ['serverId', 'authType', 'code', 'sessionId']
2072
+ });
2073
+ win.top.location.href = url;
2074
+ setTimeout(function () {
2075
+ win.top.location.reload();
2076
+ }, 200);
2077
+ } catch (error) {
2078
+ var _url2 = delUrlParam({
2079
+ url: win.location.href,
2080
+ key: ['serverId', 'authType', 'code', 'sessionId']
2081
+ });
2082
+ win.location.href = _url2;
2083
+ setTimeout(function () {
2084
+ win.location.reload();
2085
+ }, 200);
2086
+ }
2040
2087
  break;
2041
2088
  case 1:
2042
2089
  break;
2043
2090
  case 2:
2044
2091
  break;
2045
2092
  case 3:
2046
- var href = results.authorizeUrl.replace('{redirectUri}', encodeURIComponent(win.top.location.href));
2047
- win.top.location.href = href;
2093
+ try {
2094
+ var href = results.authorizeUrl.replace('{redirectUri}', encodeURIComponent(win.top.location.href));
2095
+ win.top.location.href = href;
2096
+ } catch (error) {
2097
+ var _href = results.authorizeUrl.replace('{redirectUri}', encodeURIComponent(win.location.href));
2098
+ win.location.href = _href;
2099
+ }
2048
2100
  break;
2049
2101
  case 4:
2050
2102
  eoss_element__WEBPACK_IMPORTED_MODULE_5__["MessageBox"].alert(results.msg ? results.msg : '账号未绑定,账号密码登录后自动绑定!', '提示', {
@@ -2052,14 +2104,18 @@ var isLogined = function isLogined(_ref8) {
2052
2104
  type: 'error',
2053
2105
  callback: function callback() {
2054
2106
  sessionStorage.setItem('extUserBindHandleId', results.extUserBindHandleId);
2055
- if (loginPage) {
2056
- win.top.location.replace(loginPage);
2057
- } else if (document.referrer) {
2058
- win.top.location.replace(document.referrer);
2059
- } else if (win.top.location.href.indexOf('main.html') > -1) {
2060
- win.top.location.href = './login.html';
2061
- } else {
2062
- next('/login');
2107
+ try {
2108
+ if (loginPage) {
2109
+ win.top.location.replace(loginPage);
2110
+ } else if (document.referrer) {
2111
+ win.top.location.replace(document.referrer);
2112
+ } else if (win.top.location.href.indexOf('main.html') > -1) {
2113
+ win.top.location.href = './login.html';
2114
+ } else {
2115
+ next('/login');
2116
+ }
2117
+ } catch (error) {
2118
+ win.postMessage({ type: 1 }, '*');
2063
2119
  }
2064
2120
  }
2065
2121
  });
@@ -2071,14 +2127,18 @@ var isLogined = function isLogined(_ref8) {
2071
2127
  confirmButtonText: '确定',
2072
2128
  type: 'error',
2073
2129
  callback: function callback() {
2074
- if (loginPage) {
2075
- win.top.location.replace(loginPage);
2076
- } else if (document.referrer) {
2077
- win.top.location.replace(document.referrer);
2078
- } else if (win.top.location.href.indexOf('main.html') > -1) {
2079
- win.top.location.href = './login.html';
2080
- } else {
2081
- next('/login');
2130
+ try {
2131
+ if (loginPage) {
2132
+ win.top.location.replace(loginPage);
2133
+ } else if (document.referrer) {
2134
+ win.top.location.replace(document.referrer);
2135
+ } else if (win.top.location.href.indexOf('main.html') > -1) {
2136
+ win.top.location.href = './login.html';
2137
+ } else {
2138
+ next('/login');
2139
+ }
2140
+ } catch (error) {
2141
+ win.postMessage({ type: 1 }, '*');
2082
2142
  }
2083
2143
  }
2084
2144
  });
@@ -2091,14 +2151,18 @@ var isLogined = function isLogined(_ref8) {
2091
2151
  next();
2092
2152
  }
2093
2153
  } else {
2094
- if (loginPage) {
2095
- win.top.location.replace(loginPage);
2096
- } else if (document.referrer) {
2097
- win.top.location.replace(document.referrer);
2098
- } else if (win.top.location.href.indexOf('main.html') > -1) {
2099
- win.top.location.href = './login.html';
2100
- } else {
2101
- next('/login');
2154
+ try {
2155
+ if (loginPage) {
2156
+ win.top.location.replace(loginPage);
2157
+ } else if (document.referrer) {
2158
+ win.top.location.replace(document.referrer);
2159
+ } else if (win.top.location.href.indexOf('main.html') > -1) {
2160
+ win.top.location.href = './login.html';
2161
+ } else {
2162
+ next('/login');
2163
+ }
2164
+ } catch (error) {
2165
+ win.postMessage({ type: 1 }, '*');
2102
2166
  }
2103
2167
  }
2104
2168
  }
@@ -2528,30 +2592,30 @@ var setStorage = function setStorage(_ref14) {
2528
2592
  if (value && (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object') {
2529
2593
  value = JSON.stringify(value);
2530
2594
  }
2531
- if (type === undefined || type === 'sessionStorage') {
2595
+ if (type === 'localStorage') {
2532
2596
  if (typeof key === 'string') {
2533
- sessionStorage.setItem(key, value);
2597
+ localStorage.setItem(key, value);
2534
2598
  } else if (Array.isArray(key)) {
2535
2599
  for (var i in key) {
2536
- sessionStorage.setItem(key[i], value);
2600
+ localStorage.setItem(key[i], value);
2537
2601
  }
2538
2602
  } else {
2539
2603
  for (var _i6 in key) {
2540
2604
  var val = _typeof(key[_i6]) === 'object' ? JSON.stringify(key[_i6]) : key[_i6];
2541
- sessionStorage.setItem(_i6, val);
2605
+ localStorage.setItem(_i6, val);
2542
2606
  }
2543
2607
  }
2544
2608
  } else {
2545
2609
  if (typeof key === 'string') {
2546
- localStorage.setItem(key, value);
2610
+ sessionStorage.setItem(key, value);
2547
2611
  } else if (Array.isArray(key)) {
2548
2612
  for (var _i7 in key) {
2549
- localStorage.setItem(key[_i7], value);
2613
+ sessionStorage.setItem(key[_i7], value);
2550
2614
  }
2551
2615
  } else {
2552
2616
  for (var _i8 in key) {
2553
2617
  var _val = _typeof(key[_i8]) === 'object' ? JSON.stringify(key[_i8]) : key[_i8];
2554
- localStorage.setItem(_i8, _val);
2618
+ sessionStorage.setItem(_i8, _val);
2555
2619
  }
2556
2620
  }
2557
2621
  }
@@ -2954,6 +3018,7 @@ var watermark = function watermark(option) {
2954
3018
  getCurrentDate: getCurrentDate,
2955
3019
  getCurrentDateTime: getCurrentDateTime,
2956
3020
  getHour: getHour,
3021
+ getMyWinTop: getMyWinTop,
2957
3022
  getWeekNumber: getWeekNumber,
2958
3023
  getLength: getLength,
2959
3024
  getMainConfig: getMainConfig,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "eoss-ui",
3
- "version": "0.5.43",
3
+ "version": "0.5.45",
4
4
  "description": "eoss内部业务组件",
5
5
  "main": "lib/eoss-ui.common.js",
6
6
  "files": [
@@ -96,7 +96,7 @@
96
96
  "cp-cli": "^1.0.2",
97
97
  "cross-env": "^3.1.3",
98
98
  "css-loader": "^2.1.0",
99
- "eoss-element": "^0.2.83",
99
+ "eoss-element": "^0.2.86",
100
100
  "es6-promise": "^4.0.5",
101
101
  "eslint": "4.18.2",
102
102
  "eslint-config-elemefe": "0.1.1",
@@ -68,8 +68,17 @@ export default {
68
68
  let param = this.param ? this.param : {};
69
69
  evt.stopPropagation();
70
70
  evt.preventDefault();
71
- let width = util.win.top.screen.availWidth - 10;
72
- let height = util.win.top.screen.availHeight - 60;
71
+ let width = 0;
72
+ let height = 0;
73
+ let win;
74
+ try {
75
+ util.win.top.document;
76
+ win = util.win.top;
77
+ } catch (error) {
78
+ win = util.getMyWinTop();
79
+ }
80
+ width = win.screen.availWidth - 10;
81
+ height = win.screen.availHeight - 60;
73
82
  let flag = true;
74
83
  if (this.esForm) {
75
84
  let params = util.getParams({ url: this.link });
@@ -211,20 +220,20 @@ export default {
211
220
  if (flag) {
212
221
  if (this.specs) {
213
222
  if (typeof this.specs === 'boolean') {
214
- windows = util.win.top.open(
223
+ windows = util.win.open(
215
224
  util.urlJoinParams({ url: this.link, param: param }),
216
225
  this.name,
217
226
  `width=${width}px,height=${height}px,resizable=yes,status=yes,menubar=no,scrollbars=yes`
218
227
  );
219
228
  } else {
220
- windows = util.win.top.open(
229
+ windows = util.win.open(
221
230
  util.urlJoinParams({ url: this.link, param: param }),
222
231
  this.name,
223
232
  this.specs
224
233
  );
225
234
  }
226
235
  } else {
227
- windows = util.win.top.open(
236
+ windows = util.win.open(
228
237
  util.urlJoinParams({ url: this.link, param: param })
229
238
  );
230
239
  }
@@ -114,9 +114,11 @@ export default {
114
114
  },
115
115
  handleClick(obj) {
116
116
  this.$emit('handleClick', obj);
117
+ this.$emit('handle-click', obj);
117
118
  },
118
119
  handleCommand(res) {
119
120
  this.$emit('handleClick', { row: this.data, handle: res });
121
+ this.$emit('handle-click', { row: this.data, handle: res });
120
122
  },
121
123
  resetWidth() {
122
124
  this.$nextTick(() => {
@@ -800,10 +800,12 @@ export default {
800
800
  handleBlur(data) {
801
801
  this.events && this.events.blur && this.events.blur(data);
802
802
  this.$emit('formBlur', data);
803
+ this.$emit('form-blur', data);
803
804
  },
804
805
  handleFocus(data) {
805
806
  this.events && this.events.focus && this.events.focus(data);
806
807
  this.$emit('formFocus', data);
808
+ this.$emit('form-focus', data);
807
809
  },
808
810
  handleChange(data) {
809
811
  let { item } = data;
@@ -871,9 +873,11 @@ export default {
871
873
  }
872
874
  this.events && this.events.change && this.events.change(data);
873
875
  this.$emit('formChange', data);
876
+ this.$emit('form-change', data);
874
877
  },
875
878
  handleClick(data) {
876
879
  this.$emit('handleClick', data);
880
+ this.$emit('handle-click', data);
877
881
  },
878
882
  formatDate(date, fmt) {
879
883
  return util.formatDate(date, fmt);
@@ -5,6 +5,7 @@
5
5
  label-width="0"
6
6
  ref="component"
7
7
  v-loading="tableLoading"
8
+ element-loading-background="rgba(0, 0, 0, 0.65)"
8
9
  :model="tag === 'div' ? '' : datas"
9
10
  :element-loading-text="tableLoadingText"
10
11
  >
@@ -25,7 +26,8 @@
25
26
  submit: hanleSubmit,
26
27
  tabs: handleTabs,
27
28
  reset: hanleReset,
28
- cancel: hanleCancel
29
+ cancel: hanleCancel,
30
+ ...(toolbars.events || {})
29
31
  }"
30
32
  ></es-toolbar>
31
33
  <p v-if="title" ref="title" class="es-table-title" v-html="title"></p>
@@ -48,7 +50,9 @@
48
50
  tableHeight !== 'auto' && tableHeight !== false
49
51
  ? tableHeight
50
52
  : undefined,
51
- border: border
53
+ border: border,
54
+ infiniteScroll: getTableData,
55
+ infiniteScrollDisabled: infiniteDisabled
52
56
  }"
53
57
  v-on="{
54
58
  ...$listeners,
@@ -118,8 +122,12 @@
118
122
  </template>
119
123
  </el-table-column>
120
124
  </el-table>
125
+ <div v-if="infiniteScroll" class="es-table-page es-loading-page">
126
+ <span>共{{ config.totalCount }}条,</span>
127
+ <span>已加载{{ datas.length }}条</span>
128
+ </div>
121
129
  <es-pagination
122
- v-if="page"
130
+ v-else-if="page"
123
131
  v-bind="config"
124
132
  class="es-table-page"
125
133
  :style="{ 'text-align': page.position || 'center' }"
@@ -362,21 +370,16 @@ export default {
362
370
  }
363
371
  },
364
372
  rowData: [Object, Boolean],
365
- least: {
366
- type: Boolean,
367
- default: false
368
- },
373
+ least: Boolean,
369
374
  //保留搜索参数
370
- retainSearh: {
371
- type: Boolean,
372
- default: false
373
- }
375
+ retainSearh: Boolean,
376
+ infiniteScroll: Boolean
374
377
  },
375
378
  data() {
376
379
  return {
377
380
  requests: [],
378
381
  theadData: [],
379
- list: null,
382
+ list: [],
380
383
  tableLoading: this.loading,
381
384
  tableLoadingText: '加载中...',
382
385
  isFirsetCheck: false,
@@ -397,7 +400,8 @@ export default {
397
400
  options: {},
398
401
  icon: true,
399
402
  show: true,
400
- sysCodes: []
403
+ sysCodes: [],
404
+ infiniteDisabled: this.infiniteScroll
401
405
  };
402
406
  },
403
407
  computed: {
@@ -418,18 +422,22 @@ export default {
418
422
  });
419
423
  }
420
424
  if (this.numbers) {
425
+ let index = 1;
426
+ if (this.infiniteScroll) {
427
+ index = typeof this.index == 'boolean' ? 1 : this.index;
428
+ } else if (this.index || this.index === 0) {
429
+ index =
430
+ this.index === true
431
+ ? (this.config.pageNum - 1) * this.config.pageSize + 1
432
+ : this.index;
433
+ }
421
434
  thead.push({
422
435
  type: 'index',
423
436
  label: '序号',
424
437
  width: '70',
425
438
  align: 'center',
426
439
  fixed: 'left',
427
- index:
428
- this.index === true
429
- ? (this.config.pageNum - 1) * this.config.pageSize + 1
430
- : this.index === false
431
- ? 1
432
- : this.index
440
+ index: index
433
441
  });
434
442
  }
435
443
  if (this.theadData.length) {
@@ -445,14 +453,14 @@ export default {
445
453
  },
446
454
  datas: {
447
455
  get() {
448
- if (this.list) {
456
+ if (this.list && this.list.length) {
449
457
  return this.list;
450
458
  }
451
459
  if (
452
460
  this.page &&
453
461
  this.data &&
454
462
  this.data.length &&
455
- this.config.totalCount < this.data.length + 1
463
+ this.config.totalCount < this.data.length + 2
456
464
  ) {
457
465
  this.config.totalCount = this.data.length - this.lose;
458
466
  return this.data.filter((item, index) => {
@@ -741,12 +749,19 @@ export default {
741
749
  }
742
750
  this.data.splice(index, 0, data);
743
751
  this.$emit('dataChange', 'add', data);
752
+ this.$emit('data-change', 'add', data);
744
753
  this.$emit('btnClick', {
745
754
  event: 'addRow',
746
755
  row: data,
747
756
  index: index,
748
757
  data: this.data
749
758
  });
759
+ this.$emit('btn-click', {
760
+ event: 'addRow',
761
+ row: data,
762
+ index: index,
763
+ data: this.data
764
+ });
750
765
  } else {
751
766
  let index = this.data.length;
752
767
  if (this.page) {
@@ -780,12 +795,19 @@ export default {
780
795
  }
781
796
  this.data.splice(index, 1);
782
797
  this.$emit('dataChange', 'delete', data);
798
+ this.$emit('data-change', 'delete', data);
783
799
  this.$emit('btnClick', {
784
800
  event: 'deleteRow',
785
801
  row: data,
786
802
  index: index,
787
803
  data: this.data
788
804
  });
805
+ this.$emit('btn-click', {
806
+ event: 'deleteRow',
807
+ row: data,
808
+ index: index,
809
+ data: this.data
810
+ });
789
811
  },
790
812
  checkSelect(newVal) {
791
813
  this.$nextTick(() => {
@@ -850,7 +872,7 @@ export default {
850
872
  if (!this.url) {
851
873
  return;
852
874
  }
853
- if (first !== false) {
875
+ if (first !== false && !this.infiniteScroll) {
854
876
  this.config.pageNum = 1;
855
877
  }
856
878
  this.tableLoadingText = '加载中...';
@@ -882,20 +904,33 @@ export default {
882
904
  .then((res) => {
883
905
  this.tableLoading = false;
884
906
  if (res.rCode === 0 || res.status === 'success') {
885
- this.$refs.oaTable &&
886
- this.$refs.oaTable.resetScroll &&
887
- this.$refs.oaTable.resetScroll(0, 0);
888
907
  let results =
889
908
  this.parseData !== undefined
890
909
  ? this.parseData(res.results || res.data || res)
891
910
  : res.results || res.data;
892
- this.list = results.data || results.records || results.list || [];
911
+ if (this.infiniteScroll) {
912
+ this.list = this.list.concat(
913
+ results.data || results.records || results.list
914
+ );
915
+ this.config.pageNum += 1;
916
+ } else {
917
+ this.list = results.data || results.records || results.list || [];
918
+ this.$refs.oaTable &&
919
+ this.$refs.oaTable.resetScroll &&
920
+ this.$refs.oaTable.resetScroll(0, 0);
921
+ }
893
922
  this.config.totalCount =
894
923
  results.count || results.total || results.totalCount;
895
924
  this.checked &&
896
925
  this.$nextTick(() => {
897
926
  this.checkSelect(this.checked);
898
927
  });
928
+ if (
929
+ this.infiniteScroll &&
930
+ this.config.totalCount === this.list.length
931
+ ) {
932
+ this.infiniteDisabled = true;
933
+ }
899
934
  } else {
900
935
  this.list = [];
901
936
  //this.tableHeight = false;
@@ -1221,6 +1256,7 @@ export default {
1221
1256
  sizeChange(res) {
1222
1257
  this.config.pageSize = res;
1223
1258
  this.config.pageNum = 1;
1259
+ this.checkSelect(this.checked);
1224
1260
  this.$emit('page-size-change', res);
1225
1261
  if (this.url) {
1226
1262
  this.getTableData({ where: this.wheres, first: false });
@@ -1228,6 +1264,7 @@ export default {
1228
1264
  },
1229
1265
  currentChange(res) {
1230
1266
  this.config.pageNum = res;
1267
+ this.checkSelect(this.checked);
1231
1268
  this.$emit('page-current-change', res);
1232
1269
  if (this.url) {
1233
1270
  this.getTableData({ where: this.wheres, first: false });
@@ -1235,10 +1272,12 @@ export default {
1235
1272
  },
1236
1273
  preClick(res) {
1237
1274
  this.config.pageNum = res;
1275
+ this.checkSelect(this.checked);
1238
1276
  this.$emit('prev', res);
1239
1277
  },
1240
1278
  nextClick(res) {
1241
1279
  this.config.pageNum = res;
1280
+ this.checkSelect(this.checked);
1242
1281
  this.$emit('next', res);
1243
1282
  },
1244
1283
  hanleSearch(data) {
@@ -219,12 +219,15 @@ export default {
219
219
  methods: {
220
220
  handleBlur(data) {
221
221
  this.$emit('formBlur', data);
222
+ this.$emit('form-blur', data);
222
223
  },
223
224
  handleFocus(data) {
224
225
  this.$emit('formFocus', data);
226
+ this.$emit('form-focus', data);
225
227
  },
226
228
  handleChange(data) {
227
229
  this.$emit('formChange', data);
230
+ this.$emit('form-change', data);
228
231
  },
229
232
  handeClick(res) {
230
233
  let { item, data, event } = res;
@@ -379,8 +379,17 @@ export default {
379
379
  };
380
380
  },
381
381
  created() {
382
- const availWidth = util.win.top.document.body.offsetWidth - 260;
383
- const availHeight = util.win.top.document.body.offsetHeight - 60;
382
+ let availWidth = 0;
383
+ let availHeight = 0;
384
+ let win;
385
+ try {
386
+ util.win.top.document;
387
+ win = util.win.top;
388
+ } catch (error) {
389
+ win = util.getMyWinTop();
390
+ }
391
+ availWidth = win.document.body.offsetWidth - 260;
392
+ availHeight = win.document.body.offsetHeight - 60;
384
393
  this.sizes.max = { width: `${availWidth}px`, height: `${availHeight}px` };
385
394
  if (
386
395
  this.size === 'full' ||