vap1 0.2.7 → 0.2.8

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.
@@ -64,11 +64,6 @@ var Upagination_1 = require("../_common/Upagination");
64
64
  var utils_1 = require("../../utils");
65
65
  var _register_1 = require("./_register");
66
66
  var HEIGHT_OMIT = 'ubox-omit';
67
- var getParentByClassName = function (el, clazz) {
68
- if (el.classList.contains(clazz))
69
- return el;
70
- return getParentByClassName(el.parentElement, clazz);
71
- };
72
67
  var BoxContext = (0, react_1.createContext)(null);
73
68
  /**
74
69
  * 说明:如果需要使用 useBox 获取BOX内部状态
@@ -110,7 +105,7 @@ exports.Box = (0, react_1.forwardRef)(function (props, ref) {
110
105
  style.display = 'none';
111
106
  }
112
107
  else {
113
- var container = getParentByClassName(rootRef.current.parentElement, 'c-box');
108
+ var container = utils_1.PageUtil.getParentByClassName(rootRef.current.parentElement, 'c-box');
114
109
  style.height = Math.floor(container.parentElement.getBoundingClientRect().height);
115
110
  }
116
111
  }
@@ -72,6 +72,9 @@ var InnerSearchBarByField = function (props) {
72
72
  lodash_1.default.keys(prev).map(function (item) {
73
73
  data[item] = null;
74
74
  });
75
+ if (props.default) {
76
+ return lodash_1.default.extend({}, data, props.default);
77
+ }
75
78
  return data;
76
79
  }); };
77
80
  var search = function () { return props.onSearch(data); };
@@ -118,14 +121,13 @@ var InnerSearchBarByField = function (props) {
118
121
  field.span = SearchField.defaultSpan || 1;
119
122
  }
120
123
  var tryfill = rowUse + field.span;
121
- if (tryfill > cols) {
124
+ if (tryfill > cols && rowUse != 0) {
122
125
  rows.push([{ field: field, SearchField: SearchField.component }]);
123
126
  rowUse = field.span;
127
+ return;
124
128
  }
125
- else {
126
- rows[rows.length - 1].push({ field: field, SearchField: SearchField.component });
127
- rowUse += field.span;
128
- }
129
+ rows[rows.length - 1].push({ field: field, SearchField: SearchField.component });
130
+ rowUse += field.span;
129
131
  });
130
132
  return { rows: rows, isOutSide: isOutSide };
131
133
  }, [props.fields]);
@@ -216,9 +218,15 @@ var InnerSearchBarByField = function (props) {
216
218
  !isAwaysExpand && react_1.default.createElement(Button_1.Button, { disabled: props.disabled, icon: 'filter', onClick: function (e) { return utils_1.PageUtil.stopEvent(e, function () { return setIsExpand(false); }); } }, utils_1.i18n.txt(_i18n_1.V.BTN_LESS)))
217
219
  ]; };
218
220
  var fieldsStyle = (0, react_1.useMemo)(function () {
219
- if (layout == null)
221
+ if (layout == null || layout.rows.length == 0)
220
222
  return {};
221
- var width = cols * (labelWidth + inputWidth);
223
+ var width = 0;
224
+ if (layout.rows.length == 1) {
225
+ width = (labelWidth + inputWidth) * lodash_1.default.sum(layout.rows[0].map(function (item) { return item.field.span; }));
226
+ }
227
+ else {
228
+ width = cols * (labelWidth + inputWidth);
229
+ }
222
230
  if (props.__innnerPopup)
223
231
  return { width: width + 12 };
224
232
  return { minWidth: width + 90 };
@@ -83,19 +83,7 @@ var SearchBarByKeyword = function (props) {
83
83
  react_1.default.createElement(ByField_1.InnerSearchBarByField, __assign({}, props, { __innerExpand: true, __innerOutside: true, __innnerPopup: true, onSearch: function (param) {
84
84
  props.onSearch(param);
85
85
  setOpen(false);
86
- } })))), overlayClassName: 'c-searchbar-keyword-more', getPopupContainer: function () {
87
- var maskEls = document.getElementsByClassName('ant-modal-mask');
88
- var hasMask = false;
89
- for (var i = 0, _i = maskEls.length; i < _i; i++) {
90
- if (!maskEls.item(i).classList.contains('ant-modal-mask-hidden')) {
91
- hasMask = true;
92
- break;
93
- }
94
- }
95
- if (!hasMask)
96
- return document.getElementById('vap-app-content');
97
- return spanRef.current.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement;
98
- } }));
86
+ } })))), overlayClassName: 'c-searchbar-keyword-more', getPopupContainer: function (triggerNode) { return utils_1.PageUtil.getParentByClassName(triggerNode, 'c-searchbar'); } }));
99
87
  }
100
88
  return react_1.default.createElement(antd_1.Input.Search, __assign({}, inputProps, suffixProps, { onSearch: function (keyword) { return props.onSearch({ keyword_: keyword }); }, enterButton: utils_1.i18n.txt(_i18n_1.V.BTN_SEARCH) }));
101
89
  };
@@ -108,6 +108,16 @@ var _VTable = (0, react_1.forwardRef)(function (props, ref) {
108
108
  if (props.model.mode == 'static')
109
109
  update();
110
110
  }, [pageSize, pageNo]);
111
+ // 更新选中
112
+ (0, react_1.useLayoutEffect)(function () {
113
+ var diff = lodash_1.default.xor(ref.current.selected[0], list.map(function (item) { return item[rowKey]; }));
114
+ if (diff.length > 0) {
115
+ var toRemove_1 = new Set(diff);
116
+ ref.current.selected[0] = ref.current.selected[0].filter(function (key) { return !toRemove_1.has(key); });
117
+ ref.current.selected[1] = ref.current.selected[1].filter(function (item) { return !toRemove_1.has(item[rowKey]); });
118
+ ref.current.onSelected();
119
+ }
120
+ }, [list]);
111
121
  // 计算 clolum 及 高亮keyword
112
122
  var columns = (0, react_1.useMemo)(function () {
113
123
  var cols = [];
@@ -147,7 +147,7 @@ var getMaxTitleWidth = function (field) {
147
147
  // 遍历字段,计算表单属性
148
148
  var _LOOP = function (fs, maxLabel, isInfo, isEdit, isAdd, hiddFields, disableFields) {
149
149
  fs.map(function (field) {
150
- // @ts-ignore // 兼容 && 写法
150
+ // @ts-ignore // 兼容 `&&` 写法
151
151
  if (field == null || field === false)
152
152
  return;
153
153
  var show = true;
@@ -388,8 +388,15 @@ var getValue = function (multipleFields, values, initRef) {
388
388
  });
389
389
  return;
390
390
  }
391
- if (RTNData[property] !== undefined && RTNData[property] !== null) {
392
- data[property] = RTNData[property];
391
+ if (lodash_1.default.has(RTNData, property) && lodash_1.default.get(RTNData, property) !== null) {
392
+ var value = lodash_1.default.get(RTNData, property);
393
+ // 说明:此处留争议:自动去除字符串类型的前后空格
394
+ if (lodash_1.default.isString(value)) {
395
+ lodash_1.default.set(data, property, lodash_1.default.trim(value));
396
+ }
397
+ else {
398
+ lodash_1.default.set(data, property, value);
399
+ }
393
400
  }
394
401
  });
395
402
  return data;
@@ -17,6 +17,8 @@ export type FormFieldProps = {
17
17
  /**
18
18
  * 说明,必须使用 props.onChange 事件接收值的变化内容
19
19
  * 不然会有(联动) Bug
20
+ * 第一个参数为变化的值,多字段时,需要传对象
21
+ * 第二个参数为扩展数据,传递时,会带入到字段联动link/call 的第三个参数中
20
22
  */
21
23
  onChange: Function;
22
24
  /**
@@ -93,7 +93,7 @@ var antd_1 = require("antd");
93
93
  var BasicLayout = /** @class */ (function (_super) {
94
94
  __extends(BasicLayout, _super);
95
95
  function BasicLayout() {
96
- var _this = _super !== null && _super.apply(this, arguments) || this;
96
+ var _this = _super.apply(this, __spreadArray([], __read(arguments), false)) || this;
97
97
  _this.state = { siders: [] };
98
98
  return _this;
99
99
  }
@@ -63,6 +63,28 @@ var DateRange = function (props) {
63
63
  var endPlaceholder = props.endPlaceholder ? props.endPlaceholder : (props.showTime ? utils_1.i18n.getText(_i18n_1.V.DATETIME_END) : utils_1.i18n.getText(_i18n_1.V.DATE_END));
64
64
  return [FORMAT, startPlaceholder, endPlaceholder];
65
65
  }, [props.showTime, props.startPlaceholder, props.endPlaceholder]), 3), FORMAT = _c[0], startPlaceholder = _c[1], endPlaceholder = _c[2];
66
+ (0, react_1.useLayoutEffect)(function () {
67
+ if (props.start == null && start == null)
68
+ return;
69
+ if (props.start == null)
70
+ setStart(undefined);
71
+ var newStart = (0, dayjs_1.default)(props.start);
72
+ if (start == null)
73
+ setStart(newStart);
74
+ if (newStart.diff(start) != 0)
75
+ setStart(newStart);
76
+ }, [props.start]);
77
+ (0, react_1.useLayoutEffect)(function () {
78
+ if (props.end == null && end == null)
79
+ return;
80
+ if (props.end == null)
81
+ setEnd(undefined);
82
+ var newEnd = (0, dayjs_1.default)(props.end);
83
+ if (end == null)
84
+ setEnd(newEnd);
85
+ if (newEnd.diff(end) != 0)
86
+ setEnd(newEnd);
87
+ }, [props.end]);
66
88
  // 是否在范围内
67
89
  var inRange = (0, react_1.useCallback)(function (value) {
68
90
  if (props.minDate) {
package/package.json CHANGED
@@ -1 +1 @@
1
- {"name":"vap1","version":"0.2.7","description":"vap1, Both support MicroService and SAP FrameWork, Support IE>9","main":"index.js","author":"Xiang da","license":"ISC"}
1
+ {"name":"vap1","version":"0.2.8","description":"vap1, Both support MicroService and SAP FrameWork, Support IE>9","main":"index.js","author":"Xiang da","license":"ISC"}
@@ -65,4 +65,5 @@ type SubmitFormOptions = {
65
65
  urlParam?: Record<string, string | number | boolean>;
66
66
  };
67
67
  export declare const submitForm: (options: SubmitFormOptions) => void;
68
+ export declare const getParentByClassName: (el: HTMLElement, clazz: string, defaultNode?: HTMLElement) => HTMLElement;
68
69
  export {};
package/utils/PageUtil.js CHANGED
@@ -50,7 +50,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
50
50
  return (mod && mod.__esModule) ? mod : { "default": mod };
51
51
  };
52
52
  Object.defineProperty(exports, "__esModule", { value: true });
53
- exports.submitForm = exports.waitFor = exports.getOptions = exports.currentApp = exports.clearURL = exports.resolveURL = exports.hasRole = exports.IpToInt = exports.paramToUri = exports.stopEvent = void 0;
53
+ exports.getParentByClassName = exports.submitForm = exports.waitFor = exports.getOptions = exports.currentApp = exports.clearURL = exports.resolveURL = exports.hasRole = exports.IpToInt = exports.paramToUri = exports.stopEvent = void 0;
54
54
  var lodash_1 = __importDefault(require("lodash"));
55
55
  var StringUtil_1 = require("./StringUtil");
56
56
  var _Support_1 = require("./_Support");
@@ -213,3 +213,11 @@ var submitForm = function (options) {
213
213
  window.setTimeout(function () { return document.body.removeChild(form); }, 200);
214
214
  };
215
215
  exports.submitForm = submitForm;
216
+ var getParentByClassName = function (el, clazz, defaultNode) {
217
+ if (el.classList.contains(clazz))
218
+ return el;
219
+ if (el.parentElement == null)
220
+ return defaultNode || el;
221
+ return (0, exports.getParentByClassName)(el.parentElement, clazz, defaultNode);
222
+ };
223
+ exports.getParentByClassName = getParentByClassName;
@@ -1,3 +1,11 @@
1
1
  import React from "react";
2
2
  export declare const fileRender: (fileId: string, fileName?: string) => React.JSX.Element;
3
- export declare const imgRender: (fileId: string) => void;
3
+ type ImgRenderOptions = {
4
+ style?: React.CSSProperties;
5
+ width?: number;
6
+ height?: number;
7
+ default?: string;
8
+ };
9
+ export declare const ImgRender: (option?: ImgRenderOptions) => (link: string) => React.JSX.Element;
10
+ export declare const imgRender: (link: string) => React.JSX.Element;
11
+ export {};
@@ -1,4 +1,15 @@
1
1
  "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
2
13
  var __values = (this && this.__values) || function(o) {
3
14
  var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
4
15
  if (m) return m.call(o);
@@ -14,7 +25,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
14
25
  return (mod && mod.__esModule) ? mod : { "default": mod };
15
26
  };
16
27
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.imgRender = exports.fileRender = void 0;
28
+ exports.imgRender = exports.ImgRender = exports.fileRender = void 0;
18
29
  var react_1 = __importDefault(require("react"));
19
30
  var lodash_1 = __importDefault(require("lodash"));
20
31
  var Icon_1 = require("../../components/_adapt/Icon");
@@ -54,15 +65,47 @@ var fileRender = function (fileId, fileName) {
54
65
  fileName ? fileName : index_1.i18n.txt(_i18n_1.V.BTN_DOWNLOAD));
55
66
  };
56
67
  exports.fileRender = fileRender;
57
- var imgRender = function (fileId) {
58
- // if (portrait) {
59
- // if (_.startsWith(portrait, '/') || _.startsWith(portrait, 'http:')) {
60
- // return portrait;
61
- // } else {
62
- // return '/api/fs/view/' + portrait
63
- // }
64
- // }
65
- // return '/images/default_user.png';
66
- // <img src={userAvatar(user.portrait)} alt="avatar" style={{ height: 120, minWidth: 80, maxWidth: 320, borderRadius: 4, border: '2px solid #A82932' }} />
68
+ var getUrl = function (link, def) {
69
+ if (link == null) {
70
+ if (def != null)
71
+ return index_1.PageUtil.resolveURL(def);
72
+ return '';
73
+ }
74
+ var url = lodash_1.default.startsWith(link, '/') ? link : index_1.GLOBAL.CONFIG.UPLOAD.PREVIEW + link;
75
+ return index_1.PageUtil.resolveURL(url);
76
+ };
77
+ var ImgRender = function (option) {
78
+ var style = { borderRadius: '2px' };
79
+ if (lodash_1.default.has(option, 'width')) {
80
+ style.width = option.width;
81
+ if (lodash_1.default.has(option, 'height')) {
82
+ style.height = option.height;
83
+ }
84
+ else {
85
+ style.height = option.width;
86
+ }
87
+ }
88
+ else if (lodash_1.default.has(option, 'height')) {
89
+ style.height = option.height;
90
+ if (lodash_1.default.has(option, 'width')) {
91
+ style.width = option.width;
92
+ }
93
+ else {
94
+ style.width = option.height;
95
+ }
96
+ }
97
+ else {
98
+ style.height = 80;
99
+ style.width = 80;
100
+ }
101
+ var def = (option === null || option === void 0 ? void 0 : option.default) || null;
102
+ if (lodash_1.default.has(option, 'style')) {
103
+ style = __assign(__assign({}, style), option.style);
104
+ }
105
+ return function (link) {
106
+ var url = getUrl(link, def);
107
+ return react_1.default.createElement("img", { src: url, style: style });
108
+ };
67
109
  };
68
- exports.imgRender = imgRender;
110
+ exports.ImgRender = ImgRender;
111
+ exports.imgRender = (0, exports.ImgRender)();
@@ -1,7 +1,7 @@
1
1
  export { ApiGetRender } from './ApiGetRender';
2
2
  export { ApiPostRender } from './ApiPostRender';
3
3
  export { DateRender, dateRender } from './DateRender';
4
- export { fileRender, imgRender } from './FileRender';
4
+ export { fileRender, ImgRender, imgRender } from './FileRender';
5
5
  export { ListRender, switchYesNoRender, switchOpenRender, switchCloseRender, switchEnableRender, switchDisableRender, switchShowRender, switchHideRender, } from './ListRender';
6
6
  export { NumberRender, intRender, numberRender, sizeRender, usdRender, chineseRender, percentRender } from './NumberRender';
7
7
  export { StatusRender } from './StatusRender';
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DICT = exports.DictRender = exports.strCopyRender = exports.StrCopyRender = exports.htmlRender = exports.strRender = exports.HTMRender = exports.StrRender = exports.StatusRender = exports.percentRender = exports.chineseRender = exports.usdRender = exports.sizeRender = exports.numberRender = exports.intRender = exports.NumberRender = exports.switchHideRender = exports.switchShowRender = exports.switchDisableRender = exports.switchEnableRender = exports.switchCloseRender = exports.switchOpenRender = exports.switchYesNoRender = exports.ListRender = exports.imgRender = exports.fileRender = exports.dateRender = exports.DateRender = exports.ApiPostRender = exports.ApiGetRender = void 0;
3
+ exports.DICT = exports.DictRender = exports.strCopyRender = exports.StrCopyRender = exports.htmlRender = exports.strRender = exports.HTMRender = exports.StrRender = exports.StatusRender = exports.percentRender = exports.chineseRender = exports.usdRender = exports.sizeRender = exports.numberRender = exports.intRender = exports.NumberRender = exports.switchHideRender = exports.switchShowRender = exports.switchDisableRender = exports.switchEnableRender = exports.switchCloseRender = exports.switchOpenRender = exports.switchYesNoRender = exports.ListRender = exports.imgRender = exports.ImgRender = exports.fileRender = exports.dateRender = exports.DateRender = exports.ApiPostRender = exports.ApiGetRender = void 0;
4
4
  var ApiGetRender_1 = require("./ApiGetRender");
5
5
  Object.defineProperty(exports, "ApiGetRender", { enumerable: true, get: function () { return ApiGetRender_1.ApiGetRender; } });
6
6
  var ApiPostRender_1 = require("./ApiPostRender");
@@ -10,6 +10,7 @@ Object.defineProperty(exports, "DateRender", { enumerable: true, get: function (
10
10
  Object.defineProperty(exports, "dateRender", { enumerable: true, get: function () { return DateRender_1.dateRender; } });
11
11
  var FileRender_1 = require("./FileRender");
12
12
  Object.defineProperty(exports, "fileRender", { enumerable: true, get: function () { return FileRender_1.fileRender; } });
13
+ Object.defineProperty(exports, "ImgRender", { enumerable: true, get: function () { return FileRender_1.ImgRender; } });
13
14
  Object.defineProperty(exports, "imgRender", { enumerable: true, get: function () { return FileRender_1.imgRender; } });
14
15
  var ListRender_1 = require("./ListRender");
15
16
  Object.defineProperty(exports, "ListRender", { enumerable: true, get: function () { return ListRender_1.ListRender; } });
@@ -10,8 +10,8 @@ declare global {
10
10
  type GLOBAL_KEY = '_V_APPACTION' | 'useApp' | '_V_STATE' | '_V_GLOBAL' | '_V_I18N' | '_V_DICT' | '_VAP' | 'NProgress' | 'echarts' | '_C_SELECT_BAR' | '_C_SEARCH_FIELD' | '_C_FORM_FIELD';
11
11
  export declare var getGlobal: () => any;
12
12
  export declare enum Language {
13
- ZH_CN = "zh-CN",
14
- ZH_HK = "zh-HK",
13
+ ZH_CN = "zh-CN",// 简体中文
14
+ ZH_HK = "zh-HK",// 繁體中文
15
15
  EN_US = "en-US"
16
16
  }
17
17
  export declare const globalDefault: <T>(key: GLOBAL_KEY, init: T) => T;
@@ -30,8 +30,8 @@ var __read = (this && this.__read) || function (o, n) {
30
30
  Object.defineProperty(exports, "__esModule", { value: true });
31
31
  var METHOD_MAP = [
32
32
  ['requestFullscreen', 'exitFullscreen', 'fullscreenElement', 'fullscreenEnabled', 'fullscreenchange', 'fullscreenerror',],
33
- ['webkitRequestFullscreen', 'webkitExitFullscreen', 'webkitFullscreenElement', 'webkitFullscreenEnabled', 'webkitfullscreenchange', 'webkitfullscreenerror',],
34
- ['webkitRequestFullScreen', 'webkitCancelFullScreen', 'webkitCurrentFullScreenElement', 'webkitCancelFullScreen', 'webkitfullscreenchange', 'webkitfullscreenerror',],
33
+ ['webkitRequestFullscreen', 'webkitExitFullscreen', 'webkitFullscreenElement', 'webkitFullscreenEnabled', 'webkitfullscreenchange', 'webkitfullscreenerror',], // New WebKit
34
+ ['webkitRequestFullScreen', 'webkitCancelFullScreen', 'webkitCurrentFullScreenElement', 'webkitCancelFullScreen', 'webkitfullscreenchange', 'webkitfullscreenerror',], // Old WebKit
35
35
  ['mozRequestFullScreen', 'mozCancelFullScreen', 'mozFullScreenElement', 'mozFullScreenEnabled', 'mozfullscreenchange', 'mozfullscreenerror',],
36
36
  ['msRequestFullscreen', 'msExitFullscreen', 'msFullscreenElement', 'msFullscreenEnabled', 'MSFullscreenChange', 'MSFullscreenError',],
37
37
  ];