eoss 0.1.0-alpha.20 → 0.1.0-alpha.21
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.
- package/lib/account-login.js +1943 -1890
- package/lib/alert.js +4 -4
- package/lib/aside.js +4 -4
- package/lib/autocomplete.js +4936 -4834
- package/lib/avatar.js +4 -4
- package/lib/backtop.js +4 -4
- package/lib/badge.js +4 -4
- package/lib/breadcrumb-item.js +6 -6
- package/lib/breadcrumb.js +7 -7
- package/lib/button-group.js +11 -14
- package/lib/button.js +6 -6
- package/lib/ca-login.js +2480 -2382
- package/lib/calendar.js +798 -798
- package/lib/card.js +4 -4
- package/lib/carousel-item.js +911 -813
- package/lib/carousel.js +1646 -1548
- package/lib/cascader-panel.js +2556 -2458
- package/lib/cascader.js +4546 -4444
- package/lib/checkbox-button.js +4 -4
- package/lib/checkbox-group.js +2894 -2841
- package/lib/checkbox.js +4 -4
- package/lib/col.js +2 -2
- package/lib/collapse-item.js +35159 -2572
- package/lib/collapse.js +35410 -2762
- package/lib/color-picker.js +494 -490
- package/lib/config/api.js +15 -1
- package/lib/container.js +4 -4
- package/lib/cron.js +4 -4
- package/lib/data-table.js +1895 -1842
- package/lib/date-picker.js +6422 -6320
- package/lib/dialog.js +2912 -2806
- package/lib/divider.js +4 -4
- package/lib/drawer.js +311 -299
- package/lib/dropdown-item.js +6 -6
- package/lib/dropdown-menu.js +539 -535
- package/lib/dropdown.js +2270 -2172
- package/lib/email-login.js +1783 -1730
- package/lib/empty.js +723 -0
- package/lib/eoss.common.js +63680 -56193
- package/lib/flip.js +4 -4
- package/lib/flow-group.js +2985 -2887
- package/lib/flow.js +28067 -28022
- package/lib/footer.js +4 -4
- package/lib/form-item.js +1935 -1837
- package/lib/form.js +9230 -9092
- package/lib/header.js +4 -4
- package/lib/icon.js +1708 -1590
- package/lib/icons.js +4 -4
- package/lib/image-viewer.js +1660 -1562
- package/lib/image.js +162 -162
- package/lib/index.js +1 -1
- package/lib/infinite-scroll.js +76 -76
- package/lib/input-number.js +172 -172
- package/lib/input.js +1362 -1264
- package/lib/link.js +4 -4
- package/lib/loading.js +321 -317
- package/lib/login.js +3306 -3300
- package/lib/lowcode.js +13320 -0
- package/lib/main.js +14465 -14339
- package/lib/marquee.js +1237 -1139
- package/lib/menu-item-group.js +119 -119
- package/lib/menu-item.js +114 -114
- package/lib/menu.js +6193 -6091
- package/lib/message-box.js +3582 -3480
- package/lib/message.js +2265 -2163
- package/lib/notification.js +2430 -2328
- package/lib/option-group.js +4 -4
- package/lib/option.js +842 -744
- package/lib/page-header.js +4 -4
- package/lib/pagination.js +1916 -1815
- package/lib/phone-login.js +1788 -1735
- package/lib/popconfirm.js +8 -8
- package/lib/popover.js +4559 -4457
- package/lib/progress.js +4 -4
- package/lib/qr-code.js +9 -9
- package/lib/qrcode-login.js +1600 -1543
- package/lib/radio-button.js +6 -6
- package/lib/radio-group.js +2142 -2089
- package/lib/radio.js +6 -6
- package/lib/rate.js +1226 -1128
- package/lib/row.js +2 -2
- package/lib/scrollbar.js +2695 -2597
- package/lib/select.js +5985 -5961
- package/lib/selector-panel.js +5239 -5186
- package/lib/selector.js +1712 -1659
- package/lib/slider.js +16 -16
- package/lib/step.js +35836 -2736
- package/lib/steps.js +1281 -1183
- package/lib/submenu.js +461 -457
- package/lib/switch.js +1010 -912
- package/lib/tab-pane.js +4 -4
- package/lib/table-column.js +2595 -2497
- package/lib/table.js +9225 -9239
- package/lib/tabs.js +2414 -2320
- package/lib/tag.js +4 -4
- package/lib/theme-chalk/account-login.css +1 -1
- package/lib/theme-chalk/autocomplete.css +1 -1
- package/lib/theme-chalk/base.css +1 -1
- package/lib/theme-chalk/cascader.css +1 -1
- package/lib/theme-chalk/date-picker.css +1 -1
- package/lib/theme-chalk/empty.css +1 -0
- package/lib/theme-chalk/fonts/iconfont.ttf +0 -0
- package/lib/theme-chalk/fonts/iconfont.woff +0 -0
- package/lib/theme-chalk/form.css +1 -1
- package/lib/theme-chalk/icon.css +1 -1
- package/lib/theme-chalk/index.css +1 -1
- package/lib/theme-chalk/input-number.css +1 -1
- package/lib/theme-chalk/input.css +1 -1
- package/lib/theme-chalk/login.css +1 -1
- package/lib/theme-chalk/lowcode.css +1 -0
- package/lib/theme-chalk/main.css +1 -1
- package/lib/theme-chalk/message-box.css +1 -1
- package/lib/theme-chalk/pagination.css +1 -1
- package/lib/theme-chalk/qrcode-login.css +1 -1
- package/lib/theme-chalk/select.css +1 -1
- package/lib/theme-chalk/slider.css +1 -1
- package/lib/theme-chalk/tabs.css +1 -1
- package/lib/theme-chalk/time-picker.css +1 -1
- package/lib/theme-chalk/transfer.css +1 -1
- package/lib/time-picker.js +5823 -5819
- package/lib/time-select.js +3578 -3574
- package/lib/timeline-item.js +4 -4
- package/lib/timeline.js +4 -4
- package/lib/tips.js +1633 -1580
- package/lib/toolbar.js +213 -213
- package/lib/tooltip.js +4441 -4339
- package/lib/transfer.js +938 -840
- package/lib/tree-group.js +1875 -1757
- package/lib/tree.js +2626 -2573
- package/lib/upload.js +7209 -7156
- package/lib/utils/ajax.js +185 -243
- package/lib/utils/bus.js +2 -2
- package/lib/utils/popup/index.js +5 -1
- package/lib/utils/util.js +108 -11
- package/package.json +2 -2
- package/packages/button/src/button-group.vue +1 -4
- package/packages/collapse/src/collapse-item.vue +47 -33
- package/packages/dialog/src/dialog.vue +4 -1
- package/packages/drawer/src/drawer.vue +12 -4
- package/packages/empty/index.js +7 -0
- package/packages/empty/src/img-empty.vue +132 -0
- package/packages/empty/src/index.vue +49 -0
- package/packages/form/src/form-item-render.vue +16 -18
- package/packages/form/src/form.vue +27 -5
- package/packages/icons/src/icon.json +1 -1
- package/packages/login/src/login.vue +19 -21
- package/packages/login/src/mixins.js +2 -1
- package/packages/lowcode/index.js +5 -0
- package/packages/lowcode/src/aside.vue +331 -0
- package/packages/lowcode/src/attribute/bind.vue +441 -0
- package/packages/lowcode/src/attribute/dependency.vue +325 -0
- package/packages/lowcode/src/attribute/function.vue +112 -0
- package/packages/lowcode/src/attribute/property.vue +331 -0
- package/packages/lowcode/src/attribute/styles.vue +318 -0
- package/packages/lowcode/src/attribute.vue +135 -0
- package/packages/lowcode/src/canvas.vue +296 -0
- package/packages/lowcode/src/json.vue +32 -0
- package/packages/lowcode/src/lowcode.vue +539 -0
- package/packages/lowcode/src/modules.vue +93 -0
- package/packages/lowcode/src/pages.vue +91 -0
- package/packages/lowcode/src/render.vue +247 -0
- package/packages/lowcode/src/source.vue +32 -0
- package/packages/lowcode/src/toolbar.vue +162 -0
- package/packages/main/src/components/pages.vue +28 -2
- package/packages/main/src/components/set-menus.vue +3 -3
- package/packages/main/src/components/user.vue +6 -1
- package/packages/main/src/early.vue +2 -2
- package/packages/main/src/gzw.vue +55 -61
- package/packages/main/src/minxs.js +113 -36
- package/packages/pagination/src/pager.vue +2 -2
- package/packages/pagination/src/pagination.js +4 -1
- package/packages/qrcode-login/src/qrcode-login.vue +6 -2
- package/packages/select/src/select.vue +28 -6
- package/packages/steps/src/step.vue +7 -5
- package/packages/tabs/src/tab-nav.vue +1 -0
- package/packages/tabs/src/tabs.vue +0 -2
- package/packages/theme-chalk/dist/fonts/iconfont.ttf +0 -0
- package/packages/theme-chalk/dist/fonts/iconfont.woff +0 -0
- package/packages/theme-chalk/gulpfile.js +3 -0
- package/packages/theme-chalk/src/account-login.scss +1 -0
- package/packages/theme-chalk/src/base.scss +1 -1
- package/packages/theme-chalk/src/common/var.scss +16 -0
- package/packages/theme-chalk/src/empty.scss +45 -0
- package/packages/theme-chalk/src/fonts/iconfont.ttf +0 -0
- package/packages/theme-chalk/src/fonts/iconfont.woff +0 -0
- package/packages/theme-chalk/src/form.scss +1 -8
- package/packages/theme-chalk/src/icon.scss +30 -1
- package/packages/theme-chalk/src/index.scss +2 -0
- package/packages/theme-chalk/src/input-number.scss +0 -4
- package/packages/theme-chalk/src/input.scss +9 -0
- package/packages/theme-chalk/src/login.scss +32 -29
- package/packages/theme-chalk/src/lowcode.scss +461 -0
- package/packages/theme-chalk/src/main.scss +28 -65
- package/packages/theme-chalk/src/pagination.scss +4 -55
- package/packages/theme-chalk/src/qrcode-login.scss +3 -1
- package/packages/theme-chalk/src/tabs.scss +81 -50
- package/src/config/api.js +13 -0
- package/src/index.js +17 -4
- package/src/utils/ajax.js +61 -65
- package/src/utils/bus.js +2 -2
- package/src/utils/popup/index.js +5 -1
- package/src/utils/util.js +104 -7
- package/lib/index_/345/211/257/346/234/254.js +0 -583
- package/packages/dialog copy/index.js +0 -8
- package/packages/dialog copy/src/dialog.vue +0 -615
- package/src/index_/345/211/257/346/234/254.js +0 -359
- /package/{packages/form/src → src/components}/field-render.vue +0 -0
package/lib/utils/util.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
exports.__esModule = true;
|
|
2
|
-
exports.warning = exports.error = exports.success = exports.confirm = exports.winTopOpen = exports.watermark = exports.uuid = exports.urlJoinParams = exports.upperType = exports.updateTheme = exports.toFunction = exports.toFixed = exports.trimWhitespace = exports.takeRight = exports.takeLeft = exports.startWith = exports.sum = exports.setFavicon = exports.sendMessage = exports.setScale = exports.rmbToCapital = exports.replenish = exports.renderIcon = exports.receiveMessage = exports.queryParams = exports.overbrim = exports.lowerCase = exports.loading = exports.loadJs = exports.joinUrl = exports.isObjectEqual = exports.isFunction = exports.isExist = exports.isEmpty = exports.indexOfObj = exports.identical = exports.hasChars = exports.timestampUrl = exports.getLength = exports.getZoom = exports.getValues = exports.getTypePrefix = exports.getTypeName = exports.getStyle = exports.getScript = exports.getParams = exports.getObjectType = exports.extend = exports.exportXls = exports.exclAttribute = exports.decode = exports.encode = exports.downloadFile = exports.domEval = exports.delUrlParam = exports.concatenate = exports.chunkToChinese = exports.busEmit = exports.browser = exports.formatFileSize = exports.average = exports.arrUnique = exports.getFileType = exports.getWinTop = exports.cancelAnimationFrame = exports.requestAnimationFrame = exports.isEqual = exports.arrayEquals = exports.looseEqual = exports.capitalize = exports.kebabCase = exports.autoprefixer = exports.isFirefox = exports.isEdge = exports.isIE = exports.coerceTruthyValueToArray = exports.arrayFind = exports.arrayFindIndex = exports.escapeRegexpString = exports.valueEquals = exports.generateId = exports.getPropByPath = exports.getValueByPath = exports.toObject = exports.hasOwn = exports.noop = undefined;
|
|
2
|
+
exports.warning = exports.error = exports.success = exports.confirm = exports.winTopOpen = exports.watermark = exports.uuid = exports.urlJoinParams = exports.upperType = exports.updateTheme = exports.toFunction = exports.toFixed = exports.trimWhitespace = exports.takeRight = exports.takeLeft = exports.startWith = exports.sum = exports.setFavicon = exports.sendMessage = exports.setScale = exports.rmbToCapital = exports.replenish = exports.renderIcon = exports.receiveMessage = exports.queryParams = exports.overbrim = exports.lowerCase = exports.loading = exports.loadJs = exports.layoutWaterfall = exports.joinUrl = exports.isObjectEqual = exports.isFunction = exports.isExist = exports.isEmpty = exports.indexOfObj = exports.identical = exports.hasChars = exports.timestampUrl = exports.getLength = exports.getZoom = exports.getValues = exports.getTypePrefix = exports.getTypeName = exports.getStyle = exports.getScript = exports.getParams = exports.getObjectType = exports.extend = exports.exportXls = exports.exclAttribute = exports.decode = exports.encode = exports.downloadFile = exports.domEval = exports.delUrlParam = exports.concatenate = exports.chunkToChinese = exports.busEmit = exports.browser = exports.formatFileSize = exports.average = exports.arrUnique = exports.getFileType = exports.getWinTop = exports.cancelAnimationFrame = exports.requestAnimationFrame = exports.isEqual = exports.arrayEquals = exports.looseEqual = exports.capitalize = exports.kebabCase = exports.autoprefixer = exports.isFirefox = exports.isEdge = exports.isIE = exports.coerceTruthyValueToArray = exports.arrayFind = exports.arrayFindIndex = exports.escapeRegexpString = exports.valueEquals = exports.generateId = exports.getPropByPath = exports.getValueByPath = exports.toObject = exports.hasOwn = exports.noop = undefined;
|
|
3
3
|
|
|
4
4
|
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
|
|
5
5
|
|
|
@@ -1232,7 +1232,9 @@ var getObjectType = exports.getObjectType = function getObjectType(obj) {
|
|
|
1232
1232
|
* @return {Object|string} 参数对象或指定参数值
|
|
1233
1233
|
**/
|
|
1234
1234
|
var getParams = exports.getParams = function getParams() {
|
|
1235
|
-
var
|
|
1235
|
+
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
1236
|
+
|
|
1237
|
+
var _ref5 = typeof options === 'string' ? { name: options } : options,
|
|
1236
1238
|
url = _ref5.url,
|
|
1237
1239
|
name = _ref5.name;
|
|
1238
1240
|
|
|
@@ -1644,10 +1646,7 @@ var indexOfObj = exports.indexOfObj = function indexOfObj(arry, target, key) {
|
|
|
1644
1646
|
return _i3;
|
|
1645
1647
|
}
|
|
1646
1648
|
} else if (target && (typeof target === 'undefined' ? 'undefined' : _typeof(target)) === 'object') {
|
|
1647
|
-
if (currentItem[currentKey] ===
|
|
1648
|
-
throw new Error('\u5C5E\u6027' + currentKey + '\u4E0D\u5B58\u5728');
|
|
1649
|
-
}
|
|
1650
|
-
if (currentItem[currentKey] === target[currentKey]) {
|
|
1649
|
+
if (currentItem[currentKey] !== undefined && currentItem[currentKey] === target[currentKey]) {
|
|
1651
1650
|
return _i3;
|
|
1652
1651
|
}
|
|
1653
1652
|
}
|
|
@@ -1842,7 +1841,105 @@ var joinUrl = exports.joinUrl = function joinUrl(_ref8) {
|
|
|
1842
1841
|
// 如果前缀类型无效,直接返回URL
|
|
1843
1842
|
return url;
|
|
1844
1843
|
};
|
|
1844
|
+
/**
|
|
1845
|
+
* layoutWaterfall
|
|
1846
|
+
* @desc 布布流布局计算
|
|
1847
|
+
* @author huangbo
|
|
1848
|
+
* @date 2022年5月7日
|
|
1849
|
+
* @param {String} url - JS文件地址
|
|
1850
|
+
* @param {Function} [callback] - 回调函数
|
|
1851
|
+
**/
|
|
1852
|
+
var layoutWaterfall = exports.layoutWaterfall = function layoutWaterfall(self, container, pages, columns, gap) {
|
|
1853
|
+
if (!container) return;
|
|
1854
|
+
|
|
1855
|
+
if (pages.length === 0) return;
|
|
1856
|
+
|
|
1857
|
+
// 获取容器实际内容宽度(减去 padding)
|
|
1858
|
+
var computedStyle = getComputedStyle(container);
|
|
1859
|
+
var paddingLeft = parseFloat(computedStyle.paddingLeft) || 0;
|
|
1860
|
+
var paddingRight = parseFloat(computedStyle.paddingRight) || 0;
|
|
1861
|
+
var paddingTop = parseFloat(computedStyle.paddingTop) || 0;
|
|
1862
|
+
var containerWidth = container.clientWidth - paddingLeft - paddingRight;
|
|
1863
|
+
if (containerWidth === 0) return;
|
|
1864
|
+
|
|
1865
|
+
// 计算每列宽度
|
|
1866
|
+
var columnWidth = (containerWidth - gap * (columns - 1)) / columns;
|
|
1867
|
+
|
|
1868
|
+
// 初始化每列高度数组(以 paddingTop 为起始偏移)
|
|
1869
|
+
var columnHeights = new Array(columns).fill(paddingTop);
|
|
1870
|
+
|
|
1871
|
+
// 遍历所有元素,分配到高度最小的列
|
|
1872
|
+
pages.forEach(function (item) {
|
|
1873
|
+
// 确保span在有效范围内
|
|
1874
|
+
var span = Math.max(1, Math.min(item.style ? item.style.span || item.span || 1 : item.span || 1, columns));
|
|
1875
|
+
|
|
1876
|
+
// 找到可以容纳当前元素span宽度的最小高度起始列
|
|
1877
|
+
var minHeight = Infinity;
|
|
1878
|
+
var startColumn = 0;
|
|
1879
|
+
|
|
1880
|
+
// 遍历所有可能的起始列,找到可以放置span列元素的位置
|
|
1881
|
+
for (var i = 0; i <= columns - span; i++) {
|
|
1882
|
+
// 计算当前连续span列的最大高度
|
|
1883
|
+
var currentMaxHeight = 0;
|
|
1884
|
+
for (var j = i; j < i + span; j++) {
|
|
1885
|
+
if (columnHeights[j] > currentMaxHeight) {
|
|
1886
|
+
currentMaxHeight = columnHeights[j];
|
|
1887
|
+
}
|
|
1888
|
+
}
|
|
1845
1889
|
|
|
1890
|
+
// 找到最小的最大高度
|
|
1891
|
+
if (currentMaxHeight < minHeight) {
|
|
1892
|
+
minHeight = currentMaxHeight;
|
|
1893
|
+
startColumn = i;
|
|
1894
|
+
}
|
|
1895
|
+
}
|
|
1896
|
+
|
|
1897
|
+
// 计算元素宽度和位置
|
|
1898
|
+
var existingWidth = item.style && item.style.width ? parseInt(item.style.width, 10) : null;
|
|
1899
|
+
var hasSpan = item.style && item.style.span || item.span;
|
|
1900
|
+
var calculatedWidth = columnWidth * span + gap * (span - 1);
|
|
1901
|
+
var useCustomWidth = !hasSpan && existingWidth;
|
|
1902
|
+
var elementWidth = useCustomWidth ? existingWidth : calculatedWidth;
|
|
1903
|
+
|
|
1904
|
+
// 根据是否使用自定义宽度计算 left(加上 padding 偏移)
|
|
1905
|
+
var left = void 0;
|
|
1906
|
+
if (useCustomWidth) {
|
|
1907
|
+
// 自定义宽度:在分配的列范围内居中(取整避免亚像素)
|
|
1908
|
+
var columnSpaceWidth = columnWidth * span + gap * (span - 1);
|
|
1909
|
+
left = Math.round(paddingLeft + startColumn * columnWidth + startColumn * gap + (columnSpaceWidth - elementWidth) / 2);
|
|
1910
|
+
} else {
|
|
1911
|
+
// 标准 span 宽度:正常计算位置
|
|
1912
|
+
left = paddingLeft + startColumn * columnWidth + startColumn * gap;
|
|
1913
|
+
}
|
|
1914
|
+
var top = minHeight;
|
|
1915
|
+
|
|
1916
|
+
// 设置元素样式(使用Vue的$set确保响应式)
|
|
1917
|
+
if (!item.style) {
|
|
1918
|
+
self.$set(item, 'style', {});
|
|
1919
|
+
}
|
|
1920
|
+
var height = item.style.height ? parseInt(item.style.height, 10) : 30;
|
|
1921
|
+
self.$set(item.style, 'position', 'absolute');
|
|
1922
|
+
self.$set(item.style, 'width', elementWidth + 'px');
|
|
1923
|
+
self.$set(item.style, 'height', height + 'px');
|
|
1924
|
+
self.$set(item.style, 'left', left + 'px');
|
|
1925
|
+
self.$set(item.style, 'top', top + 'px');
|
|
1926
|
+
if (!useCustomWidth) {
|
|
1927
|
+
self.$set(item.style, 'span', span);
|
|
1928
|
+
}
|
|
1929
|
+
|
|
1930
|
+
// 更新所有被占用列的高度
|
|
1931
|
+
var newHeight = top + height + gap;
|
|
1932
|
+
for (var _i5 = startColumn; _i5 < startColumn + span; _i5++) {
|
|
1933
|
+
columnHeights[_i5] = newHeight;
|
|
1934
|
+
}
|
|
1935
|
+
});
|
|
1936
|
+
|
|
1937
|
+
// 设置容器高度
|
|
1938
|
+
var maxHeight = Math.max.apply(Math, columnHeights);
|
|
1939
|
+
container.style.position = 'relative';
|
|
1940
|
+
container.style.height = maxHeight - gap + 'px'; // 减去最后一个间隙
|
|
1941
|
+
return { columnWidth: columnWidth, width: containerWidth };
|
|
1942
|
+
};
|
|
1846
1943
|
/**
|
|
1847
1944
|
* loadJs
|
|
1848
1945
|
* @desc 加载JS文件
|
|
@@ -1991,8 +2088,8 @@ var renderIcon = exports.renderIcon = function renderIcon(data, node, icons) {
|
|
|
1991
2088
|
var _ref9 = data || {},
|
|
1992
2089
|
attributes = _ref9.attributes;
|
|
1993
2090
|
|
|
1994
|
-
var orgType = attributes.orgType
|
|
1995
|
-
var layerlevel = attributes.layerlevel
|
|
2091
|
+
var orgType = attributes ? attributes.orgType : data.orgType;
|
|
2092
|
+
var layerlevel = attributes ? attributes.layerlevel : data.layerlevel;
|
|
1996
2093
|
if (!orgType) return '';
|
|
1997
2094
|
var key = orgType === 'org' ? layerlevel ? 'bumen' : 'gongsi' : 'bumen';
|
|
1998
2095
|
if (node.level === 1 && (data.subNode || data.isParent || data.hasChildren)) {
|
|
@@ -2071,10 +2168,10 @@ var rmbToCapital = exports.rmbToCapital = function rmbToCapital(num) {
|
|
|
2071
2168
|
// 处理小数部分
|
|
2072
2169
|
var decimalCapital = '';
|
|
2073
2170
|
if (parseInt(decimalPart, 10) > 0) {
|
|
2074
|
-
for (var
|
|
2075
|
-
var _digit = parseInt(decimalPart[
|
|
2171
|
+
for (var _i6 = 0; _i6 < decimalPart.length; _i6++) {
|
|
2172
|
+
var _digit = parseInt(decimalPart[_i6], 10);
|
|
2076
2173
|
if (_digit > 0) {
|
|
2077
|
-
decimalCapital += chineseNumbers[_digit] + decimalUnits[
|
|
2174
|
+
decimalCapital += chineseNumbers[_digit] + decimalUnits[_i6];
|
|
2078
2175
|
} else if (decimalCapital[decimalCapital.length - 1] !== chineseNumbers[0]) {
|
|
2079
2176
|
decimalCapital += chineseNumbers[_digit];
|
|
2080
2177
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "eoss",
|
|
3
|
-
"version": "0.1.0-alpha.
|
|
3
|
+
"version": "0.1.0-alpha.21",
|
|
4
4
|
"description": "eoss内部业务组件",
|
|
5
5
|
"main": "lib/eoss.common.js",
|
|
6
6
|
"files": [
|
|
@@ -74,8 +74,8 @@
|
|
|
74
74
|
"slate-history": "^0.100.0",
|
|
75
75
|
"sm-crypto": "^0.3.11",
|
|
76
76
|
"sockjs-client": "^1.6.1",
|
|
77
|
-
"stompjs": "^2.3.3",
|
|
78
77
|
"sortablejs": "^1.15.0",
|
|
78
|
+
"stompjs": "^2.3.3",
|
|
79
79
|
"throttle-debounce": "4.0.0",
|
|
80
80
|
"ua-parser-js": "^2.0.3"
|
|
81
81
|
},
|
|
@@ -27,34 +27,11 @@
|
|
|
27
27
|
<slot name="title">
|
|
28
28
|
<template v-if="Array.isArray(title)">
|
|
29
29
|
<template v-for="(item, index) in title">
|
|
30
|
-
<span v-if="typeof item === 'string'" :key="index">{{
|
|
31
|
-
item
|
|
30
|
+
<span v-if="item.text || item.type === 'text' || typeof item === 'string'" :key="item.key || item.id || index">{{
|
|
31
|
+
item.text || item.contents || item
|
|
32
32
|
}}</span>
|
|
33
|
-
<
|
|
34
|
-
|
|
35
|
-
v-if="item.text || item.type === 'text'"
|
|
36
|
-
:key="item.key || item.id || index"
|
|
37
|
-
>{{ item.text || item.contents }}</span
|
|
38
|
-
>
|
|
39
|
-
<es-icon
|
|
40
|
-
v-else-if="item.type === 'icon' || item.icon"
|
|
41
|
-
:key="item['key'] || item['id'] || index"
|
|
42
|
-
:class="item.class"
|
|
43
|
-
:contents="item.contents || item.icon"
|
|
44
|
-
:events="item.events"
|
|
45
|
-
@click.stop="item.event"
|
|
46
|
-
/>
|
|
47
|
-
<field-renderer
|
|
48
|
-
v-else-if="
|
|
49
|
-
['radio', 'checkbox', 'select', 'switch'].includes(
|
|
50
|
-
item.type
|
|
51
|
-
)
|
|
52
|
-
"
|
|
53
|
-
:key="item['key'] || item['id'] || index"
|
|
54
|
-
v-bind="item"
|
|
55
|
-
></field-renderer>
|
|
56
|
-
</template>
|
|
57
|
-
</template>
|
|
33
|
+
<component v-else v-bind="getProps(item, index)" :key="item['key'] || item['id'] || index" @click.stop="item.type === 'icon' || item.icon ? item.event : ''"></component>
|
|
34
|
+
</template>
|
|
58
35
|
</template>
|
|
59
36
|
<template v-else>
|
|
60
37
|
{{ title }}
|
|
@@ -86,8 +63,7 @@
|
|
|
86
63
|
>
|
|
87
64
|
<div class="es-collapse-item__content">
|
|
88
65
|
<slot>
|
|
89
|
-
<
|
|
90
|
-
<div v-else>{{ item.content }}</div>
|
|
66
|
+
<div>{{ content }}</div>
|
|
91
67
|
</slot>
|
|
92
68
|
</div>
|
|
93
69
|
</div>
|
|
@@ -99,6 +75,7 @@ import EsCollapseTransition from 'eoss/src/transitions/collapse-transition';
|
|
|
99
75
|
import Emitter from 'eoss/src/mixins/emitter';
|
|
100
76
|
import { generateId } from 'eoss/src/utils/util';
|
|
101
77
|
import EsIcon from 'eoss/packages/icon/src/icon';
|
|
78
|
+
import FieldRender from 'eoss/src/components/field-render.vue';
|
|
102
79
|
|
|
103
80
|
export default {
|
|
104
81
|
name: 'EsCollapseItem',
|
|
@@ -107,7 +84,7 @@ export default {
|
|
|
107
84
|
|
|
108
85
|
mixins: [Emitter],
|
|
109
86
|
|
|
110
|
-
components: { EsCollapseTransition, EsIcon },
|
|
87
|
+
components: { EsCollapseTransition, EsIcon, FieldRender },
|
|
111
88
|
|
|
112
89
|
data() {
|
|
113
90
|
return {
|
|
@@ -118,7 +95,9 @@ export default {
|
|
|
118
95
|
contentHeight: 0,
|
|
119
96
|
focusing: false,
|
|
120
97
|
isClick: false,
|
|
121
|
-
id: generateId()
|
|
98
|
+
id: generateId(),
|
|
99
|
+
// 缓存处理后的item对象,避免重复渲染
|
|
100
|
+
itemCache: new Map()
|
|
122
101
|
};
|
|
123
102
|
},
|
|
124
103
|
|
|
@@ -130,7 +109,10 @@ export default {
|
|
|
130
109
|
type: Boolean,
|
|
131
110
|
default: true
|
|
132
111
|
},
|
|
133
|
-
arrow:
|
|
112
|
+
arrow: {
|
|
113
|
+
type: Boolean,
|
|
114
|
+
default: true
|
|
115
|
+
},
|
|
134
116
|
name: {
|
|
135
117
|
type: [String, Number],
|
|
136
118
|
default() {
|
|
@@ -140,7 +122,6 @@ export default {
|
|
|
140
122
|
disabled: Boolean,
|
|
141
123
|
readonly: Boolean,
|
|
142
124
|
icon: String,
|
|
143
|
-
is: String,
|
|
144
125
|
content: String
|
|
145
126
|
},
|
|
146
127
|
|
|
@@ -160,6 +141,39 @@ export default {
|
|
|
160
141
|
},
|
|
161
142
|
|
|
162
143
|
methods: {
|
|
144
|
+
/**
|
|
145
|
+
* 用于生成按钮项的唯一key
|
|
146
|
+
* @param {Object} item - 按钮配置项
|
|
147
|
+
* @param {number} index - 索引值
|
|
148
|
+
* @returns {string|number} - 唯一的key值
|
|
149
|
+
*/
|
|
150
|
+
getItemKey(item, index) {
|
|
151
|
+
// 优先使用item中的key属性,如果没有则使用id,最后才使用index
|
|
152
|
+
return item.key || item.id || index;
|
|
153
|
+
},
|
|
154
|
+
/**
|
|
155
|
+
* 处理item对象,移除event属性并缓存结果
|
|
156
|
+
* @param {Object} item - 按钮配置项
|
|
157
|
+
* @param {number} index - 索引值
|
|
158
|
+
* @returns {Object} - 处理后的item对象
|
|
159
|
+
*/
|
|
160
|
+
getProps(item, index) {
|
|
161
|
+
const key = this.getItemKey(item, index);
|
|
162
|
+
// 检查缓存中是否已有处理结果
|
|
163
|
+
if (this.itemCache.has(key)) {
|
|
164
|
+
return this.itemCache.get(key);
|
|
165
|
+
}
|
|
166
|
+
const { event, ...props } = item;
|
|
167
|
+
if(item.type === 'icon' || item.icon){
|
|
168
|
+
props.contents = item.contents || item.icon
|
|
169
|
+
props.is = 'es-icon'
|
|
170
|
+
}else{
|
|
171
|
+
props.is = 'field-render'
|
|
172
|
+
}
|
|
173
|
+
// 缓存处理结果
|
|
174
|
+
this.itemCache.set(key, props);
|
|
175
|
+
return props;
|
|
176
|
+
},
|
|
163
177
|
handleFocus() {
|
|
164
178
|
setTimeout(() => {
|
|
165
179
|
if (!this.isClick && !this.readonly) {
|
|
@@ -4,12 +4,15 @@
|
|
|
4
4
|
@after-enter="afterEnter"
|
|
5
5
|
@after-leave="afterLeave"
|
|
6
6
|
>
|
|
7
|
-
<div
|
|
7
|
+
<div
|
|
8
|
+
class="es-drawer__wrapper"
|
|
9
|
+
v-show="visible"
|
|
10
|
+
>
|
|
8
11
|
<div
|
|
9
12
|
class="es-drawer__container"
|
|
10
13
|
:class="visible && 'es-drawer__open'"
|
|
11
|
-
@click.self="handleWrapperClick"
|
|
12
14
|
role="document"
|
|
15
|
+
@click.self="handleWrapperClick"
|
|
13
16
|
>
|
|
14
17
|
<div
|
|
15
18
|
aria-modal="true"
|
|
@@ -68,7 +71,7 @@ export default {
|
|
|
68
71
|
mixins: [Popup, emitter],
|
|
69
72
|
props: {
|
|
70
73
|
/**
|
|
71
|
-
* Drawer 自身是否插入至 body
|
|
74
|
+
* Drawer 自身是否插入至 body 元素上。
|
|
72
75
|
*/
|
|
73
76
|
appendToBody: {
|
|
74
77
|
type: Boolean,
|
|
@@ -130,7 +133,9 @@ export default {
|
|
|
130
133
|
*/
|
|
131
134
|
modalAppendToBody: {
|
|
132
135
|
type: Boolean,
|
|
133
|
-
default
|
|
136
|
+
default() {
|
|
137
|
+
return this.appendToBody;
|
|
138
|
+
}
|
|
134
139
|
},
|
|
135
140
|
/**
|
|
136
141
|
* 是否显示关闭按钮
|
|
@@ -279,6 +284,9 @@ export default {
|
|
|
279
284
|
}
|
|
280
285
|
},
|
|
281
286
|
mounted() {
|
|
287
|
+
if (!this.lazy) {
|
|
288
|
+
return;
|
|
289
|
+
}
|
|
282
290
|
if (this.visible) {
|
|
283
291
|
this.rendered = true;
|
|
284
292
|
this.open();
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<svg
|
|
3
|
+
viewBox="0 0 79 86"
|
|
4
|
+
version="1.1"
|
|
5
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
6
|
+
xmlns:xlink="http://www.w3.org/1999/xlink"
|
|
7
|
+
>
|
|
8
|
+
<defs>
|
|
9
|
+
<linearGradient
|
|
10
|
+
:id="`linearGradient-1-${id}`"
|
|
11
|
+
x1="38.8503086%"
|
|
12
|
+
y1="0%"
|
|
13
|
+
x2="61.1496914%"
|
|
14
|
+
y2="100%"
|
|
15
|
+
>
|
|
16
|
+
<stop stop-color="#FCFCFD" offset="0%" />
|
|
17
|
+
<stop stop-color="#EEEFF3" offset="100%" />
|
|
18
|
+
</linearGradient>
|
|
19
|
+
<linearGradient
|
|
20
|
+
:id="`linearGradient-2-${id}`"
|
|
21
|
+
x1="0%"
|
|
22
|
+
y1="9.5%"
|
|
23
|
+
x2="100%"
|
|
24
|
+
y2="90.5%"
|
|
25
|
+
>
|
|
26
|
+
<stop stop-color="#FCFCFD" offset="0%" />
|
|
27
|
+
<stop stop-color="#E9EBEF" offset="100%" />
|
|
28
|
+
</linearGradient>
|
|
29
|
+
<rect
|
|
30
|
+
:id="`path-3-${id}`"
|
|
31
|
+
x="0"
|
|
32
|
+
y="0"
|
|
33
|
+
width="17"
|
|
34
|
+
height="36"
|
|
35
|
+
/>
|
|
36
|
+
</defs>
|
|
37
|
+
<g
|
|
38
|
+
id="Illustrations"
|
|
39
|
+
stroke="none"
|
|
40
|
+
stroke-width="1"
|
|
41
|
+
fill="none"
|
|
42
|
+
fill-rule="evenodd"
|
|
43
|
+
>
|
|
44
|
+
<g id="B-type" transform="translate(-1268.000000, -535.000000)">
|
|
45
|
+
<g id="Group-2" transform="translate(1268.000000, 535.000000)">
|
|
46
|
+
<path
|
|
47
|
+
id="Oval-Copy-2"
|
|
48
|
+
d="M39.5,86 C61.3152476,86 79,83.9106622 79,81.3333333 C79,78.7560045 57.3152476,78 35.5,78 C13.6847524,78 0,78.7560045 0,81.3333333 C0,83.9106622 17.6847524,86 39.5,86 Z"
|
|
49
|
+
fill="#F7F8FC"
|
|
50
|
+
/>
|
|
51
|
+
<polygon
|
|
52
|
+
id="Rectangle-Copy-14"
|
|
53
|
+
fill="#E5E7E9"
|
|
54
|
+
transform="translate(27.500000, 51.500000) scale(1, -1) translate(-27.500000, -51.500000) "
|
|
55
|
+
points="13 58 53 58 42 45 2 45"
|
|
56
|
+
/>
|
|
57
|
+
<g
|
|
58
|
+
id="Group-Copy"
|
|
59
|
+
transform="translate(34.500000, 31.500000) scale(-1, 1) rotate(-25.000000) translate(-34.500000, -31.500000) translate(7.000000, 10.000000)"
|
|
60
|
+
>
|
|
61
|
+
<polygon
|
|
62
|
+
id="Rectangle-Copy-10"
|
|
63
|
+
fill="#E5E7E9"
|
|
64
|
+
transform="translate(11.500000, 5.000000) scale(1, -1) translate(-11.500000, -5.000000) "
|
|
65
|
+
points="2.84078316e-14 3 18 3 23 7 5 7"
|
|
66
|
+
/>
|
|
67
|
+
<polygon id="Rectangle-Copy-11" fill="#EDEEF2" points="-3.69149156e-15 7 38 7 38 43 -3.69149156e-15 43" />
|
|
68
|
+
<rect
|
|
69
|
+
id="Rectangle-Copy-12"
|
|
70
|
+
:fill="`url(#linearGradient-1-${id})`"
|
|
71
|
+
transform="translate(46.500000, 25.000000) scale(-1, 1) translate(-46.500000, -25.000000) "
|
|
72
|
+
x="38"
|
|
73
|
+
y="7"
|
|
74
|
+
width="17"
|
|
75
|
+
height="36"
|
|
76
|
+
/>
|
|
77
|
+
<polygon
|
|
78
|
+
id="Rectangle-Copy-13"
|
|
79
|
+
fill="#F8F9FB"
|
|
80
|
+
transform="translate(39.500000, 3.500000) scale(-1, 1) translate(-39.500000, -3.500000) "
|
|
81
|
+
points="24 7 41 7 55 -3.63806207e-12 38 -3.63806207e-12"
|
|
82
|
+
/>
|
|
83
|
+
</g>
|
|
84
|
+
<rect
|
|
85
|
+
id="Rectangle-Copy-15"
|
|
86
|
+
:fill="`url(#linearGradient-2-${id})`"
|
|
87
|
+
x="13"
|
|
88
|
+
y="45"
|
|
89
|
+
width="40"
|
|
90
|
+
height="36"
|
|
91
|
+
/>
|
|
92
|
+
<g id="Rectangle-Copy-17" transform="translate(53.000000, 45.000000)">
|
|
93
|
+
<mask :id="`mask-4-${id}`" fill="white">
|
|
94
|
+
<use :xlink:href="`#path-3-${id}`" />
|
|
95
|
+
</mask>
|
|
96
|
+
<use
|
|
97
|
+
id="Mask"
|
|
98
|
+
fill="#E0E3E9"
|
|
99
|
+
transform="translate(8.500000, 18.000000) scale(-1, 1) translate(-8.500000, -18.000000) "
|
|
100
|
+
:xlink:href="`#path-3-${id}`"
|
|
101
|
+
/>
|
|
102
|
+
<polygon
|
|
103
|
+
id="Rectangle-Copy"
|
|
104
|
+
fill="#D5D7DE"
|
|
105
|
+
:mask="`url(#mask-4-${id})`"
|
|
106
|
+
transform="translate(12.000000, 9.000000) scale(-1, 1) translate(-12.000000, -9.000000) "
|
|
107
|
+
points="7 0 24 0 20 18 -1.70530257e-13 16"
|
|
108
|
+
/>
|
|
109
|
+
</g>
|
|
110
|
+
<polygon
|
|
111
|
+
id="Rectangle-Copy-18"
|
|
112
|
+
fill="#F8F9FB"
|
|
113
|
+
transform="translate(66.000000, 51.500000) scale(-1, 1) translate(-66.000000, -51.500000) "
|
|
114
|
+
points="62 45 79 45 70 58 53 58"
|
|
115
|
+
/>
|
|
116
|
+
</g>
|
|
117
|
+
</g>
|
|
118
|
+
</g>
|
|
119
|
+
</svg>
|
|
120
|
+
</template>
|
|
121
|
+
|
|
122
|
+
<script>
|
|
123
|
+
let id = 0;
|
|
124
|
+
export default {
|
|
125
|
+
name: 'ImgEmpty',
|
|
126
|
+
data() {
|
|
127
|
+
return {
|
|
128
|
+
id: ++id
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
};
|
|
132
|
+
</script>
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="es-empty">
|
|
3
|
+
<div class="es-empty__image" :style="imageStyle">
|
|
4
|
+
<img v-if="image" :src="image" ondragstart="return false" />
|
|
5
|
+
<template v-else>
|
|
6
|
+
<slot name="image">
|
|
7
|
+
<img-empty />
|
|
8
|
+
</slot>
|
|
9
|
+
</template>
|
|
10
|
+
</div>
|
|
11
|
+
<div class="es-empty__description">
|
|
12
|
+
<slot name="description">
|
|
13
|
+
<p>{{ description }}</p>
|
|
14
|
+
</slot>
|
|
15
|
+
</div>
|
|
16
|
+
<div v-if="$slots.default" class="es-empty__bottom">
|
|
17
|
+
<slot></slot>
|
|
18
|
+
</div>
|
|
19
|
+
</div>
|
|
20
|
+
</template>
|
|
21
|
+
|
|
22
|
+
<script>
|
|
23
|
+
import ImgEmpty from './img-empty.vue';
|
|
24
|
+
|
|
25
|
+
export default {
|
|
26
|
+
name: 'EsEmpty',
|
|
27
|
+
components: {
|
|
28
|
+
ImgEmpty
|
|
29
|
+
},
|
|
30
|
+
props: {
|
|
31
|
+
image: {
|
|
32
|
+
type: String,
|
|
33
|
+
default: ''
|
|
34
|
+
},
|
|
35
|
+
imageSize: Number,
|
|
36
|
+
description: {
|
|
37
|
+
type: String,
|
|
38
|
+
default: ''
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
computed: {
|
|
42
|
+
imageStyle() {
|
|
43
|
+
return {
|
|
44
|
+
width: this.imageSize ? `${this.imageSize}px` : ''
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
</script>
|