sh-view 1.7.5 → 2.0.0
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/.eslintrc.js +20 -21
- package/package.json +10 -10
- package/packages/assets/css/animated.scss +167 -2
- package/packages/assets/css/loader.scss +42 -42
- package/packages/assets/css/main.scss +41 -21
- package/packages/assets/css/theme.scss +83 -44
- package/packages/components/global-components/sh-alert/index.vue +173 -0
- package/packages/components/global-components/sh-badge/index.vue +227 -0
- package/packages/components/global-components/sh-card/index.vue +140 -122
- package/packages/components/global-components/sh-code-editor/index.vue +260 -260
- package/packages/components/global-components/sh-col/css/index.scss +76 -0
- package/packages/components/global-components/sh-col/index.vue +83 -0
- package/packages/components/global-components/sh-corner/index.vue +1 -9
- package/packages/components/global-components/sh-count-to/index.vue +102 -46
- package/packages/components/global-components/sh-date/index.vue +40 -0
- package/packages/components/global-components/sh-drawer/index.vue +518 -0
- package/packages/components/global-components/sh-drawer/scrollbar.js +76 -0
- package/packages/components/global-components/sh-empty/index.vue +43 -43
- package/packages/components/global-components/{sh-vxe-form → sh-form}/css/index.scss +6 -6
- package/packages/components/global-components/{sh-vxe-form → sh-form}/index.vue +114 -115
- package/packages/components/global-components/sh-form/js/methods.js +146 -0
- package/packages/components/global-components/{sh-vxe-form → sh-form}/mixin/defaultData.js +32 -33
- package/packages/components/global-components/sh-header/index.vue +293 -269
- package/packages/components/global-components/sh-icon/css/default/fonts/ionicons.svg +870 -0
- package/packages/components/global-components/sh-icon/css/default/fonts/ionicons.ttf +0 -0
- package/packages/components/global-components/sh-icon/css/default/fonts/ionicons.woff +0 -0
- package/packages/components/global-components/sh-icon/css/default/fonts/ionicons.woff2 +0 -0
- package/packages/components/global-components/sh-icon/css/default/icons.scss +2583 -0
- package/packages/components/global-components/sh-icon/css/default/index.scss +27 -0
- package/packages/components/global-components/sh-icon/css/font/fonts/iconfont.js +1 -0
- package/packages/components/global-components/sh-icon/css/font/fonts/iconfont.json +247 -0
- package/packages/components/global-components/sh-icon/css/font/fonts/iconfont.ttf +0 -0
- package/packages/components/global-components/sh-icon/css/font/fonts/iconfont.woff +0 -0
- package/packages/components/global-components/sh-icon/css/font/fonts/iconfont.woff2 +0 -0
- package/packages/components/global-components/sh-icon/css/font/icons.scss +135 -0
- package/packages/components/global-components/sh-icon/css/font/index.scss +16 -0
- package/packages/components/global-components/sh-icon/icon-default.vue +32 -0
- package/packages/components/global-components/sh-icon/{icons.vue → icon-font.vue} +32 -32
- package/packages/components/global-components/sh-icon/index.vue +28 -27
- package/packages/components/global-components/sh-image/index.vue +123 -0
- package/packages/components/global-components/sh-list/index.vue +141 -0
- package/packages/components/global-components/sh-loading/index.vue +49 -42
- package/packages/components/global-components/{sh-vxe-modal → sh-modal}/index.vue +209 -209
- package/packages/components/global-components/sh-noticebar/index.vue +201 -201
- package/packages/components/global-components/sh-poptip/index.vue +479 -0
- package/packages/components/global-components/sh-poptip/popper.js +115 -0
- package/packages/components/global-components/sh-progress/index.vue +290 -0
- package/packages/components/global-components/sh-pull-refresh/index.vue +290 -290
- package/packages/components/global-components/{sh-vxe-query → sh-query}/index.vue +317 -286
- package/packages/components/global-components/sh-result/index.vue +110 -88
- package/packages/components/global-components/sh-row/css/index.scss +21 -0
- package/packages/components/global-components/sh-row/index.vue +63 -0
- package/packages/components/global-components/sh-split/components/trigger.vue +33 -0
- package/packages/components/global-components/sh-split/index.vue +334 -0
- package/packages/components/global-components/sh-table/components/importModal.vue +351 -0
- package/packages/components/global-components/{sh-vxe-table → sh-table}/css/index.scss +4 -22
- package/packages/components/global-components/{sh-vxe-table → sh-table}/index.vue +329 -351
- package/packages/components/global-components/{sh-vxe-table → sh-table}/js/methods.js +91 -153
- package/packages/components/global-components/{sh-vxe-table → sh-table}/js/props.js +304 -313
- package/packages/components/global-components/{sh-vxe-table → sh-table}/mixin/defaultData.js +94 -116
- package/packages/components/global-components/sh-tabs/index.vue +315 -0
- package/packages/components/global-components/sh-tag/index.vue +163 -0
- package/packages/components/global-components/{sh-vxe-toolbar → sh-toolbar}/index.vue +177 -172
- package/packages/components/global-components/sh-tree/components/table-tree.vue +280 -0
- package/packages/components/global-components/sh-tree/css/index.scss +54 -0
- package/packages/components/global-components/sh-tree/index.vue +195 -0
- package/packages/components/global-components/sh-tree/mixin/treeProps.js +124 -0
- package/packages/components/global-components/sh-upload/index.vue +278 -418
- package/packages/components/global-components/sh-upload/js/ajax.js +80 -0
- package/packages/components/global-components/sh-upload/js/mixin.js +257 -0
- package/packages/components/global-components/sh-water-fall/index.vue +87 -87
- package/packages/components/index.js +85 -59
- package/packages/components/other-components/sh-cron-modal/css/index.scss +2 -2
- package/packages/components/other-components/sh-menu-card/index.vue +224 -224
- package/packages/css/index.js +4 -6
- package/packages/directive/index.js +19 -19
- package/packages/directive/module/click-out.js +14 -0
- package/packages/directive/module/draggable.js +42 -42
- package/packages/directive/module/line-clamp.js +22 -0
- package/packages/directive/module/prevent-click.js +18 -0
- package/packages/directive/module/resize.js +19 -0
- package/packages/directive/module/ripple.js +166 -0
- package/packages/index.js +39 -40
- package/packages/utils/transfer-queue.js +12 -0
- package/packages/vxeTable/css/index.scss +12 -98
- package/packages/vxeTable/css/variable.scss +7 -265
- package/packages/vxeTable/index.js +184 -184
- package/packages/vxeTable/plugins/export.js +450 -0
- package/packages/vxeTable/render/cell/vxe-render-checkgroup.vue +36 -36
- package/packages/vxeTable/render/cell/vxe-render-goption.vue +94 -93
- package/packages/vxeTable/render/cell/vxe-render-img.vue +21 -28
- package/packages/vxeTable/render/cell/vxe-render-input.vue +51 -51
- package/packages/vxeTable/render/cell/vxe-render-progress.vue +19 -19
- package/packages/vxeTable/render/cell/vxe-render-radiogroup.vue +36 -36
- package/packages/vxeTable/render/cell/vxe-render-select.vue +36 -36
- package/packages/vxeTable/render/cell/vxe-render-tree.vue +59 -59
- package/packages/vxeTable/render/globalRenders.jsx +498 -491
- package/packages/assets/icons/demo.css +0 -539
- package/packages/assets/icons/iconfont.css +0 -415
- package/packages/assets/icons/iconfont.js +0 -1
- package/packages/assets/icons/iconfont.json +0 -709
- package/packages/assets/icons/iconfont.ttf +0 -0
- package/packages/assets/icons/iconfont.woff +0 -0
- package/packages/assets/icons/iconfont.woff2 +0 -0
- package/packages/assets/img/image-error.png +0 -0
- package/packages/assets/img/square-image.png +0 -0
- package/packages/components/global-components/sh-iv-form/components/iv-group-item.vue +0 -57
- package/packages/components/global-components/sh-iv-form/components/iv-single-item.vue +0 -76
- package/packages/components/global-components/sh-iv-form/index.vue +0 -255
- package/packages/components/global-components/sh-layout/index.vue +0 -142
- package/packages/components/global-components/sh-upload/components/u-img.vue +0 -63
- package/packages/components/global-components/sh-upload/components/u-list.vue +0 -100
- package/packages/components/global-components/sh-vxe-form/js/methods.js +0 -170
- package/packages/components/global-components/sh-vxe-list/index.vue +0 -129
- package/packages/components/global-components/sh-vxe-table/components/importModal.vue +0 -377
- package/packages/components/global-components/sh-vxe-tree/components/table-tree.vue +0 -233
- package/packages/components/global-components/sh-vxe-tree/css/index.scss +0 -20
- package/packages/components/global-components/sh-vxe-tree/index.vue +0 -85
- package/packages/components/global-components/sh-vxe-tree/js/props.js +0 -120
- package/packages/components/global-components/sh-vxe-tree/js/treeMethods.js +0 -169
- package/packages/components/global-components/sh-vxe-tree/mixin/defaultData.js +0 -54
- package/packages/components/global-components/sh-vxe-tree/vxe-direct-tree.vue +0 -203
- package/packages/components/global-components/sh-vxe-tree/vxe-select-tree.vue +0 -291
- package/packages/components/other-components/sh-markdown/tinymce/langs/ar.js +0 -7
- package/packages/components/other-components/sh-markdown/tinymce/langs/az.js +0 -7
- package/packages/components/other-components/sh-markdown/tinymce/langs/bg_BG.js +0 -7
- package/packages/components/other-components/sh-markdown/tinymce/langs/bn_BD.js +0 -7
- package/packages/components/other-components/sh-markdown/tinymce/langs/ca.js +0 -7
- package/packages/components/other-components/sh-markdown/tinymce/langs/cs.js +0 -7
- package/packages/components/other-components/sh-markdown/tinymce/langs/cy.js +0 -7
- package/packages/components/other-components/sh-markdown/tinymce/langs/da.js +0 -7
- package/packages/components/other-components/sh-markdown/tinymce/langs/de.js +0 -7
- package/packages/components/other-components/sh-markdown/tinymce/langs/dv.js +0 -7
- package/packages/components/other-components/sh-markdown/tinymce/langs/el.js +0 -7
- package/packages/components/other-components/sh-markdown/tinymce/langs/eo.js +0 -7
- package/packages/components/other-components/sh-markdown/tinymce/langs/es.js +0 -7
- package/packages/components/other-components/sh-markdown/tinymce/langs/es_MX.js +0 -7
- package/packages/components/other-components/sh-markdown/tinymce/langs/et.js +0 -7
- package/packages/components/other-components/sh-markdown/tinymce/langs/eu.js +0 -7
- package/packages/components/other-components/sh-markdown/tinymce/langs/fa.js +0 -7
- package/packages/components/other-components/sh-markdown/tinymce/langs/fi.js +0 -7
- package/packages/components/other-components/sh-markdown/tinymce/langs/fr_FR.js +0 -7
- package/packages/components/other-components/sh-markdown/tinymce/langs/ga.js +0 -7
- package/packages/components/other-components/sh-markdown/tinymce/langs/gl.js +0 -7
- package/packages/components/other-components/sh-markdown/tinymce/langs/he_IL.js +0 -7
- package/packages/components/other-components/sh-markdown/tinymce/langs/hi.js +0 -7
- package/packages/components/other-components/sh-markdown/tinymce/langs/hr.js +0 -7
- package/packages/components/other-components/sh-markdown/tinymce/langs/hu_HU.js +0 -7
- package/packages/components/other-components/sh-markdown/tinymce/langs/hy.js +0 -7
- package/packages/components/other-components/sh-markdown/tinymce/langs/id.js +0 -7
- package/packages/components/other-components/sh-markdown/tinymce/langs/is_IS.js +0 -7
- package/packages/components/other-components/sh-markdown/tinymce/langs/it.js +0 -7
- package/packages/components/other-components/sh-markdown/tinymce/langs/ja.js +0 -7
- package/packages/components/other-components/sh-markdown/tinymce/langs/kab.js +0 -7
- package/packages/components/other-components/sh-markdown/tinymce/langs/kk.js +0 -7
- package/packages/components/other-components/sh-markdown/tinymce/langs/ko_KR.js +0 -7
- package/packages/components/other-components/sh-markdown/tinymce/langs/ku.js +0 -7
- package/packages/components/other-components/sh-markdown/tinymce/langs/lt.js +0 -7
- package/packages/components/other-components/sh-markdown/tinymce/langs/lv.js +0 -7
- package/packages/components/other-components/sh-markdown/tinymce/langs/nb_NO.js +0 -7
- package/packages/components/other-components/sh-markdown/tinymce/langs/ne.js +0 -7
- package/packages/components/other-components/sh-markdown/tinymce/langs/nl.js +0 -7
- package/packages/components/other-components/sh-markdown/tinymce/langs/nl_BE.js +0 -7
- package/packages/components/other-components/sh-markdown/tinymce/langs/oc.js +0 -7
- package/packages/components/other-components/sh-markdown/tinymce/langs/pl.js +0 -7
- package/packages/components/other-components/sh-markdown/tinymce/langs/pt_BR.js +0 -7
- package/packages/components/other-components/sh-markdown/tinymce/langs/ro.js +0 -7
- package/packages/components/other-components/sh-markdown/tinymce/langs/ru.js +0 -7
- package/packages/components/other-components/sh-markdown/tinymce/langs/sk.js +0 -7
- package/packages/components/other-components/sh-markdown/tinymce/langs/sl_SI.js +0 -7
- package/packages/components/other-components/sh-markdown/tinymce/langs/sq.js +0 -7
- package/packages/components/other-components/sh-markdown/tinymce/langs/sr.js +0 -7
- package/packages/components/other-components/sh-markdown/tinymce/langs/sv_SE.js +0 -7
- package/packages/components/other-components/sh-markdown/tinymce/langs/ta.js +0 -7
- package/packages/components/other-components/sh-markdown/tinymce/langs/tg.js +0 -7
- package/packages/components/other-components/sh-markdown/tinymce/langs/th_TH.js +0 -7
- package/packages/components/other-components/sh-markdown/tinymce/langs/tr.js +0 -7
- package/packages/components/other-components/sh-markdown/tinymce/langs/ug.js +0 -7
- package/packages/components/other-components/sh-markdown/tinymce/langs/uk.js +0 -7
- package/packages/components/other-components/sh-markdown/tinymce/langs/vi.js +0 -7
- package/packages/components/other-components/sh-markdown/tinymce/skins/content/dark/content.css +0 -72
- package/packages/components/other-components/sh-markdown/tinymce/skins/content/dark/content.min.css +0 -7
- package/packages/components/other-components/sh-markdown/tinymce/skins/content/default/content.min.css +0 -7
- package/packages/components/other-components/sh-markdown/tinymce/skins/content/document/content.css +0 -72
- package/packages/components/other-components/sh-markdown/tinymce/skins/content/document/content.min.css +0 -7
- package/packages/components/other-components/sh-markdown/tinymce/skins/content/writer/content.css +0 -68
- package/packages/components/other-components/sh-markdown/tinymce/skins/content/writer/content.min.css +0 -7
- package/packages/components/other-components/sh-markdown/tinymce/skins/ui/oxide-dark/content.css +0 -714
- package/packages/components/other-components/sh-markdown/tinymce/skins/ui/oxide-dark/content.inline.css +0 -726
- package/packages/components/other-components/sh-markdown/tinymce/skins/ui/oxide-dark/content.inline.min.css +0 -7
- package/packages/components/other-components/sh-markdown/tinymce/skins/ui/oxide-dark/content.min.css +0 -7
- package/packages/components/other-components/sh-markdown/tinymce/skins/ui/oxide-dark/content.mobile.css +0 -29
- package/packages/components/other-components/sh-markdown/tinymce/skins/ui/oxide-dark/content.mobile.min.css +0 -7
- package/packages/components/other-components/sh-markdown/tinymce/skins/ui/oxide-dark/fonts/tinymce-mobile.woff +0 -0
- package/packages/components/other-components/sh-markdown/tinymce/skins/ui/oxide-dark/skin.css +0 -3047
- package/packages/components/other-components/sh-markdown/tinymce/skins/ui/oxide-dark/skin.min.css +0 -7
- package/packages/components/other-components/sh-markdown/tinymce/skins/ui/oxide-dark/skin.mobile.css +0 -673
- package/packages/components/other-components/sh-markdown/tinymce/skins/ui/oxide-dark/skin.mobile.min.css +0 -7
- package/packages/components/other-components/sh-markdown/tinymce/skins/ui/oxide-dark/skin.shadowdom.css +0 -37
- package/packages/components/other-components/sh-markdown/tinymce/skins/ui/oxide-dark/skin.shadowdom.min.css +0 -7
- package/packages/directive/directives.js +0 -27
- package/packages/iview/css/index.scss +0 -32
- package/packages/iview/index.js +0 -25
- /package/packages/components/global-components/{sh-vxe-form → sh-form}/components/form-item.vue +0 -0
- /package/packages/components/global-components/{sh-vxe-form → sh-form}/js/props.js +0 -0
- /package/packages/components/global-components/{sh-vxe-table → sh-table}/js/excel_to_json.js +0 -0
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
function magnitude(x1, y1, x2, y2) {
|
|
2
|
+
const deltaX = x1 - x2
|
|
3
|
+
const deltaY = y1 - y2
|
|
4
|
+
return Math.sqrt(deltaX * deltaX + deltaY * deltaY)
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
const RIPPLE_COUNT = 'vRippleCountInternal'
|
|
8
|
+
function setRippleCount(el, count) {
|
|
9
|
+
el.dataset[RIPPLE_COUNT] = count.toString()
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
function getRippleCount(el) {
|
|
13
|
+
return parseInt(el.dataset[RIPPLE_COUNT] ?? '0', 10)
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
function incrementRippleCount(el) {
|
|
17
|
+
const count = getRippleCount(el)
|
|
18
|
+
setRippleCount(el, count + 1)
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
function decrementRippleCount(el) {
|
|
22
|
+
const count = getRippleCount(el)
|
|
23
|
+
setRippleCount(el, count - 1)
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
function deleteRippleCount(el) {
|
|
27
|
+
delete el.dataset[RIPPLE_COUNT]
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
const getRelativePointer = ({ x, y }, { top, left }) => ({ x: x - left, y: y - top })
|
|
31
|
+
|
|
32
|
+
const getDistanceToFurthestCorner = (x, y, { width, height }) => {
|
|
33
|
+
// 获取点击目标的位置到块级作用域边界的距离
|
|
34
|
+
const topLeft = magnitude(x, y, 0, 0)
|
|
35
|
+
const topRight = magnitude(x, y, width, 0)
|
|
36
|
+
const bottomLeft = magnitude(x, y, 0, height)
|
|
37
|
+
const bottomRight = magnitude(x, y, width, height)
|
|
38
|
+
return Math.max(topLeft, topRight, bottomLeft, bottomRight)
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
const createContainer = ({ borderTopLeftRadius, borderTopRightRadius, borderBottomLeftRadius, borderBottomRightRadius }) => {
|
|
42
|
+
const rippleContainer = document.createElement('div')
|
|
43
|
+
rippleContainer.style.top = '0'
|
|
44
|
+
rippleContainer.style.left = '0'
|
|
45
|
+
rippleContainer.style.width = '100%'
|
|
46
|
+
rippleContainer.style.height = '100%'
|
|
47
|
+
rippleContainer.style.position = 'absolute'
|
|
48
|
+
rippleContainer.style.borderRadius = `${borderTopLeftRadius} ${borderTopRightRadius} ${borderBottomRightRadius} ${borderBottomLeftRadius}`
|
|
49
|
+
rippleContainer.style.overflow = 'hidden'
|
|
50
|
+
rippleContainer.style.pointerEvents = 'none'
|
|
51
|
+
// 兼容 ie 苹果
|
|
52
|
+
rippleContainer.style.webkitMaskImage = '-webkit-radial-gradient(white, black)'
|
|
53
|
+
return rippleContainer
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
const createrippleElement = (x, y, size, options) => {
|
|
57
|
+
const rippleElement = document.createElement('div')
|
|
58
|
+
rippleElement.style.position = 'absolute'
|
|
59
|
+
rippleElement.style.width = `${size}px`
|
|
60
|
+
rippleElement.style.height = `${size}px`
|
|
61
|
+
rippleElement.style.top = `${y}px`
|
|
62
|
+
rippleElement.style.left = `${x}px`
|
|
63
|
+
rippleElement.style.background = options.color
|
|
64
|
+
rippleElement.style.borderRadius = '50%'
|
|
65
|
+
rippleElement.style.opacity = `${options.initialOpacity}`
|
|
66
|
+
rippleElement.style.transform = `translate(-50%,-50%) scale(0)`
|
|
67
|
+
rippleElement.style.transition = `transform ${options.duration / 1000}s ${options.easing}, opacity ${options.duration / 1000}s ${options.easing}`
|
|
68
|
+
return rippleElement
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
const MULTIPLE_NUMBER = 2.05
|
|
72
|
+
|
|
73
|
+
const ripple = (event, el, options) => {
|
|
74
|
+
const rect = el.getBoundingClientRect()
|
|
75
|
+
const computedStyles = window.getComputedStyle(el)
|
|
76
|
+
const { x, y } = getRelativePointer(event, rect)
|
|
77
|
+
const size = MULTIPLE_NUMBER * getDistanceToFurthestCorner(x, y, rect)
|
|
78
|
+
|
|
79
|
+
const rippleContainer = createContainer(computedStyles)
|
|
80
|
+
const rippleEl = createrippleElement(x, y, size, options)
|
|
81
|
+
let originalPositionValue = ''
|
|
82
|
+
let shouldDissolveripple = false
|
|
83
|
+
let token = null
|
|
84
|
+
function dissolveripple() {
|
|
85
|
+
rippleEl.style.transition = 'opacity 150ms linear'
|
|
86
|
+
rippleEl.style.opacity = '0'
|
|
87
|
+
setTimeout(() => {
|
|
88
|
+
rippleContainer.remove()
|
|
89
|
+
decrementRippleCount(el)
|
|
90
|
+
if (getRippleCount(el) === 0) {
|
|
91
|
+
deleteRippleCount(el)
|
|
92
|
+
el.style.position = originalPositionValue
|
|
93
|
+
}
|
|
94
|
+
}, 150)
|
|
95
|
+
}
|
|
96
|
+
function releaseripple(e) {
|
|
97
|
+
if (typeof e !== 'undefined') {
|
|
98
|
+
document.removeEventListener('pointerup', releaseripple)
|
|
99
|
+
document.removeEventListener('pointercancel', releaseripple)
|
|
100
|
+
}
|
|
101
|
+
if (shouldDissolveripple) {
|
|
102
|
+
dissolveripple()
|
|
103
|
+
} else {
|
|
104
|
+
shouldDissolveripple = true
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
function cancelripple() {
|
|
108
|
+
clearTimeout(token)
|
|
109
|
+
rippleContainer.remove()
|
|
110
|
+
document.removeEventListener('pointerup', releaseripple)
|
|
111
|
+
document.removeEventListener('pointercancel', releaseripple)
|
|
112
|
+
document.removeEventListener('pointercancel', cancelripple)
|
|
113
|
+
}
|
|
114
|
+
incrementRippleCount(el)
|
|
115
|
+
if (computedStyles.position === 'static') {
|
|
116
|
+
if (el.style.position) {
|
|
117
|
+
originalPositionValue = el.style.position
|
|
118
|
+
}
|
|
119
|
+
el.style.position = 'relative'
|
|
120
|
+
}
|
|
121
|
+
rippleContainer.appendChild(rippleEl)
|
|
122
|
+
el.appendChild(rippleContainer)
|
|
123
|
+
document.addEventListener('pointerup', releaseripple)
|
|
124
|
+
document.addEventListener('pointercancel', releaseripple)
|
|
125
|
+
token = setTimeout(() => {
|
|
126
|
+
document.removeEventListener('pointercancel', cancelripple)
|
|
127
|
+
requestAnimationFrame(() => {
|
|
128
|
+
rippleEl.style.transform = `translate(-50%,-50%) scale(1)`
|
|
129
|
+
rippleEl.style.opacity = `${options.finalOpacity}`
|
|
130
|
+
setTimeout(() => releaseripple(), options.duration)
|
|
131
|
+
})
|
|
132
|
+
}, options.delay)
|
|
133
|
+
document.addEventListener('pointercancel', cancelripple)
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
const defaultOptions = {
|
|
137
|
+
directive: 'ripple',
|
|
138
|
+
color: 'currentColor', // 你可以设置 ·currentColor· to 能够自动使用元素的文本颜色
|
|
139
|
+
initialOpacity: 0.2, // 第一次出现的透明度
|
|
140
|
+
finalOpacity: 0.1, // 在透明度 结束的时候 stopped 的时候 我们设置透明度的大小
|
|
141
|
+
duration: 400, // 动画持续时间
|
|
142
|
+
easing: 'ease-out', // css 动画 从开始到结束 以相同的时间来执行动画
|
|
143
|
+
delay: 75, // 类似于 debounceTime
|
|
144
|
+
disabled: false // 类似于 点击禁止ripple效果
|
|
145
|
+
}
|
|
146
|
+
export default {
|
|
147
|
+
mounted(el, binding) {
|
|
148
|
+
el.addEventListener('pointerdown', event => {
|
|
149
|
+
const options = binding.value || {}
|
|
150
|
+
// 必须确保disabled 属性存在 否则指令终止报错
|
|
151
|
+
if (binding.value && binding.value.disabled) {
|
|
152
|
+
return
|
|
153
|
+
}
|
|
154
|
+
if (options === false) {
|
|
155
|
+
return
|
|
156
|
+
}
|
|
157
|
+
ripple(event, el, {
|
|
158
|
+
...defaultOptions,
|
|
159
|
+
...options
|
|
160
|
+
})
|
|
161
|
+
})
|
|
162
|
+
},
|
|
163
|
+
updated(el, binding) {
|
|
164
|
+
binding.value = {}
|
|
165
|
+
}
|
|
166
|
+
}
|
package/packages/index.js
CHANGED
|
@@ -1,40 +1,39 @@
|
|
|
1
|
-
import packageConfig from '../package.json'
|
|
2
|
-
import { utils } from 'sh-tools'
|
|
3
|
-
import { VueMasonryPlugin } from 'vue-masonry'
|
|
4
|
-
import directive from './directive/index'
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
import
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
root.config.globalProperties.$
|
|
15
|
-
root.mixin(mixin)
|
|
16
|
-
root.use(VueMasonryPlugin, option)
|
|
17
|
-
root.use(directive)
|
|
18
|
-
root.use(
|
|
19
|
-
root.use(
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
let
|
|
30
|
-
let
|
|
31
|
-
let
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
export default ShUI
|
|
1
|
+
import packageConfig from '../package.json'
|
|
2
|
+
import { utils, notice } from 'sh-tools'
|
|
3
|
+
import { VueMasonryPlugin } from 'vue-masonry'
|
|
4
|
+
import directive from './directive/index'
|
|
5
|
+
import vxeTable from './vxeTable/index'
|
|
6
|
+
import globalComponents from './components/index'
|
|
7
|
+
import mixin from './mixin/index'
|
|
8
|
+
import './css/index'
|
|
9
|
+
|
|
10
|
+
// 全局公共封装组件
|
|
11
|
+
const install = function (root, option = {}) {
|
|
12
|
+
if (install.installed) return
|
|
13
|
+
root.config.globalProperties.$vUtils = utils
|
|
14
|
+
root.config.globalProperties.$Notice = notice
|
|
15
|
+
root.mixin(mixin)
|
|
16
|
+
root.use(VueMasonryPlugin, option)
|
|
17
|
+
root.use(directive)
|
|
18
|
+
root.use(vxeTable, option)
|
|
19
|
+
root.use(globalComponents, option)
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
const ShUI = {
|
|
23
|
+
name: packageConfig.name,
|
|
24
|
+
version: packageConfig.version,
|
|
25
|
+
install
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
let consInfo = ''
|
|
29
|
+
let defaultBg = 'padding: 5px; color: #111; background: #f5f7f9; font-weight: bold;'
|
|
30
|
+
let tagBg1 = 'padding: 5px; color: #fff; background: #8e2eff; font-weight: bold;'
|
|
31
|
+
let tagBg2 = 'padding: 5px; color: #333; background: #ffee2e; font-weight: bold;'
|
|
32
|
+
if ((window.navigator.language || window.navigator.browserLanguage).toLowerCase() === 'zh-cn') {
|
|
33
|
+
consInfo = `%c由%c${ShUI.name}%c提供技术支持,版本%c${ShUI.version}%c`
|
|
34
|
+
} else {
|
|
35
|
+
consInfo = `%cPowered by%c${ShUI.name}%c,version%c${ShUI.version}%c`
|
|
36
|
+
}
|
|
37
|
+
console.info(consInfo, defaultBg, tagBg1, defaultBg, tagBg2, defaultBg)
|
|
38
|
+
|
|
39
|
+
export default ShUI
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/* 自定义主题覆盖部分开始 */
|
|
2
|
-
$theme-color: var(--
|
|
3
|
-
$theme-weak-color: var(--
|
|
2
|
+
$theme-color: var(--vxe-primary-color);
|
|
3
|
+
$theme-weak-color: var(--vxe-primary-lighten-color);
|
|
4
4
|
|
|
5
5
|
@import "variable.scss";
|
|
6
6
|
@import 'vxe-table/styles/all.scss';
|
|
@@ -26,68 +26,8 @@ input:focus, textarea:focus,
|
|
|
26
26
|
background-color: #a50aa5;
|
|
27
27
|
border-color: #a50aa5;
|
|
28
28
|
}
|
|
29
|
-
// 主题色按钮
|
|
30
|
-
.vxe-button.type--button.theme--theme,
|
|
31
|
-
.vxe-button.type--button.theme--theme:hover {
|
|
32
|
-
color: #fff;
|
|
33
|
-
}
|
|
34
|
-
.vxe-button.type--button.theme--theme {
|
|
35
|
-
background-color: $theme-color;
|
|
36
|
-
border-color: $theme-color;
|
|
37
|
-
}
|
|
38
|
-
.vxe-button.type--button.theme--theme:active {
|
|
39
|
-
background-color: $theme-color;
|
|
40
|
-
border-color: $theme-color;
|
|
41
|
-
opacity: 0.8;
|
|
42
|
-
}
|
|
43
|
-
.vxe-button.type--button.theme--theme.is--disabled, .vxe-button.type--button.theme--purple.is--disabled{
|
|
44
|
-
opacity: 0.8;
|
|
45
|
-
color: #eee;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
.vxe-pager.is--background .vxe-pager--jump-next:not(.is--disabled).is--active, .vxe-pager.is--background .vxe-pager--jump-prev:not(.is--disabled).is--active, .vxe-pager.is--background .vxe-pager--num-btn:not(.is--disabled).is--active, .vxe-pager.is--perfect .vxe-pager--jump-next:not(.is--disabled).is--active, .vxe-pager.is--perfect .vxe-pager--jump-prev:not(.is--disabled).is--active, .vxe-pager.is--perfect .vxe-pager--num-btn:not(.is--disabled).is--active{
|
|
49
|
-
background-color: $theme-color;
|
|
50
|
-
}
|
|
51
|
-
.vxe-pager.is--background .vxe-pager--jump-next:not(.is--disabled).is--active:focus, .vxe-pager.is--background .vxe-pager--jump-prev:not(.is--disabled).is--active:focus, .vxe-pager.is--background .vxe-pager--num-btn:not(.is--disabled).is--active:focus, .vxe-pager.is--perfect .vxe-pager--jump-next:not(.is--disabled).is--active:focus, .vxe-pager.is--perfect .vxe-pager--jump-prev:not(.is--disabled).is--active:focus, .vxe-pager.is--perfect .vxe-pager--num-btn:not(.is--disabled).is--active:focus{
|
|
52
|
-
border-color: $theme-color;
|
|
53
|
-
box-shadow: none;
|
|
54
|
-
}
|
|
55
|
-
.vxe-pager.is--background .vxe-pager--jump-next:not(.is--disabled).is--active:hover, .vxe-pager.is--background .vxe-pager--jump-prev:not(.is--disabled).is--active:hover, .vxe-pager.is--background .vxe-pager--num-btn:not(.is--disabled).is--active:hover, .vxe-pager.is--perfect .vxe-pager--jump-next:not(.is--disabled).is--active:hover, .vxe-pager.is--perfect .vxe-pager--jump-prev:not(.is--disabled).is--active:hover, .vxe-pager.is--perfect .vxe-pager--num-btn:not(.is--disabled).is--active:hover{
|
|
56
|
-
background-color: $theme-color;
|
|
57
|
-
}
|
|
58
|
-
.vxe-pager.is--border .vxe-pager--num-btn.is--active{
|
|
59
|
-
border-color: $theme-color;
|
|
60
|
-
}
|
|
61
|
-
.vxe-table--render-default.border--default .vxe-table--header-wrapper, .vxe-table--render-default.border--full .vxe-table--header-wrapper, .vxe-table--render-default.border--outer .vxe-table--header-wrapper{
|
|
62
|
-
background-color: var(--header-color);
|
|
63
|
-
}
|
|
64
|
-
.vxe-modal--wrapper .vxe-modal--header{
|
|
65
|
-
background-color: $theme-weak-color;
|
|
66
|
-
}
|
|
67
|
-
.is--checked.vxe-table--filter-option .vxe-checkbox--icon, .is--checked.vxe-export--panel-column-option .vxe-checkbox--icon, .vxe-table--render-default .is--checked.vxe-cell--checkbox .vxe-checkbox--icon, .is--checked.vxe-custom--option .vxe-checkbox--icon, .is--checked.vxe-checkbox .vxe-checkbox--icon, .is--indeterminate.vxe-table--filter-option .vxe-checkbox--icon, .is--indeterminate.vxe-export--panel-column-option .vxe-checkbox--icon, .vxe-table--render-default .is--indeterminate.vxe-cell--checkbox .vxe-checkbox--icon, .is--indeterminate.vxe-custom--option .vxe-checkbox--icon, .is--indeterminate.vxe-checkbox .vxe-checkbox--icon{
|
|
68
|
-
color: $theme-color !important;
|
|
69
|
-
&:hover{
|
|
70
|
-
color: $theme-color;
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
.is--checked.vxe-radio .vxe-radio--icon, .vxe-table--render-default .is--checked.vxe-cell--radio .vxe-radio--icon{
|
|
74
|
-
color: $theme-color !important;
|
|
75
|
-
&:hover{
|
|
76
|
-
color: $theme-color;
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
.vxe-checkbox:not(.is--disabled) > input:focus + .vxe-checkbox--icon{
|
|
80
|
-
color: $theme-color;
|
|
81
|
-
box-shadow: none;
|
|
82
|
-
}
|
|
83
|
-
.vxe-table--render-default .is--checked.vxe-cell--radio .vxe-radio--checked-icon:before{
|
|
84
|
-
background-color: $theme-color;
|
|
85
|
-
border-color: $theme-color;
|
|
86
|
-
}
|
|
87
29
|
/* 自定义主题覆盖部分结束 */
|
|
88
30
|
|
|
89
|
-
|
|
90
|
-
|
|
91
31
|
// 按钮
|
|
92
32
|
button:focus, .vxe-button.type--button:not(.is--disabled):focus{
|
|
93
33
|
box-shadow: none;
|
|
@@ -102,7 +42,7 @@ button:focus, .vxe-button.type--button:not(.is--disabled):focus{
|
|
|
102
42
|
float: none;
|
|
103
43
|
&.is--error{
|
|
104
44
|
.sh-code-editor{
|
|
105
|
-
border-color: var(--
|
|
45
|
+
border-color: var(--vxe-danger-color) !important;
|
|
106
46
|
}
|
|
107
47
|
}
|
|
108
48
|
.vxe-form--item-inner{
|
|
@@ -144,9 +84,6 @@ button:focus, .vxe-button.type--button:not(.is--disabled):focus{
|
|
|
144
84
|
|
|
145
85
|
// 下拉容器
|
|
146
86
|
.vxe-pulldown--panel{
|
|
147
|
-
&.animat--leave {
|
|
148
|
-
transform-style: unset;
|
|
149
|
-
}
|
|
150
87
|
.vxe-pulldown--wrapper{
|
|
151
88
|
box-shadow: 0 0 6px 2px rgba(0,0,0,0.1);
|
|
152
89
|
padding: 0;
|
|
@@ -159,6 +96,9 @@ button:focus, .vxe-button.type--button:not(.is--disabled):focus{
|
|
|
159
96
|
.vxe-modal--wrapper{
|
|
160
97
|
width: calc(100%);
|
|
161
98
|
height: calc(100%);
|
|
99
|
+
.vxe-modal--header{
|
|
100
|
+
background-color: var(--primary-weak-color);
|
|
101
|
+
}
|
|
162
102
|
&.vxe-modal--preview{
|
|
163
103
|
.vxe-modal--box{
|
|
164
104
|
.vxe-modal--content{
|
|
@@ -168,7 +108,7 @@ button:focus, .vxe-button.type--button:not(.is--disabled):focus{
|
|
|
168
108
|
}
|
|
169
109
|
&.type--modal {
|
|
170
110
|
.vxe-modal--footer{
|
|
171
|
-
border-top: 1px solid var(--border-color);
|
|
111
|
+
border-top: 1px solid var(--vxe-table-border-color);
|
|
172
112
|
padding-top: 0.5rem;
|
|
173
113
|
padding-bottom: 0.5em;
|
|
174
114
|
}
|
|
@@ -197,13 +137,6 @@ button:focus, .vxe-button.type--button:not(.is--disabled):focus{
|
|
|
197
137
|
&.vxe-table--render-default{
|
|
198
138
|
font-family: inherit;
|
|
199
139
|
color: inherit;
|
|
200
|
-
&.vxe-editable{
|
|
201
|
-
.vxe-body--column{
|
|
202
|
-
&.col--actived{
|
|
203
|
-
background: var(--theme-weak-color);
|
|
204
|
-
}
|
|
205
|
-
}
|
|
206
|
-
}
|
|
207
140
|
.vxe-table--render-wrapper{
|
|
208
141
|
.vxe-cell{
|
|
209
142
|
padding-left: 2px;
|
|
@@ -256,25 +189,6 @@ button:focus, .vxe-button.type--button:not(.is--disabled):focus{
|
|
|
256
189
|
}
|
|
257
190
|
}
|
|
258
191
|
}
|
|
259
|
-
.vxe-grid--form-wrapper{
|
|
260
|
-
.vxe-form{
|
|
261
|
-
&.vxe-form-collapsed{
|
|
262
|
-
&.vxe-form-collapsed-open{
|
|
263
|
-
.vxe-form--wrapper{
|
|
264
|
-
max-height: 200px;
|
|
265
|
-
overflow: auto;
|
|
266
|
-
}
|
|
267
|
-
}
|
|
268
|
-
&.vxe-form-collapsed-close{
|
|
269
|
-
.vxe-form--wrapper{
|
|
270
|
-
}
|
|
271
|
-
}
|
|
272
|
-
}
|
|
273
|
-
.vxe-form-slots{
|
|
274
|
-
display: block;
|
|
275
|
-
}
|
|
276
|
-
}
|
|
277
|
-
}
|
|
278
192
|
}
|
|
279
193
|
|
|
280
194
|
// 渲染器
|
|
@@ -369,13 +283,13 @@ button:focus, .vxe-button.type--button:not(.is--disabled):focus{
|
|
|
369
283
|
right: 0;
|
|
370
284
|
bottom: 0;
|
|
371
285
|
width: 1px;
|
|
372
|
-
background-color: var(--border-color);
|
|
286
|
+
background-color: var(--vxe-table-border-color);
|
|
373
287
|
}
|
|
374
288
|
&.basic:after{
|
|
375
|
-
background-color: var(--danger-color);
|
|
289
|
+
background-color: var(--vxe-danger-color);
|
|
376
290
|
}
|
|
377
291
|
&.commafy:after{
|
|
378
|
-
background-color: var(--success-color);
|
|
292
|
+
background-color: var(--vxe-success-color);
|
|
379
293
|
}
|
|
380
294
|
}
|
|
381
295
|
}
|
|
@@ -395,12 +309,12 @@ button:focus, .vxe-button.type--button:not(.is--disabled):focus{
|
|
|
395
309
|
top: 100%;
|
|
396
310
|
right: -2px;
|
|
397
311
|
height: 100%;
|
|
398
|
-
border-top: 1px solid var(--border-color);
|
|
312
|
+
border-top: 1px solid var(--vxe-table-border-color);
|
|
399
313
|
}
|
|
400
314
|
}
|
|
401
315
|
}
|
|
402
316
|
.header-money-unit-text{
|
|
403
|
-
color: var(--
|
|
317
|
+
color: var(--vxe-primary-color);
|
|
404
318
|
font-size: .9em;
|
|
405
319
|
}
|
|
406
320
|
}
|