@utogether/udp-core 1.0.1-beta.5 → 1.0.1-beta.7

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 (98) hide show
  1. package/dist/{403-CP2RkkAy.js → 403-BQZ5OAKL.js} +10 -10
  2. package/dist/{404-DwK-0wNQ.js → 404-H55ex36i.js} +4 -4
  3. package/dist/{500-CLbJDqnd.js → 500-bbrspTnK.js} +1 -1
  4. package/dist/{AuthorityInfo-Bi1_uhMu.js → AuthorityInfo-BWni4UPQ.js} +1 -1
  5. package/dist/AuthorityInfo.vue_vue_type_style_index_0_lang-7WtOL6Hs.js +100 -0
  6. package/dist/{Company-B--cokc6.js → Company-CuebFrQ0.js} +3 -3
  7. package/dist/{CompanyPanel-B_gmcZ9L.js → CompanyPanel-DxPdJs6x.js} +6 -6
  8. package/dist/{Department-DbKdyNzK.js → Department-D2a6Juur.js} +3 -3
  9. package/dist/{DepartmentPanel-BmEttboJ.js → DepartmentPanel-C_s2R9yl.js} +24 -23
  10. package/dist/{DesignPanel-LL68_36s.js → DesignPanel-CexZj3HF.js} +1 -1
  11. package/dist/{DesignPanel.vue_vue_type_style_index_0_lang-DWPmFegv.js → DesignPanel.vue_vue_type_style_index_0_lang-DfmysqwB.js} +25 -24
  12. package/dist/{DictView-B8j-EWx5.js → DictView-C0GS72rG.js} +19 -18
  13. package/dist/{InvOrganization-DnGQlESM.js → InvOrganization-a1tQ2CEH.js} +8 -7
  14. package/dist/Org-DifvzLLy.js +35 -0
  15. package/dist/{Preview-yot4NBW5.js → Preview-BOv5j9i6.js} +1 -1
  16. package/dist/{ReportDefine-DHadqNYy.js → ReportDefine-Dli1Q0TB.js} +1 -1
  17. package/dist/{ReportDesign-CBihGRth.js → ReportDesign-zSWkcL_O.js} +37 -36
  18. package/dist/{ReportQuery-CwHQ6LUU.js → ReportQuery-D5r3bvFc.js} +1 -1
  19. package/dist/{ReportQueryFrom-ie6lQcGL.js → ReportQueryFrom-DiostHrX.js} +1 -1
  20. package/dist/{ReportQueryFrom.vue_vue_type_style_index_0_lang-B8LJNK0m.js → ReportQueryFrom.vue_vue_type_style_index_0_lang-Cr2eKMmr.js} +1 -1
  21. package/dist/{ReportTemplate-B2Smwo-z.js → ReportTemplate-CYy4cZHQ.js} +24 -24
  22. package/dist/{Role-Cf7DB7uS.js → Role-BFQFxfQS.js} +6 -6
  23. package/dist/{RoleAssign-upUnqs_i.js → RoleAssign-BIdWSLTR.js} +8 -8
  24. package/dist/{RolePanel-EXL_FLvM.js → RolePanel-C7ybSknr.js} +1 -1
  25. package/dist/{RolePanel-BBGDGK8V.js → RolePanel-KC-UgmtF.js} +1 -1
  26. package/dist/RolePanel.vue_vue_type_script_setup_true_lang-C91CJO4e.js +132 -0
  27. package/dist/{RolePanel.vue_vue_type_script_setup_true_lang-DF8qJKwW.js → RolePanel.vue_vue_type_script_setup_true_lang-C_ZsMf1f.js} +40 -34
  28. package/dist/{ScrollPanel.vue_vue_type_style_index_0_lang-DbBGg32H.js → ScrollPanel.vue_vue_type_style_index_0_lang-botBBgto.js} +17 -17
  29. package/dist/{Staff-DYu5ZEyR.js → Staff-CY0DLsTN.js} +3 -3
  30. package/dist/{StaffInfo-CHvNGjtz.js → StaffInfo-DA7p265h.js} +1 -1
  31. package/dist/{StaffInfo.vue_vue_type_script_setup_true_lang-XRJVEJ-s.js → StaffInfo.vue_vue_type_script_setup_true_lang-f29A44gS.js} +5 -5
  32. package/dist/{StaffPanel-C-ygEY65.js → StaffPanel-DYP-mMp9.js} +1 -1
  33. package/dist/{StaffPanel.vue_vue_type_script_setup_true_lang-BvLrF4Yw.js → StaffPanel.vue_vue_type_script_setup_true_lang-C0YAG2xV.js} +6 -6
  34. package/dist/{SysUser-BHk_szpK.js → SysUser-FqS3Ctne.js} +2 -2
  35. package/dist/{SysUserPanel-DFvzA5d-.js → SysUserPanel-C_t6F99T.js} +1 -1
  36. package/dist/{SysUserPanel.vue_vue_type_script_setup_true_lang-B9zUXXwa.js → SysUserPanel.vue_vue_type_script_setup_true_lang-CKZjy0OF.js} +93 -86
  37. package/dist/{SystemMenu-5TK9ZA11.js → SystemMenu-ChFrMzRg.js} +14 -13
  38. package/dist/{UserInfo-Bx3zQqHa.js → UserInfo-I36LAXVj.js} +1 -1
  39. package/dist/{UserInfo.vue_vue_type_style_index_0_lang-C2sqUQdg.js → UserInfo.vue_vue_type_style_index_0_lang-BGY-LYeL.js} +28 -25
  40. package/dist/await-to-js.es5-BtRbN2QH.js +10 -0
  41. package/dist/{childView-BSUWnii7.js → childView-CYpuOzRx.js} +1 -1
  42. package/dist/{childView-CFC3gA_U.js → childView-Csnlaqfs.js} +1 -1
  43. package/dist/{childView.vue_vue_type_style_index_0_lang-EcT-Dux7.js → childView.vue_vue_type_style_index_0_lang-B8EnA03l.js} +18 -17
  44. package/dist/{childView.vue_vue_type_style_index_0_lang-WQVLSJR8.js → childView.vue_vue_type_style_index_0_lang-DNVlDM_a.js} +10 -9
  45. package/dist/{code-rule-DybjhotB.js → code-rule-DHBSC5Qp.js} +14 -13
  46. package/dist/core.es.js +2 -2
  47. package/dist/{cron-task-DGdknqaF.js → cron-task-CiI1MFla.js} +8 -7
  48. package/dist/{frameView-BOOZRv1S.js → frameView-ZWKlbz9p.js} +1 -1
  49. package/dist/index-COBMRlmJ.js +5379 -0
  50. package/dist/{layoutView-BWeDLY9C.js → layoutView-5OsbpP0u.js} +11 -10
  51. package/dist/{login-BcuCHhGE.js → login-C55sa9gN.js} +26 -25
  52. package/dist/{lov-view-DDgzqYSW.js → lov-view-DFfaUQ5m.js} +9 -8
  53. package/dist/{menuInfo-B3MOxomU.js → menuInfo-CZdLtLjN.js} +1 -1
  54. package/dist/{menuInfo.vue_vue_type_style_index_0_lang-BXMrNMUs.js → menuInfo.vue_vue_type_style_index_0_lang-DgG0aHRy.js} +16 -15
  55. package/dist/{pda-app-Dy9WMHEG.js → pda-app-fLe8mrx-.js} +213 -196
  56. package/dist/{resource-BoCP7-dM.js → resource-ohWKO6Fh.js} +20 -20
  57. package/dist/{su-welcome-DXpI1MHr.js → su-welcome-_UZTfrXX.js} +84 -84
  58. package/dist/{sys-config-BiUWzxGU.js → sys-config-DVuBsK7p.js} +19 -18
  59. package/dist/udp-core.css +1 -1
  60. package/dist/{utogether-DXDcsKt7.js → utogether-CxobZqGL.js} +1 -1
  61. package/package.json +18 -18
  62. package/src/components/SuScrollTree/ScrollPanel.vue +3 -3
  63. package/src/components/udp/flip-down/FlipCard/flip-card.vue +251 -0
  64. package/src/components/udp/flip-down/FlipCard/interfaces.ts +4 -0
  65. package/src/components/udp/flip-down/FlipClock/flip-clock.vue +113 -0
  66. package/src/components/udp/grid.vue +12 -6
  67. package/src/components/udp/index.ts +2 -2
  68. package/src/components/udp/lov.vue +1 -1
  69. package/src/components/udp/modal-grid.vue +288 -297
  70. package/src/components/udp/utils.ts +4 -11
  71. package/src/layout/components/lay-search/index.vue +25 -25
  72. package/src/main.ts +18 -10
  73. package/src/plugins/i18n/zh.ts +348 -338
  74. package/src/plugins/vxe-table/index.ts +2 -2
  75. package/src/plugins/vxe-table/render.tsx +95 -18
  76. package/src/views/login/login-view.vue +1 -1
  77. package/src/views/system/role/AuthorityInfo.vue +19 -15
  78. package/src/views/system/role/Role.vue +1 -5
  79. package/src/views/system/role/RolePanel.vue +11 -2
  80. package/src/views/system/role/UserInfo.vue +5 -3
  81. package/src/views/system/role-assign/RoleAssign.vue +57 -57
  82. package/src/views/system/role-assign/RolePanel.vue +139 -136
  83. package/src/views/system/sysUser/SysUserPanel.vue +37 -37
  84. package/src/views/uapp/pda/pda-app.vue +41 -10
  85. package/src/views/udev/dict/DictView.vue +6 -1
  86. package/src/views/udev/dict/childView.vue +1 -6
  87. package/src/views/ufile/aggregation/File.vue +5 -5
  88. package/src/views/ufile/file/water-mark.vue +14 -14
  89. package/src/views/uhome/su-welcome.vue +2 -2
  90. package/src/views/ulogin/login.vue +8 -0
  91. package/src/views/urpt/design/DesignPanel.vue +10 -33
  92. package/src/views/urpt/design/ReportDesign.vue +12 -16
  93. package/src/views/urpt/static-resource/resource.vue +3 -3
  94. package/src/views/urpt/template/ReportTemplate.vue +7 -7
  95. package/dist/AuthorityInfo.vue_vue_type_style_index_0_lang-RUhvzu76.js +0 -101
  96. package/dist/Org-Dg9Xkd34.js +0 -34
  97. package/dist/RolePanel.vue_vue_type_script_setup_true_lang-BwfL_JVZ.js +0 -125
  98. package/dist/index-BDE4-ZvN.js +0 -5091
@@ -1,6 +1,6 @@
1
1
  import { computed as W, ref as L } from "vue";
2
2
  import { useGlobal as g, storageLocal as u, deviceDetection as H, cookies as C, storageSession as M } from "@utogether/utils";
3
- import { z as P, j as E, s as j, g as h, w as d, A as J, l as K, m as R, n as V, u as S, r as G, o as O, B as x, C as Z } from "./index-BDE4-ZvN.js";
3
+ import { y as P, j as E, s as j, g as h, v as d, z as J, l as K, m as R, n as V, u as S, r as G, o as O, A as x, B as Z } from "./index-COBMRlmJ.js";
4
4
  import { useI18n as f } from "vue-i18n";
5
5
  import { defineStore as v } from "pinia";
6
6
  function I() {
package/package.json CHANGED
@@ -1,18 +1,18 @@
1
- {
2
- "name": "@utogether/udp-core",
3
- "private": false,
4
- "version": "1.0.1-beta.5",
5
- "description": "",
6
- "type": "module",
7
- "main1": "index.ts",
8
- "main": "dist/core.es.js",
9
- "scripts": {
10
- "dev": "vite",
11
- "build": "vite build",
12
- "preview:build": "pnpm build && vite preview",
13
- "report": "rimraf dist && vite build"
14
- },
15
- "keywords": [],
16
- "author": "",
17
- "license": "ISC"
18
- }
1
+ {
2
+ "name": "@utogether/udp-core",
3
+ "private": false,
4
+ "version": "1.0.1-beta.7",
5
+ "description": "",
6
+ "type": "module",
7
+ "main1": "index.ts",
8
+ "main": "dist/core.es.js",
9
+ "scripts": {
10
+ "dev": "vite",
11
+ "build": "vite build",
12
+ "preview:build": "pnpm build && vite preview",
13
+ "report": "rimraf dist && vite build"
14
+ },
15
+ "keywords": [],
16
+ "author": "",
17
+ "license": "ISC"
18
+ }
@@ -44,7 +44,7 @@ interface IProps {
44
44
  url: string;
45
45
  showAllButton?: boolean;
46
46
  treeOtions: Object;
47
- extParam?: Object;
47
+ defaultParams?: Object;
48
48
  }
49
49
  const props = withDefaults(defineProps<IProps>(), {
50
50
  treeOtions: () => {
@@ -53,7 +53,7 @@ const props = withDefaults(defineProps<IProps>(), {
53
53
  label: 'label'
54
54
  };
55
55
  },
56
- extParam: () => {
56
+ defaultParams: () => {
57
57
  return {};
58
58
  },
59
59
  showAllButton: false
@@ -76,7 +76,7 @@ watch(
76
76
  );
77
77
 
78
78
  const getDataList = async (params = {}) => {
79
- const query = Object.assign(params, props.extParam);
79
+ const query = Object.assign(params, props.defaultParams);
80
80
  const serverData = (await getServiceApi().get(props.url, query)) as IResponseData;
81
81
  data.value = serverData.list || serverData;
82
82
  treeList.value = serverData.list || serverData;
@@ -0,0 +1,251 @@
1
+ <script setup lang="ts">
2
+ import { ref } from 'vue';
3
+ import type { FlipCardHandleInterface } from './interfaces';
4
+
5
+ const { initFrontText, initBackText, duration } = defineProps({
6
+ // 初始前牌文字
7
+ initFrontText: { type: [String, Number], default: '0' },
8
+ // 初始后牌文字
9
+ initBackText: { type: [String, Number], default: '1' },
10
+ // 翻牌动画时间,与CSS中设置的animation-duration保持一致
11
+ duration: { type: Number, default: 600 }
12
+ });
13
+ // 是否正在翻转中
14
+ const isFlipping = ref(false);
15
+ // 翻转类型,down=向下翻转,up=向上翻转
16
+ const flipType = ref<string>('down');
17
+ // 前牌文字
18
+ const frontText = ref<string | number>(initFrontText);
19
+ // 后牌文字
20
+ const backText = ref<string | number>(initBackText);
21
+ // 翻转
22
+ const flip = ({
23
+ type,
24
+ newFrontText,
25
+ newBackText
26
+ }: {
27
+ type: string;
28
+ newFrontText: string | number;
29
+ newBackText: string | number;
30
+ }) => {
31
+ if (isFlipping.value) {
32
+ return false;
33
+ }
34
+ frontText.value = newFrontText;
35
+ backText.value = newBackText;
36
+ flipType.value = type;
37
+ isFlipping.value = true;
38
+
39
+ setTimeout(() => {
40
+ frontText.value = newBackText;
41
+ isFlipping.value = false;
42
+ }, duration);
43
+ };
44
+
45
+ defineExpose<FlipCardHandleInterface>({
46
+ // 下翻牌
47
+ flipDown: (newFrontText, newBackText) => {
48
+ flip({ type: 'down', newFrontText, newBackText });
49
+ },
50
+ // 上翻牌
51
+ flipUp: (newFrontText, newBackText) => {
52
+ flip({ type: 'up', newFrontText, newBackText });
53
+ }
54
+ });
55
+ </script>
56
+
57
+ <template>
58
+ <div class="M-FlipCard" :class="{ down: flipType === 'down', up: flipType === 'up', go: isFlipping }">
59
+ <div class="digital front" :class="'number' + frontText" />
60
+ <div class="digital back" :class="'number' + backText" />
61
+ </div>
62
+ </template>
63
+
64
+ <style scoped>
65
+ .M-FlipCard {
66
+ display: inline-block;
67
+ position: relative;
68
+ width: 36px;
69
+ height: 60px;
70
+ line-height: 60px;
71
+ border: solid 1px #222;
72
+ border-radius: 10px;
73
+ background: #fff;
74
+ font-size: 46px;
75
+ font-weight: 700;
76
+ color: #ec685c;
77
+ box-shadow: 0 0 6px rgba(0, 0, 0, 0.5);
78
+ text-align: center;
79
+ /* font-family: 'Helvetica Neue'; */
80
+ }
81
+
82
+ .M-FlipCard .digital:before,
83
+ .M-FlipCard .digital:after {
84
+ content: '';
85
+ position: absolute;
86
+ left: 0;
87
+ right: 0;
88
+ /* background: #000; */
89
+ background: #222;
90
+ overflow: hidden;
91
+ box-sizing: border-box;
92
+ }
93
+
94
+ .M-FlipCard .digital:before {
95
+ top: 0;
96
+ bottom: 50%;
97
+ border-radius: 10px 10px 0 0;
98
+ /* border-bottom: solid 1px #666; */
99
+ }
100
+
101
+ .M-FlipCard .digital:after {
102
+ top: 50%;
103
+ bottom: 0;
104
+ border-radius: 0 0 10px 10px;
105
+ line-height: 0;
106
+ }
107
+
108
+ /*向下翻*/
109
+ .M-FlipCard.down .front:before {
110
+ z-index: 3;
111
+ }
112
+
113
+ .M-FlipCard.down .back:after {
114
+ z-index: 2;
115
+ transform-origin: 50% 0%;
116
+ transform: perspective(160px) rotateX(180deg);
117
+ }
118
+
119
+ .M-FlipCard.down .front:after,
120
+ .M-FlipCard.down .back:before {
121
+ z-index: 1;
122
+ }
123
+
124
+ .M-FlipCard.down.go .front:before {
125
+ transform-origin: 50% 100%;
126
+ animation: frontFlipDown 0.6s ease-in-out both;
127
+ box-shadow: 0 -2px 6px rgba(255, 255, 255, 0.3);
128
+ backface-visibility: hidden;
129
+ }
130
+
131
+ .M-FlipCard.down.go .back:after {
132
+ animation: backFlipDown 0.6s ease-in-out both;
133
+ }
134
+
135
+ /*向上翻*/
136
+ .M-FlipCard.up .front:after {
137
+ z-index: 3;
138
+ }
139
+
140
+ .M-FlipCard.up .back:before {
141
+ z-index: 2;
142
+ transform-origin: 50% 100%;
143
+ transform: perspective(160px) rotateX(-180deg);
144
+ }
145
+
146
+ .M-FlipCard.up .front:before,
147
+ .M-FlipCard.up .back:after {
148
+ z-index: 1;
149
+ }
150
+
151
+ .M-FlipCard.up.go .front:after {
152
+ transform-origin: 50% 0;
153
+ animation: frontFlipUp 0.6s ease-in-out both;
154
+ box-shadow: 0 2px 6px rgba(255, 255, 255, 0.3);
155
+ backface-visibility: hidden;
156
+ }
157
+
158
+ .M-FlipCard.up.go .back:before {
159
+ animation: backFlipUp 0.6s ease-in-out both;
160
+ }
161
+
162
+ @keyframes frontFlipDown {
163
+ 0% {
164
+ transform: perspective(160px) rotateX(0deg);
165
+ }
166
+
167
+ 100% {
168
+ transform: perspective(160px) rotateX(-180deg);
169
+ }
170
+ }
171
+
172
+ @keyframes backFlipDown {
173
+ 0% {
174
+ transform: perspective(160px) rotateX(180deg);
175
+ }
176
+
177
+ 100% {
178
+ transform: perspective(160px) rotateX(0deg);
179
+ }
180
+ }
181
+
182
+ @keyframes frontFlipUp {
183
+ 0% {
184
+ transform: perspective(160px) rotateX(0deg);
185
+ }
186
+
187
+ 100% {
188
+ transform: perspective(160px) rotateX(180deg);
189
+ }
190
+ }
191
+
192
+ @keyframes backFlipUp {
193
+ 0% {
194
+ transform: perspective(160px) rotateX(-180deg);
195
+ }
196
+
197
+ 100% {
198
+ transform: perspective(160px) rotateX(0deg);
199
+ }
200
+ }
201
+
202
+ .M-FlipCard .number0:before,
203
+ .M-FlipCard .number0:after {
204
+ content: '0';
205
+ }
206
+
207
+ .M-FlipCard .number1:before,
208
+ .M-FlipCard .number1:after {
209
+ content: '1';
210
+ }
211
+
212
+ .M-FlipCard .number2:before,
213
+ .M-FlipCard .number2:after {
214
+ content: '2';
215
+ }
216
+
217
+ .M-FlipCard .number3:before,
218
+ .M-FlipCard .number3:after {
219
+ content: '3';
220
+ }
221
+
222
+ .M-FlipCard .number4:before,
223
+ .M-FlipCard .number4:after {
224
+ content: '4';
225
+ }
226
+
227
+ .M-FlipCard .number5:before,
228
+ .M-FlipCard .number5:after {
229
+ content: '5';
230
+ }
231
+
232
+ .M-FlipCard .number6:before,
233
+ .M-FlipCard .number6:after {
234
+ content: '6';
235
+ }
236
+
237
+ .M-FlipCard .number7:before,
238
+ .M-FlipCard .number7:after {
239
+ content: '7';
240
+ }
241
+
242
+ .M-FlipCard .number8:before,
243
+ .M-FlipCard .number8:after {
244
+ content: '8';
245
+ }
246
+
247
+ .M-FlipCard .number9:before,
248
+ .M-FlipCard .number9:after {
249
+ content: '9';
250
+ }
251
+ </style>
@@ -0,0 +1,4 @@
1
+ export interface FlipCardHandleInterface {
2
+ flipDown: (newFrontText: string | number, newBackText: string | number) => void;
3
+ flipUp: (newFrontText: string | number, newBackText: string | number) => void;
4
+ }
@@ -0,0 +1,113 @@
1
+ <script setup lang="ts">
2
+ import { ref, onMounted } from 'vue';
3
+ import FlipCard from '../FlipCard/flip-card.vue';
4
+ import type { FlipCardHandleInterface } from '../FlipCard/interfaces.ts';
5
+
6
+ const timer = ref<ReturnType<typeof setInterval> | null>(null);
7
+
8
+ const flipCardHour1Ref = ref<FlipCardHandleInterface | null>(null);
9
+ const flipCardHour2Ref = ref<FlipCardHandleInterface | null>(null);
10
+ const flipCardMinute1Ref = ref<FlipCardHandleInterface | null>(null);
11
+ const flipCardMinute2Ref = ref<FlipCardHandleInterface | null>(null);
12
+ const flipCardSecond1Ref = ref<FlipCardHandleInterface | null>(null);
13
+ const flipCardSecond2Ref = ref<FlipCardHandleInterface | null>(null);
14
+
15
+ const flipCards = [
16
+ flipCardHour1Ref,
17
+ flipCardHour2Ref,
18
+ flipCardMinute1Ref,
19
+ flipCardMinute2Ref,
20
+ flipCardSecond1Ref,
21
+ flipCardSecond2Ref
22
+ ];
23
+
24
+ onMounted(() => {
25
+ // 开始计时
26
+ const run = () => {
27
+ timer.value = setInterval(() => {
28
+ // 获取当前时间
29
+ const now = new Date();
30
+ const nowTimeStr = formatDate(new Date(now.getTime() - 1000), 'hhiiss');
31
+ const nextTimeStr = formatDate(now, 'hhiiss');
32
+ for (let i = 0; i < flipCards.length; i++) {
33
+ if (nowTimeStr[i] === nextTimeStr[i]) {
34
+ continue;
35
+ }
36
+ flipCards[i].value?.flipDown(nowTimeStr[i], nextTimeStr[i]);
37
+ }
38
+ }, 1000);
39
+ };
40
+ run();
41
+ });
42
+
43
+ // 正则格式化日期
44
+ const formatDate = (date: Date, dateFormat: string) => {
45
+ /* 单独格式化年份,根据y的字符数量输出年份
46
+ * 例如:yyyy => 2019
47
+ yy => 19
48
+ y => 9
49
+ */
50
+ const yearMatch = dateFormat.match(/(y+)/);
51
+ if (yearMatch) {
52
+ dateFormat = dateFormat.replace(yearMatch[0], (date.getFullYear() + '').slice(-yearMatch[0].length));
53
+ }
54
+ // 格式化月、日、时、分、秒
55
+ const formatMap: Record<string, number> = {
56
+ 'm+': date.getMonth() + 1,
57
+ 'd+': date.getDate(),
58
+ 'h+': date.getHours(),
59
+ 'i+': date.getMinutes(),
60
+ 's+': date.getSeconds()
61
+ };
62
+ for (const key in formatMap) {
63
+ const match = dateFormat.match(new RegExp(`(${key})`));
64
+ if (match) {
65
+ // 取出对应的值
66
+ const str = formatMap[key] + '';
67
+ /* 根据设置的格式,输出对应的字符
68
+ * 例如: 早上8时,hh => 08,h => 8
69
+ * 但是,当数字>=10时,无论格式为一位还是多位,不做截取,这是与年份格式化不一致的地方
70
+ * 例如: 下午15时,hh => 15, h => 15
71
+ */
72
+ dateFormat = dateFormat.replace(match[0], match[0].length === 1 ? str : str.padStart(2, '0'));
73
+ }
74
+ }
75
+
76
+ return dateFormat;
77
+ };
78
+
79
+ // 初始化
80
+ const now = new Date();
81
+ const initNowTimeStr = formatDate(new Date(now.getTime()), 'hhiiss');
82
+ </script>
83
+
84
+ <template>
85
+ <div className="FlipClock">
86
+ <FlipCard ref="flipCardHour1Ref" :init-front-text="initNowTimeStr[0]" />
87
+ <FlipCard ref="flipCardHour2Ref" :init-front-text="initNowTimeStr[1]" />
88
+ <em>:</em>
89
+ <FlipCard ref="flipCardMinute1Ref" :init-front-text="initNowTimeStr[2]" />
90
+ <FlipCard ref="flipCardMinute2Ref" :init-front-text="initNowTimeStr[3]" />
91
+ <em>:</em>
92
+ <FlipCard ref="flipCardSecond1Ref" :init-front-text="initNowTimeStr[4]" />
93
+ <FlipCard ref="flipCardSecond2Ref" :init-front-text="initNowTimeStr[5]" />
94
+ </div>
95
+ </template>
96
+
97
+ <style scoped>
98
+ .FlipClock {
99
+ text-align: center;
100
+ }
101
+
102
+ .FlipClock .M-FlipCard {
103
+ margin: 0 3px;
104
+ }
105
+
106
+ .FlipClock em {
107
+ display: inline-block;
108
+ line-height: 55px;
109
+ font-size: 42px;
110
+ font-style: normal;
111
+ vertical-align: top;
112
+ }
113
+ </style>
@@ -2,7 +2,7 @@
2
2
  * @Author: wei.li
3
3
  * @Date: 2021-11-17 16:33:37
4
4
  * @LastEditors: levi7754 levi7754@163.com
5
- * @LastEditTime: 2025-07-23 10:21:02
5
+ * @LastEditTime: 2025-08-06 11:53:11
6
6
  * @Description: file content
7
7
  -->
8
8
  <template>
@@ -192,7 +192,13 @@ const data = reactive<VxeGridProps>({
192
192
  query: ({ page, form }) => query(props, form, page, serviceApi, $mode),
193
193
  delete: ({ body: { removeRecords } }) => del(serviceApi, removeRecords, props),
194
194
  save: ({ body }) => Promise.all(save(serviceApi, body, props)),
195
- querySuccess: e => querySuccess(e)
195
+
196
+ querySuccess: response => callback('querySuccess', response),
197
+ queryError: response => callback('queryError', response),
198
+ deleteSuccess: response => callback('deleteSuccess', response),
199
+ deleteError: response => callback('deleteError', response),
200
+ saveSuccess: response => callback('saveSuccess', response),
201
+ saveError: response => callback('saveError', response)
196
202
  }
197
203
  },
198
204
  columns: !attrs.gridId ? getColumns() : [],
@@ -322,6 +328,10 @@ const getSelectRecords = (isFull = false) => {
322
328
  return checkRecords;
323
329
  };
324
330
 
331
+ const callback = (cb, response) => {
332
+ attrs?.callback && attrs?.callback[cb] && attrs?.callback[cb](response);
333
+ };
334
+
325
335
  let sortable2: any;
326
336
  const columnDrop = () => {
327
337
  const $grid = xgrid.value;
@@ -402,10 +412,6 @@ const onSearch = data => {
402
412
  refreshData();
403
413
  };
404
414
 
405
- const querySuccess = e => {
406
- console.log(e);
407
- };
408
-
409
415
  /**
410
416
  * @description Vue实例对外暴露的相关方法或属性
411
417
  */
@@ -5,6 +5,6 @@ import UtModalGrid2 from './modal-grid.vue';
5
5
  import UtGrid2 from './grid.vue';
6
6
  import UtForm2 from './form.vue';
7
7
  import UtUpload2 from './upload.vue';
8
- import UtCountdown2 from './count-down.vue';
8
+ // import UtCountdown2 from './flip-down/FlipClock/flip-clock.vue';
9
9
 
10
- export { UtGrid2, UtModalForm2, FormUpload2, utLov2, UtModalGrid2, UtForm2, UtCountdown2, UtUpload2 };
10
+ export { UtGrid2, UtModalForm2, FormUpload2, utLov2, UtModalGrid2, UtForm2, UtUpload2 };
@@ -11,7 +11,7 @@
11
11
  resize
12
12
  esc-closable
13
13
  show-footer
14
- :className="className"
14
+ :class-name="className"
15
15
  :before-hide-method="beforeHideMethod"
16
16
  >
17
17
  <template #default>