vxe-pc-ui 1.8.13 → 1.9.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.
Files changed (130) hide show
  1. package/es/alert/index.js +10 -0
  2. package/es/alert/src/alert.js +103 -0
  3. package/es/alert/style.css +129 -0
  4. package/es/alert/style.min.css +1 -0
  5. package/es/components.js +3 -0
  6. package/es/drawer/src/drawer.js +3 -1
  7. package/es/drawer/style.css +3 -2
  8. package/es/drawer/style.min.css +1 -1
  9. package/es/icon/style.css +1 -1
  10. package/es/image/src/image.js +14 -3
  11. package/es/image/src/preview.js +217 -47
  12. package/es/image/src/util.js +1 -2
  13. package/es/image-preview/style.css +6 -4
  14. package/es/image-preview/style.min.css +1 -1
  15. package/es/modal/src/modal.js +3 -1
  16. package/es/modal/style.css +3 -1
  17. package/es/modal/style.min.css +1 -1
  18. package/es/style.css +1 -1
  19. package/es/style.min.css +1 -1
  20. package/es/tag/style.css +6 -6
  21. package/es/tag/style.min.css +1 -1
  22. package/es/tips/style.css +10 -9
  23. package/es/tips/style.min.css +1 -1
  24. package/es/ui/index.js +14 -3
  25. package/es/vxe-alert/index.js +3 -0
  26. package/es/vxe-alert/style.css +129 -0
  27. package/es/vxe-alert/style.min.css +1 -0
  28. package/es/vxe-drawer/style.css +3 -2
  29. package/es/vxe-drawer/style.min.css +1 -1
  30. package/es/vxe-image-preview/style.css +6 -4
  31. package/es/vxe-image-preview/style.min.css +1 -1
  32. package/es/vxe-modal/style.css +3 -1
  33. package/es/vxe-modal/style.min.css +1 -1
  34. package/es/vxe-tag/style.css +6 -6
  35. package/es/vxe-tag/style.min.css +1 -1
  36. package/es/vxe-tips/style.css +10 -9
  37. package/es/vxe-tips/style.min.css +1 -1
  38. package/lib/alert/index.js +17 -0
  39. package/lib/alert/index.min.js +1 -0
  40. package/lib/alert/src/alert.js +101 -0
  41. package/lib/alert/src/alert.min.js +1 -0
  42. package/lib/alert/style/index.js +1 -0
  43. package/lib/alert/style/style.css +129 -0
  44. package/lib/alert/style/style.min.css +1 -0
  45. package/lib/components.js +13 -1
  46. package/lib/components.min.js +1 -1
  47. package/lib/drawer/src/drawer.js +6 -0
  48. package/lib/drawer/src/drawer.min.js +1 -1
  49. package/lib/drawer/style/style.css +3 -2
  50. package/lib/drawer/style/style.min.css +1 -1
  51. package/lib/icon/style/style.css +1 -1
  52. package/lib/icon/style/style.min.css +1 -1
  53. package/lib/image/src/image.js +16 -3
  54. package/lib/image/src/image.min.js +1 -1
  55. package/lib/image/src/preview.js +195 -28
  56. package/lib/image/src/preview.min.js +1 -1
  57. package/lib/image/src/util.js +0 -2
  58. package/lib/image/src/util.min.js +1 -1
  59. package/lib/image-preview/style/style.css +6 -4
  60. package/lib/image-preview/style/style.min.css +1 -1
  61. package/lib/index.umd.js +756 -399
  62. package/lib/index.umd.min.js +1 -1
  63. package/lib/modal/src/modal.js +6 -0
  64. package/lib/modal/src/modal.min.js +1 -1
  65. package/lib/modal/style/style.css +3 -1
  66. package/lib/modal/style/style.min.css +1 -1
  67. package/lib/style.css +1 -1
  68. package/lib/style.min.css +1 -1
  69. package/lib/tag/style/style.css +6 -6
  70. package/lib/tag/style/style.min.css +1 -1
  71. package/lib/tips/style/style.css +10 -9
  72. package/lib/tips/style/style.min.css +1 -1
  73. package/lib/ui/index.js +14 -3
  74. package/lib/ui/index.min.js +1 -1
  75. package/lib/vxe-alert/index.js +22 -0
  76. package/lib/vxe-alert/index.min.js +1 -0
  77. package/lib/vxe-alert/style/index.js +1 -0
  78. package/lib/vxe-alert/style/style.css +129 -0
  79. package/lib/vxe-alert/style/style.min.css +1 -0
  80. package/lib/vxe-drawer/style/style.css +3 -2
  81. package/lib/vxe-drawer/style/style.min.css +1 -1
  82. package/lib/vxe-image-preview/style/style.css +6 -4
  83. package/lib/vxe-image-preview/style/style.min.css +1 -1
  84. package/lib/vxe-modal/style/style.css +3 -1
  85. package/lib/vxe-modal/style/style.min.css +1 -1
  86. package/lib/vxe-tag/style/style.css +6 -6
  87. package/lib/vxe-tag/style/style.min.css +1 -1
  88. package/lib/vxe-tips/style/style.css +10 -9
  89. package/lib/vxe-tips/style/style.min.css +1 -1
  90. package/package.json +2 -2
  91. package/packages/alert/index.ts +14 -0
  92. package/packages/alert/src/alert.ts +123 -0
  93. package/packages/components.ts +3 -0
  94. package/packages/drawer/src/drawer.ts +3 -1
  95. package/packages/image/src/image.ts +15 -3
  96. package/packages/image/src/preview.ts +212 -46
  97. package/packages/image/src/util.ts +1 -2
  98. package/packages/modal/src/modal.ts +3 -1
  99. package/packages/tips/src/tips.ts +3 -2
  100. package/packages/ui/index.ts +14 -2
  101. package/styles/all.scss +1 -0
  102. package/styles/components/alert.scss +99 -0
  103. package/styles/components/drawer.scss +9 -7
  104. package/styles/components/image-preview.scss +7 -4
  105. package/styles/components/modal.scss +5 -1
  106. package/styles/components/tag.scss +6 -6
  107. package/styles/components/tips.scss +10 -9
  108. package/styles/theme/base.scss +0 -53
  109. package/styles/theme/dark.scss +46 -12
  110. package/styles/theme/light.scss +46 -12
  111. package/types/all.d.ts +3 -0
  112. package/types/components/alert.d.ts +85 -0
  113. package/types/components/drawer.d.ts +2 -0
  114. package/types/components/image-preview.d.ts +6 -1
  115. package/types/components/image.d.ts +0 -1
  116. package/types/components/modal.d.ts +2 -0
  117. package/types/ui/global-config.d.ts +5 -1
  118. package/types/ui/global-icon.d.ts +7 -0
  119. /package/es/icon/style/{iconfont.1717233455609.ttf → iconfont.1717313412020.ttf} +0 -0
  120. /package/es/icon/style/{iconfont.1717233455609.woff → iconfont.1717313412020.woff} +0 -0
  121. /package/es/icon/style/{iconfont.1717233455609.woff2 → iconfont.1717313412020.woff2} +0 -0
  122. /package/es/{iconfont.1717233455609.ttf → iconfont.1717313412020.ttf} +0 -0
  123. /package/es/{iconfont.1717233455609.woff → iconfont.1717313412020.woff} +0 -0
  124. /package/es/{iconfont.1717233455609.woff2 → iconfont.1717313412020.woff2} +0 -0
  125. /package/lib/icon/style/{iconfont.1717233455609.ttf → iconfont.1717313412020.ttf} +0 -0
  126. /package/lib/icon/style/{iconfont.1717233455609.woff → iconfont.1717313412020.woff} +0 -0
  127. /package/lib/icon/style/{iconfont.1717233455609.woff2 → iconfont.1717313412020.woff2} +0 -0
  128. /package/lib/{iconfont.1717233455609.ttf → iconfont.1717313412020.ttf} +0 -0
  129. /package/lib/{iconfont.1717233455609.woff → iconfont.1717313412020.woff} +0 -0
  130. /package/lib/{iconfont.1717233455609.woff2 → iconfont.1717313412020.woff2} +0 -0
@@ -7,13 +7,21 @@ exports.default = void 0;
7
7
  var _vue = require("vue");
8
8
  var _core = require("@vxe-ui/core");
9
9
  var _xeUtils = _interopRequireDefault(require("xe-utils"));
10
+ var _dom = require("../..//ui/src/dom");
10
11
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
12
  var _default = exports.default = (0, _vue.defineComponent)({
12
13
  name: 'VxeImagePreview',
13
14
  props: {
14
15
  modelValue: Number,
15
- url: String,
16
- urlList: Array
16
+ urlList: Array,
17
+ urlField: {
18
+ type: String,
19
+ default: () => (0, _core.getConfig)().imagePreview.urlField
20
+ },
21
+ marginSize: {
22
+ type: String,
23
+ default: () => (0, _core.getConfig)().imagePreview.marginSize
24
+ }
17
25
  },
18
26
  emits: ['update:modelValue', 'change', 'close'],
19
27
  setup(props, context) {
@@ -22,38 +30,83 @@ var _default = exports.default = (0, _vue.defineComponent)({
22
30
  } = context;
23
31
  const xID = _xeUtils.default.uniqueId();
24
32
  const reactData = (0, _vue.reactive)({
25
- activeIndex: props.modelValue,
33
+ activeIndex: props.modelValue || 0,
34
+ targetHeight: 0,
35
+ targetWidth: 0,
26
36
  offsetPct11: false,
27
37
  offsetScale: 0,
28
38
  offsetRotate: 0,
29
39
  offsetLeft: 0,
30
40
  offsetTop: 0
31
41
  });
42
+ const computeUrlProp = (0, _vue.computed)(() => {
43
+ return props.urlField || 'url';
44
+ });
45
+ const computeMarginSize = (0, _vue.computed)(() => {
46
+ return _xeUtils.default.toNumber(props.marginSize || 0) || 16;
47
+ });
32
48
  const computeImgList = (0, _vue.computed)(() => {
33
49
  const {
34
- url,
35
50
  urlList
36
51
  } = props;
37
- let list = [];
52
+ const urlProp = computeUrlProp.value;
38
53
  if (urlList && urlList.length) {
39
- list = urlList;
40
- } else if (url) {
41
- list = [url];
54
+ return urlList.map(item => {
55
+ if (_xeUtils.default.isString(item)) {
56
+ return item;
57
+ }
58
+ if (item[urlProp]) {
59
+ return item[urlProp];
60
+ }
61
+ return '';
62
+ });
42
63
  }
43
- return list;
64
+ return [];
44
65
  });
45
66
  const computeImgTransform = (0, _vue.computed)(() => {
46
- const {
67
+ let {
47
68
  offsetScale,
48
- offsetRotate
69
+ offsetRotate,
70
+ offsetLeft,
71
+ offsetTop
49
72
  } = reactData;
50
73
  const stys = [];
51
- if (offsetScale) {
52
- stys.push(`scale(${1 + offsetScale})`);
74
+ let targetScale = 1;
75
+ if (targetScale) {
76
+ targetScale = 1 + offsetScale;
77
+ stys.push(`scale(${targetScale})`);
53
78
  }
54
79
  if (offsetRotate) {
55
80
  stys.push(`rotate(${offsetRotate}deg)`);
56
81
  }
82
+ if (offsetLeft || offsetTop) {
83
+ // 缩放与位移
84
+ offsetLeft /= targetScale;
85
+ offsetTop /= targetScale;
86
+ let targetOffsetLeft = offsetLeft;
87
+ let targetOffsetTop = offsetTop;
88
+ if (offsetRotate) {
89
+ // 转向与位移
90
+ switch (offsetRotate % 360) {
91
+ case 90:
92
+ case -270:
93
+ targetOffsetLeft = offsetTop;
94
+ targetOffsetTop = -offsetLeft;
95
+ break;
96
+ case 180:
97
+ case -180:
98
+ targetOffsetLeft = -offsetLeft;
99
+ targetOffsetTop = -offsetTop;
100
+ break;
101
+ case 270:
102
+ case -90:
103
+ targetOffsetLeft = -offsetTop;
104
+ targetOffsetTop = offsetLeft;
105
+ break;
106
+ }
107
+ }
108
+ stys.push(`translate(${targetOffsetLeft}px, ${targetOffsetTop}px)`);
109
+ }
57
110
  return stys.length ? stys.join(' ') : '';
58
111
  });
59
112
  const computeMaps = {
@@ -82,20 +135,47 @@ var _default = exports.default = (0, _vue.defineComponent)({
82
135
  };
83
136
  const imagePreviewPrivateMethods = {};
84
137
  const resetStyle = () => {
85
- reactData.offsetPct11 = false;
86
- reactData.offsetScale = 0;
87
- reactData.offsetRotate = 0;
88
- reactData.offsetTop = 0;
89
- reactData.offsetLeft = 0;
138
+ Object.assign(reactData, {
139
+ targetHeight: 0,
140
+ targetWidth: 0,
141
+ offsetPct11: false,
142
+ offsetScale: 0,
143
+ offsetRotate: 0,
144
+ offsetLeft: 0,
145
+ offsetTop: 0
146
+ });
90
147
  };
91
148
  const handleZoom = isAdd => {
92
149
  const {
93
150
  offsetScale
94
151
  } = reactData;
152
+ let stepNum = 0.02;
153
+ console.log(offsetScale);
154
+ if (offsetScale >= -0.6) {
155
+ stepNum = 0.04;
156
+ if (offsetScale >= -0.4) {
157
+ stepNum = 0.07;
158
+ if (offsetScale >= 0) {
159
+ stepNum = 0.1;
160
+ if (offsetScale >= 3) {
161
+ stepNum = 0.2;
162
+ if (offsetScale >= 8) {
163
+ stepNum = 0.3;
164
+ if (offsetScale >= 18) {
165
+ stepNum = 0.4;
166
+ if (offsetScale >= 38) {
167
+ stepNum = 0.5;
168
+ }
169
+ }
170
+ }
171
+ }
172
+ }
173
+ }
174
+ }
95
175
  if (isAdd) {
96
- reactData.offsetScale = Number(Math.min(10, offsetScale + 0.1).toFixed(2));
176
+ reactData.offsetScale = Number(Math.min(50, offsetScale + stepNum).toFixed(2));
97
177
  } else {
98
- reactData.offsetScale = Number(Math.max(-0.6, offsetScale - 0.1).toFixed(2));
178
+ reactData.offsetScale = Number(Math.max(-0.9, offsetScale - stepNum).toFixed(2));
99
179
  }
100
180
  };
101
181
  const handleChange = isNext => {
@@ -114,6 +194,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
114
194
  activeIndex--;
115
195
  }
116
196
  }
197
+ resetStyle();
117
198
  reactData.activeIndex = activeIndex;
118
199
  emitModel(activeIndex);
119
200
  };
@@ -127,6 +208,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
127
208
  reactData.offsetRotate = offsetRotate;
128
209
  };
129
210
  const handlePct11 = () => {
211
+ resetStyle();
130
212
  reactData.offsetPct11 = true;
131
213
  };
132
214
  const handlePrintImg = () => {
@@ -174,13 +256,94 @@ var _default = exports.default = (0, _vue.defineComponent)({
174
256
  }
175
257
  }
176
258
  };
259
+ const wheelEvent = evnt => {
260
+ const delta = evnt.deltaY;
261
+ if (delta > 0) {
262
+ handleZoom(false);
263
+ } else if (delta < 0) {
264
+ handleZoom(true);
265
+ }
266
+ };
267
+ const moveEvent = evnt => {
268
+ const {
269
+ offsetTop,
270
+ offsetLeft
271
+ } = reactData;
272
+ evnt.preventDefault();
273
+ const domMousemove = document.onmousemove;
274
+ const domMouseup = document.onmouseup;
275
+ const startX = evnt.pageX;
276
+ const startY = evnt.pageY;
277
+ const marginSize = computeMarginSize.value;
278
+ document.onmousemove = et => {
279
+ const {
280
+ pageX,
281
+ pageY
282
+ } = et;
283
+ const {
284
+ visibleHeight,
285
+ visibleWidth
286
+ } = (0, _dom.getDomNode)();
287
+ et.preventDefault();
288
+ console.log(et.pageX);
289
+ // 限制边界值
290
+ if (pageX > marginSize && pageY > marginSize && pageX < visibleWidth - marginSize && pageY < visibleHeight - marginSize) {
291
+ reactData.offsetLeft = offsetLeft + pageX - startX;
292
+ reactData.offsetTop = offsetTop + pageY - startY;
293
+ }
294
+ };
295
+ document.onmouseup = () => {
296
+ document.onmousemove = domMousemove;
297
+ document.onmouseup = domMouseup;
298
+ };
299
+ };
177
300
  const handleGlobalKeydownEvent = evnt => {
301
+ const hasCtrlKey = evnt.ctrlKey;
302
+ const hasShiftKey = evnt.shiftKey;
303
+ const isUpArrow = _core.globalEvents.hasKey(evnt, _core.GLOBAL_EVENT_KEYS.ARROW_UP);
304
+ const isDownArrow = _core.globalEvents.hasKey(evnt, _core.GLOBAL_EVENT_KEYS.ARROW_DOWN);
178
305
  const isLeftArrow = _core.globalEvents.hasKey(evnt, _core.GLOBAL_EVENT_KEYS.ARROW_LEFT);
179
306
  const isRightArrow = _core.globalEvents.hasKey(evnt, _core.GLOBAL_EVENT_KEYS.ARROW_RIGHT);
180
- if (isLeftArrow) {
181
- handleChange(false);
307
+ const isR = _core.globalEvents.hasKey(evnt, _core.GLOBAL_EVENT_KEYS.R);
308
+ const isP = _core.globalEvents.hasKey(evnt, _core.GLOBAL_EVENT_KEYS.P);
309
+ if (isUpArrow) {
310
+ evnt.preventDefault();
311
+ if (hasShiftKey) {
312
+ reactData.offsetTop -= 1;
313
+ } else {
314
+ handleZoom(true);
315
+ }
316
+ } else if (isDownArrow) {
317
+ evnt.preventDefault();
318
+ if (hasShiftKey) {
319
+ reactData.offsetTop += 1;
320
+ } else {
321
+ handleZoom(false);
322
+ }
323
+ } else if (isLeftArrow) {
324
+ evnt.preventDefault();
325
+ if (hasShiftKey) {
326
+ reactData.offsetLeft -= 1;
327
+ } else {
328
+ handleChange(false);
329
+ }
182
330
  } else if (isRightArrow) {
183
- handleChange(true);
331
+ evnt.preventDefault();
332
+ if (hasShiftKey) {
333
+ reactData.offsetLeft += 1;
334
+ } else {
335
+ handleChange(true);
336
+ }
337
+ } else if (isR && hasCtrlKey) {
338
+ evnt.preventDefault();
339
+ if (hasShiftKey) {
340
+ handleRotateImg(false);
341
+ } else {
342
+ handleRotateImg(true);
343
+ }
344
+ } else if (isP && hasCtrlKey) {
345
+ evnt.preventDefault();
346
+ handlePrintImg();
184
347
  }
185
348
  };
186
349
  Object.assign($xeImagePreview, imagePreviewMethods, imagePreviewPrivateMethods);
@@ -201,7 +364,10 @@ var _default = exports.default = (0, _vue.defineComponent)({
201
364
  src: url,
202
365
  style: isActive ? {
203
366
  transform: imgTransform
204
- } : null
367
+ } : null,
368
+ onMousedown(evnt) {
369
+ moveEvent(evnt);
370
+ }
205
371
  });
206
372
  }));
207
373
  };
@@ -231,21 +397,21 @@ var _default = exports.default = (0, _vue.defineComponent)({
231
397
  class: (0, _core.getIcon)().IMAGE_PREVIEW_CLOSE
232
398
  })]), (0, _vue.h)('div', {
233
399
  class: 'vxe-image-preview--close-bg'
234
- })]), (0, _vue.h)('div', {
400
+ })]), imgList.length > 1 ? (0, _vue.h)('div', {
235
401
  class: 'vxe-image-preview--previous-btn',
236
402
  onClick() {
237
403
  handleChange(false);
238
404
  }
239
405
  }, [(0, _vue.h)('i', {
240
406
  class: (0, _core.getIcon)().IMAGE_PREVIEW_PREVIOUS
241
- })]), (0, _vue.h)('div', {
407
+ })]) : (0, _vue.createCommentVNode)(), imgList.length > 1 ? (0, _vue.h)('div', {
242
408
  class: 'vxe-image-preview--next-btn',
243
409
  onClick() {
244
410
  handleChange(true);
245
411
  }
246
412
  }, [(0, _vue.h)('i', {
247
413
  class: (0, _core.getIcon)().IMAGE_PREVIEW_NEXT
248
- })]), (0, _vue.h)('div', {
414
+ })]) : (0, _vue.createCommentVNode)(), (0, _vue.h)('div', {
249
415
  class: 'vxe-image-preview--operation-wrapper'
250
416
  }, [(0, _vue.h)('div', {
251
417
  class: 'vxe-image-preview--operation-active-count'
@@ -258,7 +424,8 @@ var _default = exports.default = (0, _vue.defineComponent)({
258
424
  return (0, _vue.h)('div', {
259
425
  class: ['vxe-image-preview', {
260
426
  'is--pct11': offsetPct11
261
- }]
427
+ }],
428
+ onWheel: wheelEvent
262
429
  }, [renderImgWrapper(), renderBtnWrapper()]);
263
430
  };
264
431
  $xeImagePreview.renderVN = renderVN;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_core=require("@vxe-ui/core"),_xeUtils=_interopRequireDefault(require("xe-utils"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var _default=exports.default=(0,_vue.defineComponent)({name:"VxeImagePreview",props:{modelValue:Number,url:String,urlList:Array},emits:["update:modelValue","change","close"],setup(o,e){const r=e["emit"];var t=_xeUtils.default.uniqueId();const i=(0,_vue.reactive)({activeIndex:o.modelValue,offsetPct11:!1,offsetScale:0,offsetRotate:0,offsetLeft:0,offsetTop:0}),s=(0,_vue.computed)(()=>{var{url:e,urlList:t}=o;let a=[];return t&&t.length?a=t:e&&(a=[e]),a}),c=(0,_vue.computed)(()=>{var{offsetScale:e,offsetRotate:t}=i,a=[];return e&&a.push(`scale(${1+e})`),t&&a.push(`rotate(${t}deg)`),a.length?a.join(" "):""}),a={computeImgList:s},v={xID:t,props:o,context:e,reactData:i,getComputeMaps:()=>a},l={dispatchEvent(e,t,a){r(e,(0,_core.createEvent)(a,{$imagePreview:v},t))}},n=e=>{i.activeIndex=e,r("update:modelValue",e)},u=e=>{l.dispatchEvent("close",{},e)};const _=()=>{i.offsetPct11=!1,i.offsetScale=0,i.offsetRotate=0,i.offsetTop=0,i.offsetLeft=0},p=e=>{var t=i["offsetScale"];i.offsetScale=e?Number(Math.min(10,t+.1).toFixed(2)):Number(Math.max(-.6,t-.1).toFixed(2))},d=e=>{let t=i.activeIndex||0;var a=s.value;e?t>=a.length-1?t=0:t++:t<=0?t=a.length-1:t--,i.activeIndex=t,n(t)},f=e=>{let t=i.offsetRotate;e?t+=90:t-=90,i.offsetRotate=t},m=e=>{var t,a=i["activeIndex"];if(s.value[a||0])switch(e){case"zoomOut":p(!1);break;case"zoomIn":p(!0);break;case"pctFull":_();break;case"pct11":i.offsetPct11=!0;break;case"rotateLeft":f(!1);break;case"rotateRight":f(!0);break;case"print":t=i.activeIndex,t=s.value[t||0],_core.VxeUI.print&&_core.VxeUI.print({customStyle:"@page {size: auto;margin: 0mm;}html,body{height:100%;}body{display: flex;flex-direction: row;align-items: center;justify-content: center;}",content:`<img src="${t}" style="display: block;max-width:90%;max-height:90%;">`})}},E=e=>{var t=_core.globalEvents.hasKey(e,_core.GLOBAL_EVENT_KEYS.ARROW_LEFT),e=_core.globalEvents.hasKey(e,_core.GLOBAL_EVENT_KEYS.ARROW_RIGHT);t?d(!1):e&&d(!0)},I=(Object.assign(v,l,{}),(e,t)=>(0,_vue.h)("div",{class:"vxe-image-preview--operation-btn",onClick(){m(e)}},[(0,_vue.h)("i",{class:(0,_core.getIcon)()[t]})]));t=()=>{var e,t=i["offsetPct11"];return(0,_vue.h)("div",{class:["vxe-image-preview",{"is--pct11":t}]},[(()=>{const a=i["activeIndex"];var e=s.value;const o=c.value;return(0,_vue.h)("div",{class:"vxe-image-preview--img-list"},e.map((e,t)=>{t=a===t;return(0,_vue.h)("img",{class:["vxe-image-preview--img-item",{"is--active":t}],src:e,style:t?{transform:o}:null})}))})(),(t=i.activeIndex,e=s.value,(0,_vue.h)("div",{class:"vxe-image-preview--btn-wrapper"},[(0,_vue.h)("div",{class:"vxe-image-preview--close-wrapper"},[(0,_vue.h)("div",{class:"vxe-image-preview--close-btn",onClick:u},[(0,_vue.h)("i",{class:(0,_core.getIcon)().IMAGE_PREVIEW_CLOSE})]),(0,_vue.h)("div",{class:"vxe-image-preview--close-bg"})]),(0,_vue.h)("div",{class:"vxe-image-preview--previous-btn",onClick(){d(!1)}},[(0,_vue.h)("i",{class:(0,_core.getIcon)().IMAGE_PREVIEW_PREVIOUS})]),(0,_vue.h)("div",{class:"vxe-image-preview--next-btn",onClick(){d(!0)}},[(0,_vue.h)("i",{class:(0,_core.getIcon)().IMAGE_PREVIEW_NEXT})]),(0,_vue.h)("div",{class:"vxe-image-preview--operation-wrapper"},[(0,_vue.h)("div",{class:"vxe-image-preview--operation-active-count"},(t||0)+1+"/"+e.length),I("zoomOut","IMAGE_PREVIEW_ZOOM_OUT"),I("zoomIn","IMAGE_PREVIEW_ZOOM_IN"),I("pctFull","IMAGE_PREVIEW_PCT_FULL"),I("pct11","IMAGE_PREVIEW_PCT_1_1"),I("rotateLeft","IMAGE_PREVIEW_ROTATE_LEFT"),I("rotateRight","IMAGE_PREVIEW_ROTATE_RIGHT"),I("print","IMAGE_PREVIEW_PRINT")])]))])};return v.renderVN=t,(0,_vue.watch)(()=>o.modelValue,e=>{i.activeIndex=e,_()}),(0,_vue.onMounted)(()=>{_core.globalEvents.on(v,"keydown",E)}),(0,_vue.onUnmounted)(()=>{_core.globalEvents.off(v,"keydown")}),(0,_vue.provide)("$xeImagePreview",v),t}});
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_core=require("@vxe-ui/core"),_xeUtils=_interopRequireDefault(require("xe-utils")),_dom=require("../..//ui/src/dom");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var _default=exports.default=(0,_vue.defineComponent)({name:"VxeImagePreview",props:{modelValue:Number,urlList:Array,urlField:{type:String,default:()=>(0,_core.getConfig)().imagePreview.urlField},marginSize:{type:String,default:()=>(0,_core.getConfig)().imagePreview.marginSize}},emits:["update:modelValue","change","close"],setup(o,e){const a=e["emit"];var t=_xeUtils.default.uniqueId();const u=(0,_vue.reactive)({activeIndex:o.modelValue||0,targetHeight:0,targetWidth:0,offsetPct11:!1,offsetScale:0,offsetRotate:0,offsetLeft:0,offsetTop:0}),r=(0,_vue.computed)(()=>o.urlField||"url"),v=(0,_vue.computed)(()=>_xeUtils.default.toNumber(o.marginSize||0)||16),s=(0,_vue.computed)(()=>{var e=o["urlList"];const t=r.value;return e&&e.length?e.map(e=>_xeUtils.default.isString(e)?e:e[t]||""):[]}),i=(0,_vue.computed)(()=>{var{offsetScale:e,offsetRotate:o,offsetLeft:a,offsetTop:r}=u,s=[];let i=1;if(i&&(i=1+e,s.push(`scale(${i})`)),o&&s.push(`rotate(${o}deg)`),a||r){let e=a/=i,t=r/=i;if(o)switch(o%360){case 90:case-270:e=r,t=-a;break;case 180:case-180:e=-a,t=-r;break;case 270:case-90:e=-r,t=a}s.push(`translate(${e}px, ${t}px)`)}return s.length?s.join(" "):""}),c={computeImgList:s},l={xID:t,props:o,context:e,reactData:u,getComputeMaps:()=>c},n={dispatchEvent(e,t,o){a(e,(0,_core.createEvent)(o,{$imagePreview:l},t))}},_=e=>{u.activeIndex=e,a("update:modelValue",e)},f=e=>{n.dispatchEvent("close",{},e)};const p=()=>{Object.assign(u,{targetHeight:0,targetWidth:0,offsetPct11:!1,offsetScale:0,offsetRotate:0,offsetLeft:0,offsetTop:0})},m=e=>{var t=u["offsetScale"];let o=.02;console.log(t),-.6<=t&&(o=.04,-.4<=t)&&(o=.07,0<=t)&&(o=.1,3<=t)&&(o=.2,8<=t)&&(o=.3,18<=t)&&(o=.4,38<=t)&&(o=.5),u.offsetScale=e?Number(Math.min(50,t+o).toFixed(2)):Number(Math.max(-.9,t-o).toFixed(2))},d=e=>{let t=u.activeIndex||0;var o=s.value;e?t>=o.length-1?t=0:t++:t<=0?t=o.length-1:t--,p(),u.activeIndex=t,_(t)},g=e=>{let t=u.offsetRotate;e?t+=90:t-=90,u.offsetRotate=t},E=()=>{var e=u["activeIndex"],e=s.value[e||0];_core.VxeUI.print&&_core.VxeUI.print({customStyle:"@page {size: auto;margin: 0mm;}html,body{height:100%;}body{display: flex;flex-direction: row;align-items: center;justify-content: center;}",content:`<img src="${e}" style="display: block;max-width:90%;max-height:90%;">`})},h=e=>{var t=u["activeIndex"];if(s.value[t||0])switch(e){case"zoomOut":m(!1);break;case"zoomIn":m(!0);break;case"pctFull":p();break;case"pct11":p(),u.offsetPct11=!0;break;case"rotateLeft":g(!1);break;case"rotateRight":g(!0);break;case"print":E()}},I=e=>{e=e.deltaY;0<e?m(!1):e<0&&m(!0)},x=e=>{const{offsetTop:s,offsetLeft:i}=u,t=(e.preventDefault(),document.onmousemove),o=document.onmouseup,c=e.pageX,l=e.pageY,n=v.value;document.onmousemove=e=>{var{pageX:t,pageY:o}=e,{visibleHeight:a,visibleWidth:r}=(0,_dom.getDomNode)();e.preventDefault(),console.log(e.pageX),t>n&&o>n&&t<r-n&&o<a-n&&(u.offsetLeft=i+t-c,u.offsetTop=s+o-l)},document.onmouseup=()=>{document.onmousemove=t,document.onmouseup=o}},b=e=>{var t=e.ctrlKey,o=e.shiftKey,a=_core.globalEvents.hasKey(e,_core.GLOBAL_EVENT_KEYS.ARROW_UP),r=_core.globalEvents.hasKey(e,_core.GLOBAL_EVENT_KEYS.ARROW_DOWN),s=_core.globalEvents.hasKey(e,_core.GLOBAL_EVENT_KEYS.ARROW_LEFT),i=_core.globalEvents.hasKey(e,_core.GLOBAL_EVENT_KEYS.ARROW_RIGHT),c=_core.globalEvents.hasKey(e,_core.GLOBAL_EVENT_KEYS.R),l=_core.globalEvents.hasKey(e,_core.GLOBAL_EVENT_KEYS.P);a?(e.preventDefault(),o?--u.offsetTop:m(!0)):r?(e.preventDefault(),o?u.offsetTop+=1:m(!1)):s?(e.preventDefault(),o?--u.offsetLeft:d(!1)):i?(e.preventDefault(),o?u.offsetLeft+=1:d(!0)):c&&t?(e.preventDefault(),o?g(!1):g(!0)):l&&t&&(e.preventDefault(),E())},R=(Object.assign(l,n,{}),(e,t)=>(0,_vue.h)("div",{class:"vxe-image-preview--operation-btn",onClick(){h(e)}},[(0,_vue.h)("i",{class:(0,_core.getIcon)()[t]})]));t=()=>{var e,t=u["offsetPct11"];return(0,_vue.h)("div",{class:["vxe-image-preview",{"is--pct11":t}],onWheel:I},[(()=>{const o=u["activeIndex"];var e=s.value;const a=i.value;return(0,_vue.h)("div",{class:"vxe-image-preview--img-list"},e.map((e,t)=>{t=o===t;return(0,_vue.h)("img",{class:["vxe-image-preview--img-item",{"is--active":t}],src:e,style:t?{transform:a}:null,onMousedown(e){x(e)}})}))})(),(t=u.activeIndex,e=s.value,(0,_vue.h)("div",{class:"vxe-image-preview--btn-wrapper"},[(0,_vue.h)("div",{class:"vxe-image-preview--close-wrapper"},[(0,_vue.h)("div",{class:"vxe-image-preview--close-btn",onClick:f},[(0,_vue.h)("i",{class:(0,_core.getIcon)().IMAGE_PREVIEW_CLOSE})]),(0,_vue.h)("div",{class:"vxe-image-preview--close-bg"})]),1<e.length?(0,_vue.h)("div",{class:"vxe-image-preview--previous-btn",onClick(){d(!1)}},[(0,_vue.h)("i",{class:(0,_core.getIcon)().IMAGE_PREVIEW_PREVIOUS})]):(0,_vue.createCommentVNode)(),1<e.length?(0,_vue.h)("div",{class:"vxe-image-preview--next-btn",onClick(){d(!0)}},[(0,_vue.h)("i",{class:(0,_core.getIcon)().IMAGE_PREVIEW_NEXT})]):(0,_vue.createCommentVNode)(),(0,_vue.h)("div",{class:"vxe-image-preview--operation-wrapper"},[(0,_vue.h)("div",{class:"vxe-image-preview--operation-active-count"},(t||0)+1+"/"+e.length),R("zoomOut","IMAGE_PREVIEW_ZOOM_OUT"),R("zoomIn","IMAGE_PREVIEW_ZOOM_IN"),R("pctFull","IMAGE_PREVIEW_PCT_FULL"),R("pct11","IMAGE_PREVIEW_PCT_1_1"),R("rotateLeft","IMAGE_PREVIEW_ROTATE_LEFT"),R("rotateRight","IMAGE_PREVIEW_ROTATE_RIGHT"),R("print","IMAGE_PREVIEW_PRINT")])]))])};return l.renderVN=t,(0,_vue.watch)(()=>o.modelValue,e=>{u.activeIndex=e,p()}),(0,_vue.onMounted)(()=>{_core.globalEvents.on(l,"keydown",b)}),(0,_vue.onUnmounted)(()=>{_core.globalEvents.off(l,"keydown")}),(0,_vue.provide)("$xeImagePreview",l),t}});
@@ -13,7 +13,6 @@ const openPreviewImage = options => {
13
13
  if (_core.VxeUI.modal) {
14
14
  const opts = Object.assign({}, options);
15
15
  const {
16
- url,
17
16
  urlList,
18
17
  activeIndex
19
18
  } = opts;
@@ -32,7 +31,6 @@ const openPreviewImage = options => {
32
31
  return (0, _vue.h)(_preview.default, {
33
32
  modelValue: activeIndex,
34
33
  urlList,
35
- url,
36
34
  onClose() {
37
35
  _core.VxeUI.modal.close(modalId);
38
36
  }
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.openPreviewImage=void 0;var _vue=require("vue"),_core=require("@vxe-ui/core"),_preview=_interopRequireDefault(require("./preview")),_xeUtils=_interopRequireDefault(require("xe-utils"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const openPreviewImage=e=>{if(_core.VxeUI.modal){const{url:r,urlList:i,activeIndex:o}=Object.assign({},e),t=_xeUtils.default.uniqueId("image-preview");_core.VxeUI.modal.open({id:t,title:"预览",width:"100%",height:"100%",showHeader:!1,showFooter:!1,escClosable:!0,className:"vxe-image-preview-popup-wrapper",slots:{default(){return(0,_vue.h)(_preview.default,{modelValue:o,urlList:i,url:r,onClose(){_core.VxeUI.modal.close(t)}})}}})}return Promise.resolve()};exports.openPreviewImage=openPreviewImage;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.openPreviewImage=void 0;var _vue=require("vue"),_core=require("@vxe-ui/core"),_preview=_interopRequireDefault(require("./preview")),_xeUtils=_interopRequireDefault(require("xe-utils"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const openPreviewImage=e=>{if(_core.VxeUI.modal){const{urlList:r,activeIndex:i}=Object.assign({},e),o=_xeUtils.default.uniqueId("image-preview");_core.VxeUI.modal.open({id:o,title:"预览",width:"100%",height:"100%",showHeader:!1,showFooter:!1,escClosable:!0,className:"vxe-image-preview-popup-wrapper",slots:{default(){return(0,_vue.h)(_preview.default,{modelValue:i,urlList:r,onClose(){_core.VxeUI.modal.close(o)}})}}})}return Promise.resolve()};exports.openPreviewImage=openPreviewImage;
@@ -21,7 +21,6 @@
21
21
  .vxe-image-preview--img-item {
22
22
  display: none;
23
23
  cursor: grabbing;
24
- transition: transform 0.3s ease-in-out;
25
24
  }
26
25
  .vxe-image-preview--img-item.is--active {
27
26
  display: block;
@@ -80,7 +79,7 @@
80
79
  justify-content: center;
81
80
  top: 50%;
82
81
  border-radius: 50%;
83
- font-size: 2em;
82
+ font-size: 1.6em;
84
83
  padding: 0.5em;
85
84
  transform: translateY(-50%);
86
85
  background-color: rgba(0, 0, 0, 0.8);
@@ -120,12 +119,13 @@
120
119
  display: flex;
121
120
  flex-direction: row;
122
121
  align-items: center;
122
+ justify-content: center;
123
123
  font-size: 1.2em;
124
- padding: 0 0.5em;
124
+ min-width: 2.5em;
125
125
  }
126
126
 
127
127
  .vxe-image-preview--operation-btn {
128
- font-size: 2em;
128
+ font-size: 1.6em;
129
129
  padding: 0.5em;
130
130
  cursor: pointer;
131
131
  transition: all 0.1s ease-in-out;
@@ -144,7 +144,9 @@
144
144
  user-select: none;
145
145
  }
146
146
  .vxe-image-preview-popup-wrapper.vxe-modal--wrapper.type--modal .vxe-modal--box {
147
+ border: 0;
147
148
  background-color: rgba(0, 0, 0, 0.1);
149
+ box-shadow: none;
148
150
  }
149
151
  .vxe-image-preview-popup-wrapper.vxe-modal--wrapper.type--modal .vxe-modal--content {
150
152
  padding: 0;
@@ -1 +1 @@
1
- .vxe-image-preview{position:relative;width:100%;height:100%;overflow:hidden}.vxe-image-preview:not(.is--pct11) .vxe-image-preview--img-item{max-width:100%;max-height:100%}.vxe-image-preview--img-list{display:flex;width:100%;height:100%;flex-direction:row;align-items:center;justify-content:center}.vxe-image-preview--img-item{display:none;cursor:grabbing;transition:transform .3s ease-in-out}.vxe-image-preview--img-item.is--active{display:block}.vxe-image-preview--close-btn{top:0;right:0;z-index:99;padding:1em;font-size:1.5em;transform:scale(1);border-radius:50%;cursor:pointer;transition:all .2s ease-in-out}.vxe-image-preview--close-bg{position:absolute;top:-7em;right:-12em;z-index:99;width:30em;height:10em;background-color:rgba(0,0,0,.8);color:var(--vxe-ui-status-error-color);transform:rotate(45deg);cursor:pointer;z-index:88;transition:all .2s ease-in-out}.vxe-image-preview--close-wrapper:hover .vxe-image-preview--close-btn{top:.2em;right:.2em;transform:scale(1.2);color:var(--vxe-ui-status-error-color)}.vxe-image-preview--close-wrapper:hover .vxe-image-preview--close-bg{top:-5em}.vxe-image-preview--close-btn,.vxe-image-preview--next-btn,.vxe-image-preview--operation-wrapper,.vxe-image-preview--previous-btn{position:absolute;z-index:99}.vxe-image-preview--next-btn,.vxe-image-preview--previous-btn{display:flex;flex-direction:row;align-items:center;justify-content:center;top:50%;border-radius:50%;font-size:2em;padding:.5em;transform:translateY(-50%);background-color:rgba(0,0,0,.8);cursor:pointer;transition:all .1s ease-in-out}.vxe-image-preview--next-btn:hover,.vxe-image-preview--previous-btn:hover{color:var(--vxe-ui-font-primary-color);transform:translateY(-50%) scale(1.2)}.vxe-image-preview--next-btn:active,.vxe-image-preview--previous-btn:active{transform:translateY(-50%) scale(1.1)}.vxe-image-preview--previous-btn{left:1vw}.vxe-image-preview--next-btn{right:1vw}.vxe-image-preview--operation-wrapper{display:flex;flex-direction:row;bottom:3vh;left:50%;transform:translateX(-50%);padding:0 1.5em;border-radius:3em;background-color:rgba(0,0,0,.8)}.vxe-image-preview--operation-active-count{display:flex;flex-direction:row;align-items:center;font-size:1.2em;padding:0 .5em}.vxe-image-preview--operation-btn{font-size:2em;padding:.5em;cursor:pointer;transition:all .1s ease-in-out}.vxe-image-preview--operation-btn:hover{color:var(--vxe-ui-font-primary-color);transform:scale(1.2)}.vxe-image-preview--operation-btn:active{transform:scale(1.1)}.vxe-image-preview-popup-wrapper{-webkit-user-select:none;-moz-user-select:none;user-select:none}.vxe-image-preview-popup-wrapper.vxe-modal--wrapper.type--modal .vxe-modal--box{background-color:rgba(0,0,0,.1)}.vxe-image-preview-popup-wrapper.vxe-modal--wrapper.type--modal .vxe-modal--content{padding:0}
1
+ .vxe-image-preview{position:relative;width:100%;height:100%;overflow:hidden}.vxe-image-preview:not(.is--pct11) .vxe-image-preview--img-item{max-width:100%;max-height:100%}.vxe-image-preview--img-list{display:flex;width:100%;height:100%;flex-direction:row;align-items:center;justify-content:center}.vxe-image-preview--img-item{display:none;cursor:grabbing}.vxe-image-preview--img-item.is--active{display:block}.vxe-image-preview--close-btn{top:0;right:0;z-index:99;padding:1em;font-size:1.5em;transform:scale(1);border-radius:50%;cursor:pointer;transition:all .2s ease-in-out}.vxe-image-preview--close-bg{position:absolute;top:-7em;right:-12em;z-index:99;width:30em;height:10em;background-color:rgba(0,0,0,.8);color:var(--vxe-ui-status-error-color);transform:rotate(45deg);cursor:pointer;z-index:88;transition:all .2s ease-in-out}.vxe-image-preview--close-wrapper:hover .vxe-image-preview--close-btn{top:.2em;right:.2em;transform:scale(1.2);color:var(--vxe-ui-status-error-color)}.vxe-image-preview--close-wrapper:hover .vxe-image-preview--close-bg{top:-5em}.vxe-image-preview--close-btn,.vxe-image-preview--next-btn,.vxe-image-preview--operation-wrapper,.vxe-image-preview--previous-btn{position:absolute;z-index:99}.vxe-image-preview--next-btn,.vxe-image-preview--previous-btn{display:flex;flex-direction:row;align-items:center;justify-content:center;top:50%;border-radius:50%;font-size:1.6em;padding:.5em;transform:translateY(-50%);background-color:rgba(0,0,0,.8);cursor:pointer;transition:all .1s ease-in-out}.vxe-image-preview--next-btn:hover,.vxe-image-preview--previous-btn:hover{color:var(--vxe-ui-font-primary-color);transform:translateY(-50%) scale(1.2)}.vxe-image-preview--next-btn:active,.vxe-image-preview--previous-btn:active{transform:translateY(-50%) scale(1.1)}.vxe-image-preview--previous-btn{left:1vw}.vxe-image-preview--next-btn{right:1vw}.vxe-image-preview--operation-wrapper{display:flex;flex-direction:row;bottom:3vh;left:50%;transform:translateX(-50%);padding:0 1.5em;border-radius:3em;background-color:rgba(0,0,0,.8)}.vxe-image-preview--operation-active-count{display:flex;flex-direction:row;align-items:center;justify-content:center;font-size:1.2em;min-width:2.5em}.vxe-image-preview--operation-btn{font-size:1.6em;padding:.5em;cursor:pointer;transition:all .1s ease-in-out}.vxe-image-preview--operation-btn:hover{color:var(--vxe-ui-font-primary-color);transform:scale(1.2)}.vxe-image-preview--operation-btn:active{transform:scale(1.1)}.vxe-image-preview-popup-wrapper{-webkit-user-select:none;-moz-user-select:none;user-select:none}.vxe-image-preview-popup-wrapper.vxe-modal--wrapper.type--modal .vxe-modal--box{border:0;background-color:rgba(0,0,0,.1);box-shadow:none}.vxe-image-preview-popup-wrapper.vxe-modal--wrapper.type--modal .vxe-modal--content{padding:0}