@utogether/udp-core 1.0.0 → 1.0.1-beta.1

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 (144) hide show
  1. package/build/plugins.ts +8 -2
  2. package/dist/{403-B1R-4vXw.js → 403-Dp617CWX.js} +9 -8
  3. package/dist/{404-fXPl8csw.js → 404-Cz_Axb6Y.js} +15 -14
  4. package/dist/{500-eI5842YB.js → 500-BGCtRNse.js} +11 -10
  5. package/dist/{AuthorityInfo-CfVH6PaB.js → AuthorityInfo-DGGfm7IS.js} +1 -1
  6. package/dist/{AuthorityInfo.vue_vue_type_style_index_0_lang-DbK-f8jH.js → AuthorityInfo.vue_vue_type_style_index_0_lang-BqccGW7v.js} +3 -3
  7. package/dist/{AuthorityPanel-BaLMwMgW.js → AuthorityPanel-BeBNiwqc.js} +1 -1
  8. package/dist/{AuthorityPanel.vue_vue_type_style_index_0_lang-C_bkqLD9.js → AuthorityPanel.vue_vue_type_style_index_0_lang-CIYmnP9-.js} +6 -6
  9. package/dist/{Company-CYC9Avfz.js → Company-IV3GTnzY.js} +3 -3
  10. package/dist/{CompanyPanel-B4MzoqN_.js → CompanyPanel-qV-_VtoL.js} +10 -10
  11. package/dist/{Department-B4BNSiYx.js → Department-B3W-OxW8.js} +3 -3
  12. package/dist/{DepartmentPanel-zJO89L2O.js → DepartmentPanel-Cw3OWxE7.js} +23 -23
  13. package/dist/{DesignPanel-S8P0J97f.js → DesignPanel-BFxR2fHJ.js} +1 -1
  14. package/dist/{DesignPanel.vue_vue_type_style_index_0_lang-DW-_Vqrr.js → DesignPanel.vue_vue_type_style_index_0_lang-DljbeFba.js} +6 -6
  15. package/dist/{DictView-bIS5-rK-.js → DictView-C-i7e4hZ.js} +9 -9
  16. package/dist/InvOrganization-cfT6riGU.js +260 -0
  17. package/dist/{Org-kXHSjsgJ.js → Org-CA7vTDIF.js} +3 -3
  18. package/dist/{Preview-CRyiwUIR.js → Preview-BlDMmpdR.js} +1 -1
  19. package/dist/{ReportDefine-WZYIx8Sm.js → ReportDefine-Cub_85LA.js} +1 -1
  20. package/dist/{ReportDesign-D-7GKgpb.js → ReportDesign-hFhq5UVE.js} +10 -10
  21. package/dist/{ReportQuery-BIIJny6w.js → ReportQuery-ChkWEyxT.js} +5 -5
  22. package/dist/{ReportQueryFrom-OoUl7N2O.js → ReportQueryFrom-KVyD_8Dj.js} +1 -1
  23. package/dist/{ReportQueryFrom.vue_vue_type_style_index_0_lang-B878fgj8.js → ReportQueryFrom.vue_vue_type_style_index_0_lang-CLNODquq.js} +6 -5
  24. package/dist/{ReportTemplate-Cfeq9US-.js → ReportTemplate-ag9NDvh2.js} +11 -11
  25. package/dist/{Role-BwTV2QMH.js → Role-_q3lQ8CZ.js} +3 -3
  26. package/dist/{RoleAssign-De1JjOun.js → RoleAssign-DZb9IRsm.js} +3 -3
  27. package/dist/{RolePanel-pUBXsqCM.js → RolePanel-BQb1LlhD.js} +1 -1
  28. package/dist/{RolePanel-E3RcdByM.js → RolePanel-CsLsz-Ds.js} +1 -1
  29. package/dist/{RolePanel.vue_vue_type_script_setup_true_lang-B2pQwHb0.js → RolePanel.vue_vue_type_script_setup_true_lang-BrnRgHEk.js} +12 -12
  30. package/dist/{RolePanel.vue_vue_type_script_setup_true_lang-CTIad9_Q.js → RolePanel.vue_vue_type_script_setup_true_lang-cmW7zBLu.js} +4 -4
  31. package/dist/{ScrollPanel.vue_vue_type_style_index_0_lang-vMR1fBi0.js → ScrollPanel.vue_vue_type_style_index_0_lang-CaFKRwXu.js} +8 -8
  32. package/dist/{Staff-Czm7A8vI.js → Staff-BSf9Ypbk.js} +3 -3
  33. package/dist/StaffInfo-BNKasyMF.js +4 -0
  34. package/dist/{StaffInfo.vue_vue_type_style_index_0_lang-DMTL7KCh.js → StaffInfo.vue_vue_type_script_setup_true_lang-DDZ7ukd0.js} +7 -7
  35. package/dist/{StaffPanel-CHk60LEz.js → StaffPanel-Bpq0WVlH.js} +1 -1
  36. package/dist/{StaffPanel.vue_vue_type_script_setup_true_lang-iPKLb5wG.js → StaffPanel.vue_vue_type_script_setup_true_lang-BhiJ0Q-Q.js} +46 -49
  37. package/dist/{SysUser-BGwbttRn.js → SysUser-FAABuNti.js} +2 -2
  38. package/dist/{SysUserPanel-BCbKoLKt.js → SysUserPanel-PxJeOgHm.js} +1 -1
  39. package/dist/{SysUserPanel.vue_vue_type_script_setup_true_lang-0QUjnhjF.js → SysUserPanel.vue_vue_type_script_setup_true_lang-njefUln5.js} +1 -2
  40. package/dist/{SystemMenu-BkqZSDKl.js → SystemMenu-C-7NAGon.js} +47 -45
  41. package/dist/{UserInfo-BsyAcT2d.js → UserInfo-ClXKtyGo.js} +1 -1
  42. package/dist/{UserInfo.vue_vue_type_style_index_0_lang-D0-KDxAh.js → UserInfo.vue_vue_type_style_index_0_lang-8N7P4Hl7.js} +13 -13
  43. package/dist/{childView-CyuLTUqC.js → childView-C_HmDQNd.js} +1 -1
  44. package/dist/{childView-CF83nhxb.js → childView-uUlBcTza.js} +1 -1
  45. package/dist/{childView.vue_vue_type_style_index_0_lang-CNSgGda3.js → childView.vue_vue_type_style_index_0_lang-Ckjmw6wJ.js} +6 -6
  46. package/dist/{childView.vue_vue_type_style_index_0_lang-Cch4lE-i.js → childView.vue_vue_type_style_index_0_lang-y0sDvYx5.js} +1 -1
  47. package/dist/{code-rule-Bz-gnktN.js → code-rule-AgCVDKFy.js} +6 -6
  48. package/dist/core.es.js +4 -4
  49. package/dist/{cron-task-CIifSUdW.js → cron-task-C6FgQxTi.js} +11 -11
  50. package/dist/{frameView-_d2mqjjQ.js → frameView-BDgISK7N.js} +15 -14
  51. package/dist/index-DzOzUkf6.js +3388 -0
  52. package/dist/{layoutView-DLKVepB8.js → layoutView-yb3DV2DQ.js} +658 -653
  53. package/dist/{login-LREiDfFU.js → login-RRpljbkm.js} +26 -25
  54. package/dist/{lov-view-DDrIVILB.js → lov-view-C9-rjzZR.js} +5 -5
  55. package/dist/{menuInfo-B1FUV-Sk.js → menuInfo-CzPQyFhp.js} +1 -1
  56. package/dist/{menuInfo.vue_vue_type_style_index_0_lang-Cnk3vdtD.js → menuInfo.vue_vue_type_style_index_0_lang-BumXunCg.js} +17 -17
  57. package/dist/pda-app-Dvy3U-b6.js +696 -0
  58. package/dist/redirect-BqegffKC.js +15 -0
  59. package/dist/{resource-BCwx9fEv.js → resource-Fy0lFkSV.js} +7 -7
  60. package/dist/{su-welcome-189A7N4r.js → su-welcome-DYvSCUST.js} +41 -40
  61. package/dist/{sys-config-BZ3sejow.js → sys-config-DJ1vNQTy.js} +18 -18
  62. package/dist/udp-core.css +2 -2
  63. package/dist/{utogether-r08LNiIZ.js → utogether-CjmJiHoE.js} +6 -6
  64. package/package.json +4 -2
  65. package/src/App.vue +3 -3
  66. package/src/components/udp/form-upload.vue +132 -0
  67. package/src/components/udp/index.ts +4 -0
  68. package/src/components/udp/modal-form.vue +180 -0
  69. package/src/components/udp/utils.ts +40 -0
  70. package/src/main.ts +5 -4
  71. package/src/plugins/vxe-table/index.ts +3 -3
  72. package/src/plugins/vxe-table/render.tsx +604 -184
  73. package/src/utils/udp/useRender.ts +420 -0
  74. package/src/views/organization/inv-org/InvOrganization.vue +2 -1
  75. package/src/views/organization/staff/StaffInfo.vue +0 -30
  76. package/src/views/organization/staff/StaffPanel.vue +4 -3
  77. package/src/views/system/menu/AuthorityPanel.vue +2 -2
  78. package/src/views/system/menu/SystemMenu.vue +9 -3
  79. package/src/views/system/menu/menuInfo.vue +6 -3
  80. package/src/views/system/role/AuthorityInfo.vue +1 -19
  81. package/src/views/system/sysUser/SysUserPanel.vue +1 -1
  82. package/src/views/udev/dict/DictView.vue +2 -2
  83. package/src/views/uhome/components/menu-favorite.vue +1 -1
  84. package/src/views/uhome/su-welcome.vue +1 -1
  85. package/src/views/ulogin/login.vue +1 -1
  86. package/types/global.d.ts +0 -1
  87. package/vite.config.ts +9 -2
  88. package/dist/InvOrganization-MuM2jtsG.js +0 -66
  89. package/dist/StaffInfo-DJzvBuxy.js +0 -4
  90. package/dist/core.umd.js +0 -173
  91. package/dist/index-BKIw8tSn.js +0 -9195
  92. package/dist/pda-app-CRhVGijN.js +0 -2209
  93. package/dist/redirect-DiaNDu8F.js +0 -15
  94. package/src/assets/images/empty.png +0 -0
  95. package/src/assets/images/logo.png +0 -0
  96. package/src/components/ReCountTo/README.md +0 -2
  97. package/src/components/ReCountTo/index.ts +0 -18
  98. package/src/components/ReCountTo/src/normal/index.tsx +0 -165
  99. package/src/components/ReCountTo/src/normal/props.ts +0 -37
  100. package/src/components/ReCountTo/src/rebound/index.tsx +0 -67
  101. package/src/components/ReCountTo/src/rebound/props.ts +0 -14
  102. package/src/components/ReCountTo/src/rebound/rebound.css +0 -77
  103. package/src/components/ReCropper/index.ts +0 -14
  104. package/src/components/ReCropper/src/index.tsx +0 -141
  105. package/src/components/ReFlicker/index.css +0 -39
  106. package/src/components/ReFlicker/index.ts +0 -50
  107. package/src/components/ReFlop/index.ts +0 -14
  108. package/src/components/ReFlop/src/Filpper.tsx +0 -99
  109. package/src/components/ReFlop/src/filpper.css +0 -184
  110. package/src/components/ReFlop/src/index.vue +0 -126
  111. package/src/components/ReFlowChart/index.ts +0 -24
  112. package/src/components/ReFlowChart/src/Control.vue +0 -139
  113. package/src/components/ReFlowChart/src/DataDialog.vue +0 -12
  114. package/src/components/ReFlowChart/src/NodePanel.vue +0 -151
  115. package/src/components/ReFlowChart/src/adpterForTurbo.ts +0 -160
  116. package/src/components/ReFlowChart/src/assets/iconfont/iconfont.css +0 -49
  117. package/src/components/ReFlowChart/src/assets/iconfont/iconfont.eot +0 -0
  118. package/src/components/ReFlowChart/src/assets/iconfont/iconfont.js +0 -61
  119. package/src/components/ReFlowChart/src/assets/iconfont/iconfont.json +0 -58
  120. package/src/components/ReFlowChart/src/assets/iconfont/iconfont.svg +0 -47
  121. package/src/components/ReFlowChart/src/assets/iconfont/iconfont.ttf +0 -0
  122. package/src/components/ReFlowChart/src/assets/iconfont/iconfont.woff +0 -0
  123. package/src/components/ReFlowChart/src/assets/iconfont/iconfont.woff2 +0 -0
  124. package/src/components/ReFlowChart/src/config.ts +0 -62
  125. package/src/components/ReSplitPane/index.css +0 -49
  126. package/src/components/ReSplitPane/index.tsx +0 -119
  127. package/src/components/ReSplitPane/resizer.css +0 -45
  128. package/src/components/ReSplitPane/resizer.tsx +0 -30
  129. package/src/components/SuCommon/card/components/Card.vue +0 -148
  130. package/src/components/SuCommon/card/components/DialogForm.vue +0 -127
  131. package/src/components/SuCommon/card/index.vue +0 -142
  132. package/src/components/SuCommon/icon-select/index.vue +0 -241
  133. package/src/components/SuCommon/table/index.vue +0 -208
  134. package/src/components/SuCommon/utils/index.ts +0 -103
  135. package/src/components/SuCommon/utils/slot.tsx +0 -50
  136. package/src/views/components/contextmenu/basic.vue +0 -74
  137. package/src/views/components/contextmenu/context-menu.vue +0 -40
  138. package/src/views/components/contextmenu/menuDynamic.vue +0 -99
  139. package/src/views/components/contextmenu/menuGroup.vue +0 -71
  140. package/src/views/components/count-to/index.vue +0 -43
  141. package/src/views/components/cropping/index.vue +0 -59
  142. package/src/views/components/cropping/picture.jpeg +0 -0
  143. package/src/views/components/split-pane/index.vue +0 -82
  144. package/src/views/components/video/index.vue +0 -57
@@ -1,15 +0,0 @@
1
- import { defineComponent as a, unref as s, createElementBlock as p, openBlock as u } from "vue";
2
- import { c as _ } from "./index-BKIw8tSn.js";
3
- const m = { name: "Redirect" }, y = /* @__PURE__ */ a({
4
- ...m,
5
- setup(i) {
6
- const { currentRoute: t, replace: r } = _(), { params: o, query: n } = s(t), { path: e } = o, c = Array.isArray(e) ? e.join("/") : e;
7
- return r({
8
- path: "/" + c,
9
- query: n
10
- }), (f, l) => (u(), p("div"));
11
- }
12
- });
13
- export {
14
- y as default
15
- };
Binary file
Binary file
@@ -1,2 +0,0 @@
1
- normal 普通数字动画组件
2
- rebound 回弹式数字动画组件
@@ -1,18 +0,0 @@
1
- /*
2
- * @Author: wei.li
3
- * @Date: 2022-05-26 10:12:11
4
- * @LastEditors: wei.li
5
- * @LastEditTime: 2022-07-07 13:54:51
6
- * @Description: file content
7
- */
8
- import { withInstall } from '@utogether/utils';
9
- import reNormalCountTo from './src/normal';
10
- import reboundCountTo from './src/rebound';
11
-
12
- /** 普通数字动画组件 */
13
- const ReNormalCountTo = withInstall(reNormalCountTo);
14
-
15
- /** 回弹式数字动画组件 */
16
- const ReboundCountTo = withInstall(reboundCountTo);
17
-
18
- export { ReNormalCountTo, ReboundCountTo };
@@ -1,165 +0,0 @@
1
- import { defineComponent, reactive, computed, watch, onMounted, unref } from 'vue';
2
- import { countToProps } from './props';
3
- import { isNumber } from 'xe-utils';
4
-
5
- export default defineComponent({
6
- name: 'NormalNumber',
7
- props: countToProps,
8
- emits: ['mounted', 'callback'],
9
- setup(props, { emit }) {
10
- const state = reactive<{
11
- localStartVal: number;
12
- printVal: number | null;
13
- displayValue: string;
14
- paused: boolean;
15
- localDuration: number | null;
16
- startTime: number | null;
17
- timestamp: number | null;
18
- rAF: any;
19
- remaining: number | null;
20
- color: string;
21
- fontSize: string;
22
- }>({
23
- localStartVal: props.startVal,
24
- displayValue: formatNumber(props.startVal),
25
- printVal: null,
26
- paused: false,
27
- localDuration: props.duration,
28
- startTime: null,
29
- timestamp: null,
30
- remaining: null,
31
- rAF: null,
32
- color: null,
33
- fontSize: '16px'
34
- });
35
-
36
- const getCountDown = computed(() => {
37
- return props.startVal > props.endVal;
38
- });
39
-
40
- watch([() => props.startVal, () => props.endVal], () => {
41
- if (props.autoplay) {
42
- start();
43
- }
44
- });
45
-
46
- function start() {
47
- const { startVal, duration, color, fontSize } = props;
48
- state.localStartVal = startVal;
49
- state.startTime = null;
50
- state.localDuration = duration;
51
- state.paused = false;
52
- state.color = color;
53
- state.fontSize = fontSize;
54
- state.rAF = requestAnimationFrame(count);
55
- }
56
-
57
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
58
- function pauseResume() {
59
- if (state.paused) {
60
- resume();
61
- state.paused = false;
62
- } else {
63
- pause();
64
- state.paused = true;
65
- }
66
- }
67
-
68
- function pause() {
69
- cancelAnimationFrame(state.rAF);
70
- }
71
-
72
- function resume() {
73
- state.startTime = null;
74
- state.localDuration = +(state.remaining as number);
75
- state.localStartVal = +(state.printVal as number);
76
- requestAnimationFrame(count);
77
- }
78
-
79
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
80
- function reset() {
81
- state.startTime = null;
82
- cancelAnimationFrame(state.rAF);
83
- state.displayValue = formatNumber(props.startVal);
84
- }
85
-
86
- function count(timestamp: number) {
87
- const { useEasing, easingFn, endVal } = props;
88
- if (!state.startTime) state.startTime = timestamp;
89
- state.timestamp = timestamp;
90
- const progress = timestamp - state.startTime;
91
- state.remaining = (state.localDuration as number) - progress;
92
- if (useEasing) {
93
- if (unref(getCountDown)) {
94
- state.printVal =
95
- state.localStartVal -
96
- easingFn(progress, 0, state.localStartVal - endVal, state.localDuration as number);
97
- } else {
98
- state.printVal = easingFn(
99
- progress,
100
- state.localStartVal,
101
- endVal - state.localStartVal,
102
- state.localDuration as number
103
- );
104
- }
105
- } else {
106
- if (unref(getCountDown)) {
107
- state.printVal =
108
- state.localStartVal -
109
- (state.localStartVal - endVal) * (progress / (state.localDuration as number));
110
- } else {
111
- state.printVal =
112
- state.localStartVal +
113
- (endVal - state.localStartVal) * (progress / (state.localDuration as number));
114
- }
115
- }
116
- if (unref(getCountDown)) {
117
- state.printVal = state.printVal < endVal ? endVal : state.printVal;
118
- } else {
119
- state.printVal = state.printVal > endVal ? endVal : state.printVal;
120
- }
121
- state.displayValue = formatNumber(state.printVal);
122
- if (progress < (state.localDuration as number)) {
123
- state.rAF = requestAnimationFrame(count);
124
- } else {
125
- emit('callback');
126
- }
127
- }
128
-
129
- function formatNumber(num: number | string) {
130
- const { decimals, decimal, separator, suffix, prefix } = props;
131
- num = Number(num).toFixed(decimals);
132
- num += '';
133
- const x = num.split('.');
134
- let x1 = x[0];
135
- const x2 = x.length > 1 ? decimal + x[1] : '';
136
- const rgx = /(\d+)(\d{3})/;
137
- if (separator && !isNumber(separator)) {
138
- while (rgx.test(x1)) {
139
- x1 = x1.replace(rgx, '$1' + separator + '$2');
140
- }
141
- }
142
- return prefix + x1 + x2 + suffix;
143
- }
144
-
145
- onMounted(() => {
146
- if (props.autoplay) {
147
- start();
148
- }
149
- emit('mounted');
150
- });
151
-
152
- return () => (
153
- <>
154
- <span
155
- style={{
156
- color: props.color,
157
- fontSize: props.fontSize
158
- }}
159
- >
160
- {state.displayValue}
161
- </span>
162
- </>
163
- );
164
- }
165
- });
@@ -1,37 +0,0 @@
1
- /*
2
- * @Author: levi7754 levi7754@163.com
3
- * @Date: 2023-06-19 09:14:18
4
- * @LastEditors: levi7754 levi7754@163.com
5
- * @LastEditTime: 2023-10-09 11:05:26
6
- * @FilePath: /sitzone-mes/src/components/ReCountTo/src/normal/props.ts
7
- * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
8
- */
9
- import type { PropType } from 'vue';
10
- import propTypes from '@/utils/propTypes';
11
- export const countToProps = {
12
- startVal: propTypes.number.def(0),
13
- endVal: propTypes.number.def(2020),
14
- duration: propTypes.number.def(1300),
15
- autoplay: propTypes.bool.def(true),
16
- decimals: {
17
- type: Number as PropType<number>,
18
- required: false,
19
- default: 0,
20
- validator(value: number) {
21
- return value >= 0;
22
- }
23
- },
24
- color: propTypes.string.def(),
25
- fontSize: propTypes.string.def(),
26
- decimal: propTypes.string.def('.'),
27
- separator: propTypes.string.def(','),
28
- prefix: propTypes.string.def(''),
29
- suffix: propTypes.string.def(''),
30
- useEasing: propTypes.bool.def(true),
31
- easingFn: {
32
- type: Function as PropType<(t: number, b: number, c: number, d: number) => number>,
33
- default(t: number, b: number, c: number, d: number) {
34
- return (c * (-Math.pow(2, (-10 * t) / d) + 1) * 1024) / 1023 + b;
35
- }
36
- }
37
- };
@@ -1,67 +0,0 @@
1
- /*
2
- * @Author: wei.li
3
- * @Date: 2022-05-24 11:26:59
4
- * @LastEditors: wei.li
5
- * @LastEditTime: 2022-08-24 11:28:37
6
- * @Description: file content
7
- */
8
- import './rebound.css';
9
- import { defineComponent, ref, unref, onBeforeMount, onBeforeUnmount } from 'vue';
10
- import { reboundProps } from './props';
11
-
12
- export default defineComponent({
13
- name: 'ReboundNumber',
14
- props: reboundProps,
15
- setup(props) {
16
- const ulRef = ref();
17
- const timer = ref(null);
18
-
19
- onBeforeMount(() => {
20
- const ua = navigator.userAgent.toLowerCase();
21
- const testUA = regexp => regexp.test(ua);
22
- const isSafari = testUA(/safari/g) && !testUA(/chrome/g);
23
-
24
- // Safari浏览器的兼容代码
25
- isSafari &&
26
- (timer.value = setTimeout(() => {
27
- ulRef.value.setAttribute(
28
- 'style',
29
- `
30
- animation: none;
31
- transform: translateY(calc(var(--i) * -9.09%))
32
- `
33
- );
34
- }, props.delay * 1000));
35
- });
36
-
37
- onBeforeUnmount(() => {
38
- clearTimeout(unref(timer));
39
- });
40
-
41
- return () => (
42
- <>
43
- <div class="scroll-num" style={{ '--i': props.i, '--delay': props.delay }}>
44
- <ul ref="ulRef" style={{ fontSize: '32px' }}>
45
- <li>0</li>
46
- <li>1</li>
47
- <li>2</li>
48
- <li>3</li>
49
- <li>4</li>
50
- <li>5</li>
51
- <li>6</li>
52
- <li>7</li>
53
- <li>8</li>
54
- <li>9</li>
55
- <li>0</li>
56
- </ul>
57
-
58
- <svg width="0" height="0">
59
- <filter id="blur">
60
- <feGaussianBlur in="SourceGraphic" stdDeviation={`0 ${props.blur}`} />
61
- </filter>
62
- </svg>
63
- </div>
64
- </>
65
- );
66
- }
67
- });
@@ -1,14 +0,0 @@
1
- import type { PropType } from 'vue';
2
- import propTypes from '@/utils/propTypes';
3
- export const reboundProps = {
4
- delay: propTypes.number.def(1),
5
- blur: propTypes.number.def(2),
6
- i: {
7
- type: Number as PropType<number>,
8
- required: false,
9
- default: 0,
10
- validator(value: number) {
11
- return value < 10 && value >= 0 && Number.isInteger(value);
12
- }
13
- }
14
- };
@@ -1,77 +0,0 @@
1
- .scroll-num {
2
- width: var(--width, 20px);
3
- height: var(--height, calc(var(--width, 20px) * 1.8));
4
- color: var(--color, #333);
5
- font-size: var(--height, calc(var(--width, 20px) * 1.1));
6
- line-height: var(--height, calc(var(--width, 20px) * 1.8));
7
- text-align: center;
8
- overflow: hidden;
9
- animation: enhance-bounce-in-down 1s calc(var(--delay) * 1s) forwards;
10
- }
11
-
12
- ul {
13
- animation:
14
- move 0.3s linear infinite,
15
- bounce-in-down 1s calc(var(--delay) * 1s) forwards;
16
- }
17
-
18
- @keyframes move {
19
- from {
20
- transform: translateY(-90%);
21
- filter: url(#blur);
22
- }
23
-
24
- to {
25
- transform: translateY(1%);
26
- filter: url(#blur);
27
- }
28
- }
29
-
30
- @keyframes bounce-in-down {
31
- from {
32
- transform: translateY(calc(var(--i) * -9.09% - 7%));
33
- filter: none;
34
- }
35
-
36
- 25% {
37
- transform: translateY(calc(var(--i) * -9.09% + 3%));
38
- }
39
-
40
- 50% {
41
- transform: translateY(calc(var(--i) * -9.09% - 1%));
42
- }
43
-
44
- 70% {
45
- transform: translateY(calc(var(--i) * -9.09% + 0.6%));
46
- }
47
-
48
- 85% {
49
- transform: translateY(calc(var(--i) * -9.09% - 0.3%));
50
- }
51
-
52
- to {
53
- transform: translateY(calc(var(--i) * -9.09%));
54
- }
55
- }
56
-
57
- @keyframes enhance-bounce-in-down {
58
- 25% {
59
- transform: translateY(8%);
60
- }
61
-
62
- 50% {
63
- transform: translateY(-4%);
64
- }
65
-
66
- 70% {
67
- transform: translateY(2%);
68
- }
69
-
70
- 85% {
71
- transform: translateY(-1%);
72
- }
73
-
74
- to {
75
- transform: translateY(0);
76
- }
77
- }
@@ -1,14 +0,0 @@
1
- /*
2
- * @Author: wei.li
3
- * @Date: 2022-05-26 10:12:11
4
- * @LastEditors: wei.li
5
- * @LastEditTime: 2022-07-07 13:55:03
6
- * @Description: file content
7
- */
8
- import reCropper from './src';
9
- import { withInstall } from '@utogether/utils';
10
-
11
- /** ͼƬ�ü���� */
12
- export const ReCropper = withInstall(reCropper);
13
-
14
- export default ReCropper;
@@ -1,141 +0,0 @@
1
- import type { CSSProperties } from 'vue';
2
- import { defineComponent, onMounted, nextTick, ref, unref, computed, type PropType } from 'vue';
3
- import { templateRef } from '@vueuse/core';
4
- import { useAttrs } from '@utogether/utils';
5
-
6
- import Cropper from 'cropperjs';
7
- import 'cropperjs/dist/cropper.css';
8
-
9
- type Options = Cropper.Options;
10
-
11
- const defaultOptions: Cropper.Options = {
12
- aspectRatio: 16 / 9,
13
- zoomable: true,
14
- zoomOnTouch: true,
15
- zoomOnWheel: true,
16
- cropBoxMovable: true,
17
- cropBoxResizable: true,
18
- toggleDragModeOnDblclick: true,
19
- autoCrop: true,
20
- background: true,
21
- highlight: true,
22
- center: true,
23
- responsive: true,
24
- restore: true,
25
- checkCrossOrigin: true,
26
- checkOrientation: true,
27
- scalable: true,
28
- modal: true,
29
- guides: true,
30
- movable: true,
31
- rotatable: true
32
- };
33
-
34
- const props = {
35
- src: {
36
- type: String,
37
- required: true
38
- },
39
- alt: {
40
- type: String
41
- },
42
- width: {
43
- type: [String, Number],
44
- default: ''
45
- },
46
- height: {
47
- type: [String, Number],
48
- default: '360px'
49
- },
50
- crossorigin: {
51
- type: String || Object,
52
- default: undefined
53
- },
54
- imageStyle: {
55
- type: Object as PropType<CSSProperties>,
56
- default() {
57
- return {};
58
- }
59
- },
60
- options: {
61
- type: Object as PropType<Options>,
62
- default() {
63
- return {};
64
- }
65
- }
66
- };
67
-
68
- export default defineComponent({
69
- name: 'SuCropper',
70
- props,
71
- setup(props) {
72
- const cropper: any = ref<Nullable<Cropper>>(null);
73
- const imgElRef = templateRef<HTMLImageElement | null>('imgElRef', null);
74
-
75
- const isReady = ref<boolean>(false);
76
-
77
- const getImageStyle = computed((): CSSProperties => {
78
- return {
79
- height: props.height,
80
- width: props.width,
81
- maxWidth: '100%',
82
- ...props.imageStyle
83
- };
84
- });
85
-
86
- const getWrapperStyle = computed((): CSSProperties => {
87
- const { height, width } = props;
88
- return {
89
- width: `${width}`.replace(/px/, '') + 'px',
90
- height: `${height}`.replace(/px/, '') + 'px'
91
- };
92
- });
93
-
94
- function init() {
95
- const imgEl = unref(imgElRef);
96
- if (!imgEl) {
97
- return;
98
- }
99
- cropper.value = new Cropper(imgEl, {
100
- ...defaultOptions,
101
- ready: () => {
102
- isReady.value = true;
103
- },
104
- ...props.options
105
- });
106
- }
107
-
108
- onMounted(() => {
109
- nextTick(() => {
110
- init();
111
- });
112
- });
113
-
114
- return {
115
- props,
116
- imgElRef,
117
- cropper,
118
- getWrapperStyle,
119
- getImageStyle
120
- };
121
- },
122
-
123
- render() {
124
- return (
125
- <>
126
- <div
127
- class={useAttrs({ excludeListeners: true, excludeKeys: ['class'] })}
128
- style={this.getWrapperStyle}
129
- >
130
- <img
131
- ref="imgElRef"
132
- src={this.props.src}
133
- alt={this.props.alt}
134
- crossorigin={this.props.crossorigin}
135
- style={this.getImageStyle}
136
- />
137
- </div>
138
- </>
139
- );
140
- }
141
- });
@@ -1,39 +0,0 @@
1
- .point {
2
- width: var(--point-width);
3
- height: var(--point-height);
4
- background: var(--point-background);
5
- position: relative;
6
- border-radius: var(--point-border-radius);
7
- }
8
-
9
- .point-flicker:after {
10
- background: var(--point-background);
11
- }
12
-
13
- .point-flicker:before,
14
- .point-flicker:after {
15
- content: '';
16
- width: 100%;
17
- height: 100%;
18
- top: 0;
19
- left: 0;
20
- position: absolute;
21
- border-radius: var(--point-border-radius);
22
- animation: flicker 1.2s ease-out infinite;
23
- }
24
-
25
- @keyframes flicker {
26
- 0% {
27
- transform: scale(0.5);
28
- opacity: 1;
29
- }
30
-
31
- 30% {
32
- opacity: 1;
33
- }
34
-
35
- 100% {
36
- transform: scale(var(--point-scale));
37
- opacity: 0;
38
- }
39
- }
@@ -1,50 +0,0 @@
1
- /*
2
- * @Author: wei.li
3
- * @Date: 2022-05-24 11:26:59
4
- * @LastEditors: wei.li
5
- * @LastEditTime: 2024-07-02 08:42:13
6
- * @Description: 圆点、方形闪烁动画组件
7
- */
8
- import './index.css';
9
- import { h, defineComponent, type Component } from 'vue';
10
-
11
- export interface attrsType {
12
- width?: string;
13
- height?: string;
14
- borderRadius?: number | string;
15
- background?: string;
16
- scale?: number | string;
17
- }
18
-
19
- /**
20
- * 圆点、方形闪烁动画组件
21
- * @param width 可选 string 宽
22
- * @param height 可选 string 高
23
- * @param borderRadius 可选 number | string 传0为方形、传50%或者不传为圆形
24
- * @param background 可选 string 闪烁颜色
25
- * @param scale 可选 number | string 闪烁范围,默认2,值越大闪烁范围越大
26
- * @returns Component
27
- */
28
- export function useRenderFlicker(attrs?: attrsType): Component {
29
- return defineComponent({
30
- name: 'SuFlicker',
31
- render() {
32
- return h(
33
- 'div',
34
- {
35
- class: 'point point-flicker',
36
- style: {
37
- '--point-width': attrs?.width ?? '12px',
38
- '--point-height': attrs?.height ?? '12px',
39
- '--point-background': attrs?.background ?? 'var(--el-color-primary)',
40
- '--point-border-radius': attrs?.borderRadius ?? '50%',
41
- '--point-scale': attrs?.scale ?? '2'
42
- }
43
- },
44
- {
45
- default: () => []
46
- }
47
- );
48
- }
49
- });
50
- }
@@ -1,14 +0,0 @@
1
- /*
2
- * @Author: wei.li
3
- * @Date: 2022-05-26 10:12:11
4
- * @LastEditors: wei.li
5
- * @LastEditTime: 2022-07-07 13:55:14
6
- * @Description: file content
7
- */
8
- import reFlop from './src/index.vue';
9
- import { withInstall } from '@utogether/utils';
10
-
11
- /** ʱ�䷭����� */
12
- export const ReFlop = withInstall(reFlop);
13
-
14
- export default ReFlop;