eoss-ui 0.5.43 → 0.5.44

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 (134) hide show
  1. package/CHANGELOG.md +929 -0
  2. package/README.md +18 -0
  3. package/lib/button-group.js +120 -69
  4. package/lib/button.js +133 -72
  5. package/lib/checkbox-group.js +116 -67
  6. package/lib/data-table-form.js +126 -74
  7. package/lib/data-table.js +210 -104
  8. package/lib/date-picker.js +116 -67
  9. package/lib/dialog.js +132 -71
  10. package/lib/eoss-ui.common.js +704 -411
  11. package/lib/flow-group.js +144 -74
  12. package/lib/flow-list.js +120 -69
  13. package/lib/flow.js +169 -99
  14. package/lib/form.js +125 -69
  15. package/lib/handle-user.js +127 -70
  16. package/lib/handler.js +145 -92
  17. package/lib/index.js +1 -1
  18. package/lib/input-number.js +116 -67
  19. package/lib/input.js +116 -67
  20. package/lib/login.js +149 -97
  21. package/lib/main.js +234 -152
  22. package/lib/nav.js +116 -67
  23. package/lib/page.js +116 -67
  24. package/lib/player.js +116 -67
  25. package/lib/qr-code.js +116 -67
  26. package/lib/radio-group.js +116 -67
  27. package/lib/retrial-auth.js +130 -71
  28. package/lib/select-ganged.js +116 -67
  29. package/lib/select.js +116 -67
  30. package/lib/selector-panel.js +131 -74
  31. package/lib/selector.js +116 -67
  32. package/lib/sizer.js +116 -67
  33. package/lib/steps.js +116 -67
  34. package/lib/switch.js +116 -67
  35. package/lib/table-form.js +123 -72
  36. package/lib/tabs.js +119 -69
  37. package/lib/theme-chalk/data-table.css +1 -1
  38. package/lib/theme-chalk/index.css +1 -1
  39. package/lib/tips.js +116 -67
  40. package/lib/tree-group.js +151 -71
  41. package/lib/tree.js +116 -67
  42. package/lib/upload.js +136 -78
  43. package/lib/utils/util.js +116 -67
  44. package/lib/wujie.js +116 -67
  45. package/lib/wxlogin.js +116 -67
  46. package/package.json +2 -2
  47. package/packages/button/src/main.vue +17 -5
  48. package/packages/button-group/src/main.vue +2 -0
  49. package/packages/data-table/src/column.vue +4 -0
  50. package/packages/data-table/src/main.vue +66 -26
  51. package/packages/data-table-form/src/tbody.vue +3 -0
  52. package/packages/dialog/src/main.vue +14 -2
  53. package/packages/flow/src/component/CustomPreset.vue +14 -7
  54. package/packages/flow/src/component/FileList.vue +4 -2
  55. package/packages/flow/src/component/Preset.vue +11 -13
  56. package/packages/flow/src/form.vue +5 -4
  57. package/packages/flow/src/main.vue +7 -7
  58. package/packages/flow/src/table.vue +8 -1
  59. package/packages/flow-group/src/main.vue +26 -5
  60. package/packages/form/src/main.vue +12 -0
  61. package/packages/form/src/table.vue +2 -0
  62. package/packages/handle-user/src/main.vue +9 -1
  63. package/packages/handler/src/main.vue +31 -27
  64. package/packages/login/src/main.vue +35 -31
  65. package/packages/main/src/async-component/index.vue +4 -2
  66. package/packages/main/src/main.vue +62 -30
  67. package/packages/main/src/userinfo.vue +29 -25
  68. package/packages/retrial-auth/src/main.vue +12 -2
  69. package/packages/selector-panel/src/selection.vue +6 -0
  70. package/packages/tabs/src/main.vue +1 -0
  71. package/packages/theme-chalk/lib/base.css +1 -0
  72. package/packages/theme-chalk/lib/button-group.css +1 -0
  73. package/packages/theme-chalk/lib/button.css +1 -0
  74. package/packages/theme-chalk/lib/card.css +1 -0
  75. package/packages/theme-chalk/lib/cascader.css +0 -0
  76. package/packages/theme-chalk/lib/checkbox-group.css +1 -0
  77. package/packages/theme-chalk/lib/clients.css +1 -0
  78. package/packages/theme-chalk/lib/data-table-form.css +1 -0
  79. package/packages/theme-chalk/lib/data-table.css +1 -0
  80. package/packages/theme-chalk/lib/date-picker.css +1 -0
  81. package/packages/theme-chalk/lib/dialog.css +1 -0
  82. package/packages/theme-chalk/lib/enterprise.css +1 -0
  83. package/packages/theme-chalk/lib/error-page.css +1 -0
  84. package/packages/theme-chalk/lib/flow-chart.css +0 -0
  85. package/packages/theme-chalk/lib/flow-group.css +1 -0
  86. package/packages/theme-chalk/lib/flow-list.css +1 -0
  87. package/packages/theme-chalk/lib/flow.css +1 -0
  88. package/packages/theme-chalk/lib/fonts/iconfont.ttf +0 -0
  89. package/packages/theme-chalk/lib/fonts/iconfont.woff +0 -0
  90. package/packages/theme-chalk/lib/form.css +1 -0
  91. package/packages/theme-chalk/lib/handle-user.css +1 -0
  92. package/packages/theme-chalk/lib/handler.css +1 -0
  93. package/packages/theme-chalk/lib/icon.css +1 -0
  94. package/packages/theme-chalk/lib/icons.css +1 -0
  95. package/packages/theme-chalk/lib/index.css +1 -0
  96. package/packages/theme-chalk/lib/input-number.css +0 -0
  97. package/packages/theme-chalk/lib/input.css +1 -0
  98. package/packages/theme-chalk/lib/label.css +1 -0
  99. package/packages/theme-chalk/lib/layout.css +1 -0
  100. package/packages/theme-chalk/lib/login.css +1 -0
  101. package/packages/theme-chalk/lib/main.css +1 -0
  102. package/packages/theme-chalk/lib/mainComp.css +0 -0
  103. package/packages/theme-chalk/lib/menu.css +1 -0
  104. package/packages/theme-chalk/lib/nav.css +1 -0
  105. package/packages/theme-chalk/lib/notify.css +0 -0
  106. package/packages/theme-chalk/lib/page.css +1 -0
  107. package/packages/theme-chalk/lib/pagination.css +1 -0
  108. package/packages/theme-chalk/lib/player.css +1 -0
  109. package/packages/theme-chalk/lib/qr-code.css +1 -0
  110. package/packages/theme-chalk/lib/radio-group.css +1 -0
  111. package/packages/theme-chalk/lib/retrial-auth.css +1 -0
  112. package/packages/theme-chalk/lib/select-ganged.css +1 -0
  113. package/packages/theme-chalk/lib/select.css +1 -0
  114. package/packages/theme-chalk/lib/selector-panel.css +1 -0
  115. package/packages/theme-chalk/lib/selector.css +1 -0
  116. package/packages/theme-chalk/lib/sizer.css +1 -0
  117. package/packages/theme-chalk/lib/steps.css +1 -0
  118. package/packages/theme-chalk/lib/switch.css +1 -0
  119. package/packages/theme-chalk/lib/table-form.css +0 -0
  120. package/packages/theme-chalk/lib/tabs-panel.css +0 -0
  121. package/packages/theme-chalk/lib/tabs.css +1 -0
  122. package/packages/theme-chalk/lib/tips.css +1 -0
  123. package/packages/theme-chalk/lib/toolbar.css +1 -0
  124. package/packages/theme-chalk/lib/tree-group.css +1 -0
  125. package/packages/theme-chalk/lib/tree.css +1 -0
  126. package/packages/theme-chalk/lib/upload.css +1 -0
  127. package/packages/theme-chalk/lib/wujie.css +0 -0
  128. package/packages/theme-chalk/lib/wxlogin.css +1 -0
  129. package/packages/theme-chalk/src/data-table.scss +6 -0
  130. package/packages/tree-group/src/main.vue +36 -2
  131. package/packages/upload/src/main.vue +15 -6
  132. package/src/index.js +1 -1
  133. package/src/utils/util.js +132 -80
  134. 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)) {
@@ -1988,7 +2004,12 @@ var isLogined = function isLogined(_ref8) {
1988
2004
  }).catch(function () {});
1989
2005
  return;
1990
2006
  }
1991
- var pathname = win.top.location.pathname;
2007
+ var pathname = '';
2008
+ try {
2009
+ pathname = win.top.location.pathname;
2010
+ } catch (error) {
2011
+ pathname = win.location.pathname;
2012
+ }
1992
2013
  if (loginPage) {
1993
2014
  sessionStorage.setItem('loginPage', loginPage);
1994
2015
  if (!startWith(loginPage, ['http', '/'], true)) {
@@ -2029,22 +2050,38 @@ var isLogined = function isLogined(_ref8) {
2029
2050
  deviceUnique: results.deviceUnique
2030
2051
  }
2031
2052
  });
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);
2053
+ try {
2054
+ var url = delUrlParam({
2055
+ url: win.top.location.href,
2056
+ key: ['serverId', 'authType', 'code', 'sessionId']
2057
+ });
2058
+ win.top.location.href = url;
2059
+ setTimeout(function () {
2060
+ win.top.location.reload();
2061
+ }, 200);
2062
+ } catch (error) {
2063
+ var _url2 = delUrlParam({
2064
+ url: win.location.href,
2065
+ key: ['serverId', 'authType', 'code', 'sessionId']
2066
+ });
2067
+ win.location.href = _url2;
2068
+ setTimeout(function () {
2069
+ win.location.reload();
2070
+ }, 200);
2071
+ }
2040
2072
  break;
2041
2073
  case 1:
2042
2074
  break;
2043
2075
  case 2:
2044
2076
  break;
2045
2077
  case 3:
2046
- var href = results.authorizeUrl.replace('{redirectUri}', encodeURIComponent(win.top.location.href));
2047
- win.top.location.href = href;
2078
+ try {
2079
+ var href = results.authorizeUrl.replace('{redirectUri}', encodeURIComponent(win.top.location.href));
2080
+ win.top.location.href = href;
2081
+ } catch (error) {
2082
+ var _href = results.authorizeUrl.replace('{redirectUri}', encodeURIComponent(win.location.href));
2083
+ win.location.href = _href;
2084
+ }
2048
2085
  break;
2049
2086
  case 4:
2050
2087
  eoss_element__WEBPACK_IMPORTED_MODULE_5__["MessageBox"].alert(results.msg ? results.msg : '账号未绑定,账号密码登录后自动绑定!', '提示', {
@@ -2052,14 +2089,18 @@ var isLogined = function isLogined(_ref8) {
2052
2089
  type: 'error',
2053
2090
  callback: function callback() {
2054
2091
  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');
2092
+ try {
2093
+ if (loginPage) {
2094
+ win.top.location.replace(loginPage);
2095
+ } else if (document.referrer) {
2096
+ win.top.location.replace(document.referrer);
2097
+ } else if (win.top.location.href.indexOf('main.html') > -1) {
2098
+ win.top.location.href = './login.html';
2099
+ } else {
2100
+ next('/login');
2101
+ }
2102
+ } catch (error) {
2103
+ win.postMessage({ type: 1 }, '*');
2063
2104
  }
2064
2105
  }
2065
2106
  });
@@ -2071,14 +2112,18 @@ var isLogined = function isLogined(_ref8) {
2071
2112
  confirmButtonText: '确定',
2072
2113
  type: 'error',
2073
2114
  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');
2115
+ try {
2116
+ if (loginPage) {
2117
+ win.top.location.replace(loginPage);
2118
+ } else if (document.referrer) {
2119
+ win.top.location.replace(document.referrer);
2120
+ } else if (win.top.location.href.indexOf('main.html') > -1) {
2121
+ win.top.location.href = './login.html';
2122
+ } else {
2123
+ next('/login');
2124
+ }
2125
+ } catch (error) {
2126
+ win.postMessage({ type: 1 }, '*');
2082
2127
  }
2083
2128
  }
2084
2129
  });
@@ -2091,14 +2136,18 @@ var isLogined = function isLogined(_ref8) {
2091
2136
  next();
2092
2137
  }
2093
2138
  } 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');
2139
+ try {
2140
+ if (loginPage) {
2141
+ win.top.location.replace(loginPage);
2142
+ } else if (document.referrer) {
2143
+ win.top.location.replace(document.referrer);
2144
+ } else if (win.top.location.href.indexOf('main.html') > -1) {
2145
+ win.top.location.href = './login.html';
2146
+ } else {
2147
+ next('/login');
2148
+ }
2149
+ } catch (error) {
2150
+ win.postMessage({ type: 1 }, '*');
2102
2151
  }
2103
2152
  }
2104
2153
  }
@@ -2528,30 +2577,30 @@ var setStorage = function setStorage(_ref14) {
2528
2577
  if (value && (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object') {
2529
2578
  value = JSON.stringify(value);
2530
2579
  }
2531
- if (type === undefined || type === 'sessionStorage') {
2580
+ if (type === 'localStorage') {
2532
2581
  if (typeof key === 'string') {
2533
- sessionStorage.setItem(key, value);
2582
+ localStorage.setItem(key, value);
2534
2583
  } else if (Array.isArray(key)) {
2535
2584
  for (var i in key) {
2536
- sessionStorage.setItem(key[i], value);
2585
+ localStorage.setItem(key[i], value);
2537
2586
  }
2538
2587
  } else {
2539
2588
  for (var _i6 in key) {
2540
2589
  var val = _typeof(key[_i6]) === 'object' ? JSON.stringify(key[_i6]) : key[_i6];
2541
- sessionStorage.setItem(_i6, val);
2590
+ localStorage.setItem(_i6, val);
2542
2591
  }
2543
2592
  }
2544
2593
  } else {
2545
2594
  if (typeof key === 'string') {
2546
- localStorage.setItem(key, value);
2595
+ sessionStorage.setItem(key, value);
2547
2596
  } else if (Array.isArray(key)) {
2548
2597
  for (var _i7 in key) {
2549
- localStorage.setItem(key[_i7], value);
2598
+ sessionStorage.setItem(key[_i7], value);
2550
2599
  }
2551
2600
  } else {
2552
2601
  for (var _i8 in key) {
2553
2602
  var _val = _typeof(key[_i8]) === 'object' ? JSON.stringify(key[_i8]) : key[_i8];
2554
- localStorage.setItem(_i8, _val);
2603
+ sessionStorage.setItem(_i8, _val);
2555
2604
  }
2556
2605
  }
2557
2606
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "eoss-ui",
3
- "version": "0.5.43",
3
+ "version": "0.5.44",
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.85",
100
100
  "es6-promise": "^4.0.5",
101
101
  "eslint": "4.18.2",
102
102
  "eslint-config-elemefe": "0.1.1",
@@ -68,8 +68,20 @@ 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
+ try {
74
+ width = util.win.top.screen.availWidth - 10;
75
+ height = util.win.top.screen.availHeight - 60;
76
+ } catch (error) {
77
+ try {
78
+ width = util.win.parent.screen.availWidth - 10;
79
+ height = util.win.parent.screen.availHeight - 60;
80
+ } catch (error) {
81
+ width = util.win.screen.availWidth - 10;
82
+ height = util.win.screen.availHeight - 60;
83
+ }
84
+ }
73
85
  let flag = true;
74
86
  if (this.esForm) {
75
87
  let params = util.getParams({ url: this.link });
@@ -211,20 +223,20 @@ export default {
211
223
  if (flag) {
212
224
  if (this.specs) {
213
225
  if (typeof this.specs === 'boolean') {
214
- windows = util.win.top.open(
226
+ windows = util.win.open(
215
227
  util.urlJoinParams({ url: this.link, param: param }),
216
228
  this.name,
217
229
  `width=${width}px,height=${height}px,resizable=yes,status=yes,menubar=no,scrollbars=yes`
218
230
  );
219
231
  } else {
220
- windows = util.win.top.open(
232
+ windows = util.win.open(
221
233
  util.urlJoinParams({ url: this.link, param: param }),
222
234
  this.name,
223
235
  this.specs
224
236
  );
225
237
  }
226
238
  } else {
227
- windows = util.win.top.open(
239
+ windows = util.win.open(
228
240
  util.urlJoinParams({ url: this.link, param: param })
229
241
  );
230
242
  }
@@ -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(() => {
@@ -841,6 +863,7 @@ export default {
841
863
  });
842
864
  },
843
865
  getTableData(res) {
866
+ console.log(11212);
844
867
  let where;
845
868
  let first;
846
869
  if (res) {
@@ -850,7 +873,7 @@ export default {
850
873
  if (!this.url) {
851
874
  return;
852
875
  }
853
- if (first !== false) {
876
+ if (first !== false && !this.infiniteScroll) {
854
877
  this.config.pageNum = 1;
855
878
  }
856
879
  this.tableLoadingText = '加载中...';
@@ -882,20 +905,33 @@ export default {
882
905
  .then((res) => {
883
906
  this.tableLoading = false;
884
907
  if (res.rCode === 0 || res.status === 'success') {
885
- this.$refs.oaTable &&
886
- this.$refs.oaTable.resetScroll &&
887
- this.$refs.oaTable.resetScroll(0, 0);
888
908
  let results =
889
909
  this.parseData !== undefined
890
910
  ? this.parseData(res.results || res.data || res)
891
911
  : res.results || res.data;
892
- this.list = results.data || results.records || results.list || [];
912
+ if (this.infiniteScroll) {
913
+ this.list = this.list.concat(
914
+ results.data || results.records || results.list
915
+ );
916
+ this.config.pageNum += 1;
917
+ } else {
918
+ this.list = results.data || results.records || results.list || [];
919
+ this.$refs.oaTable &&
920
+ this.$refs.oaTable.resetScroll &&
921
+ this.$refs.oaTable.resetScroll(0, 0);
922
+ }
893
923
  this.config.totalCount =
894
924
  results.count || results.total || results.totalCount;
895
925
  this.checked &&
896
926
  this.$nextTick(() => {
897
927
  this.checkSelect(this.checked);
898
928
  });
929
+ if (
930
+ this.infiniteScroll &&
931
+ this.config.totalCount === this.list.length
932
+ ) {
933
+ this.infiniteDisabled = true;
934
+ }
899
935
  } else {
900
936
  this.list = [];
901
937
  //this.tableHeight = false;
@@ -1221,6 +1257,7 @@ export default {
1221
1257
  sizeChange(res) {
1222
1258
  this.config.pageSize = res;
1223
1259
  this.config.pageNum = 1;
1260
+ this.checkSelect(this.checked);
1224
1261
  this.$emit('page-size-change', res);
1225
1262
  if (this.url) {
1226
1263
  this.getTableData({ where: this.wheres, first: false });
@@ -1228,6 +1265,7 @@ export default {
1228
1265
  },
1229
1266
  currentChange(res) {
1230
1267
  this.config.pageNum = res;
1268
+ this.checkSelect(this.checked);
1231
1269
  this.$emit('page-current-change', res);
1232
1270
  if (this.url) {
1233
1271
  this.getTableData({ where: this.wheres, first: false });
@@ -1235,10 +1273,12 @@ export default {
1235
1273
  },
1236
1274
  preClick(res) {
1237
1275
  this.config.pageNum = res;
1276
+ this.checkSelect(this.checked);
1238
1277
  this.$emit('prev', res);
1239
1278
  },
1240
1279
  nextClick(res) {
1241
1280
  this.config.pageNum = res;
1281
+ this.checkSelect(this.checked);
1242
1282
  this.$emit('next', res);
1243
1283
  },
1244
1284
  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,20 @@ 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
+ try {
385
+ availWidth = util.win.top.document.body.offsetWidth - 260;
386
+ availHeight = util.win.top.document.body.offsetHeight - 60;
387
+ } catch (error) {
388
+ try {
389
+ availWidth = util.win.parent.document.body.offsetWidth - 260;
390
+ availHeight = util.win.parent.document.body.offsetHeight - 60;
391
+ } catch (error) {
392
+ availWidth = util.win.document.body.offsetWidth - 260;
393
+ availHeight = util.win.document.body.offsetHeight - 60;
394
+ }
395
+ }
384
396
  this.sizes.max = { width: `${availWidth}px`, height: `${availHeight}px` };
385
397
  if (
386
398
  this.size === 'full' ||