@jari-ace/element-plus-component 0.4.3 → 0.5.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 (46) hide show
  1. package/dist/components/avatar/JaAvatar.vue.d.ts.map +1 -1
  2. package/dist/components/avatar/JaAvatar.vue.js +4 -2
  3. package/dist/components/avatar/JaAvatar.vue.js.map +1 -1
  4. package/dist/components/flowShell/FlowFormShell.vue.d.ts +403 -0
  5. package/dist/components/flowShell/FlowFormShell.vue.d.ts.map +1 -0
  6. package/dist/components/flowShell/FlowFormShell.vue.js +671 -0
  7. package/dist/components/flowShell/FlowFormShell.vue.js.map +1 -0
  8. package/dist/components/flowShell/index.d.ts +4 -0
  9. package/dist/components/flowShell/index.d.ts.map +1 -0
  10. package/dist/components/flowShell/index.js +4 -0
  11. package/dist/components/flowShell/index.js.map +1 -0
  12. package/dist/components/index.d.ts +1 -0
  13. package/dist/components/index.d.ts.map +1 -1
  14. package/dist/components/index.js +1 -0
  15. package/dist/components/index.js.map +1 -1
  16. package/dist/components/upload/uploader.vue.d.ts.map +1 -1
  17. package/dist/components/upload/uploader.vue.js +65 -46
  18. package/dist/components/upload/uploader.vue.js.map +1 -1
  19. package/dist/components/userPicker/src/JaUserList.vue.d.ts.map +1 -1
  20. package/dist/components/userPicker/src/JaUserList.vue.js +0 -2
  21. package/dist/components/userPicker/src/JaUserList.vue.js.map +1 -1
  22. package/dist/components/userTag/UserInfoTag.vue.d.ts +1 -1
  23. package/dist/components/userTag/UserInfoTag.vue.d.ts.map +1 -1
  24. package/dist/components/userTag/UserInfoTag.vue.js +2 -2
  25. package/dist/components/userTag/UserInfoTag.vue.js.map +1 -1
  26. package/dist/hooks/useRouteableVisible.d.ts +12 -0
  27. package/dist/hooks/useRouteableVisible.d.ts.map +1 -0
  28. package/dist/hooks/useRouteableVisible.js +34 -0
  29. package/dist/hooks/useRouteableVisible.js.map +1 -0
  30. package/dist/index.d.ts +1 -0
  31. package/dist/index.d.ts.map +1 -1
  32. package/dist/index.js +1 -0
  33. package/dist/index.js.map +1 -1
  34. package/lib/index.css +2 -2
  35. package/lib/index.js +10616 -9904
  36. package/lib/index.umd.cjs +39 -35
  37. package/package.json +4 -2
  38. package/packages/components/avatar/JaAvatar.vue +4 -2
  39. package/packages/components/flowShell/FlowFormShell.vue +628 -0
  40. package/packages/components/flowShell/index.ts +5 -0
  41. package/packages/components/index.ts +1 -0
  42. package/packages/components/upload/uploader.vue +61 -46
  43. package/packages/components/userPicker/src/JaUserList.vue +0 -1
  44. package/packages/components/userTag/UserInfoTag.vue +2 -2
  45. package/packages/hooks/useRouteableVisible.ts +35 -0
  46. package/packages/index.ts +1 -0
@@ -16,7 +16,6 @@ import {
16
16
  useSystemClassificationLevels
17
17
  } from "../../hooks/useClassificationLevels";
18
18
  import Ace = Jari.Ace;
19
- import { ElMessageBox } from "element-plus";
20
19
  import "@uppy/core/css/style.min.css";
21
20
  import "@uppy/dashboard/css/style.min.css";
22
21
  import "@uppy/audio/css/style.min.css";
@@ -33,8 +32,8 @@ import Dashboard from "@uppy/dashboard";
33
32
  import ImageEditor from "@uppy/image-editor";
34
33
  import prettyBytes from "pretty-bytes";
35
34
  import PdfViewerModal from "./pdf-viewer/PdfViewerModal.vue";
36
-
37
35
  import {
36
+ ElMessageBox,
38
37
  ElTable,
39
38
  ElTableColumn,
40
39
  ElButton,
@@ -46,6 +45,7 @@ import {
46
45
  ElTooltip
47
46
  } from "element-plus";
48
47
  import type { AceFile } from "./types";
48
+ import { fa } from "element-plus/es/locales.mjs";
49
49
 
50
50
  const props = defineProps<{
51
51
  /**
@@ -419,69 +419,84 @@ async function downloadAll() {
419
419
  }
420
420
 
421
421
  function checkAllowUpload() {
422
- if (props.allowUpload == undefined) {
423
- const cfg = uploadInitParams.value?.fileConfig;
424
- if (cfg) {
425
- let hasRole = true;
426
- if (cfg.uploadAuthCode) {
427
- const login = useLoginUser();
428
- if (login) {
429
- hasRole = login.hasRole(cfg.uploadAuthCode);
430
- }
431
- return !cfg.disallowUpload && hasRole;
422
+ console.log('ja-uploader 上传权限调试:')
423
+ console.log('props.allowUpload = ', props.allowUpload)
424
+ if (props.allowUpload === false) return false;
425
+ const cfg = uploadInitParams.value?.fileConfig;
426
+ if (cfg) {
427
+ let hasRole = true;
428
+ console.log('cfg.uploadAuthCode = ', cfg.uploadAuthCode)
429
+ if (cfg.uploadAuthCode) {
430
+ const login = useLoginUser();
431
+ if (login) {
432
+ hasRole = login.hasRole(cfg.uploadAuthCode);
432
433
  }
433
- return !cfg.disallowUpload;
434
+ console.log('hasRole = ', hasRole)
435
+ console.log('final upload auth: ', !cfg.disallowUpload && hasRole)
436
+ return !cfg.disallowUpload && hasRole;
434
437
  }
435
- console.log('file cfg is null')
438
+ return !cfg.disallowUpload;
436
439
  }
437
- return props.allowUpload;
440
+ console.log('file cfg ' + props.configKey + ' does not exists')
441
+ return !!props.allowUpload;
438
442
  }
439
443
 
440
444
  function checkAllowDownload() {
441
- if (props.allowDownload == undefined) {
442
- const cfg = uploadInitParams.value?.fileConfig;
443
- if (cfg) {
444
- let hasRole = true;
445
- if (cfg.downloadAuthCode) {
446
- const login = useLoginUser();
447
- if (login) {
448
- hasRole = login.hasRole(cfg.downloadAuthCode);
449
- }
450
- return !cfg.disallowDownload && hasRole;
445
+ console.log('ja-uploader 下载权限调试:')
446
+ console.log('props.allowDownload = ', props.allowDownload)
447
+ if (props.allowDownload === false) return false;
448
+ const cfg = uploadInitParams.value?.fileConfig;
449
+ if (cfg) {
450
+ let hasRole = true;
451
+ console.log('cfg.uploadAuthCode = ', cfg.uploadAuthCode)
452
+ if (cfg.downloadAuthCode) {
453
+ const login = useLoginUser();
454
+ if (login) {
455
+ hasRole = login.hasRole(cfg.downloadAuthCode);
451
456
  }
452
- return !cfg.disallowDownload;
457
+ console.log('hasRole = ', hasRole)
458
+ console.log('final download auth: ', !cfg.disallowDownload && hasRole)
459
+ return !cfg.disallowDownload && hasRole;
453
460
  }
461
+ return !cfg.disallowDownload;
454
462
  }
455
- return props.allowDownload;
463
+ return !!props.allowDownload;
456
464
  }
457
465
 
458
466
  function checkAllowDelete() {
459
- if (props.allowDelete == undefined) {
460
- const cfg = uploadInitParams.value?.fileConfig;
461
- if (cfg) {
462
- let hasRole = true;
463
- if (cfg.deleteAuthCode) {
464
- const login = useLoginUser();
465
- if (login) {
466
- hasRole = login.hasRole(cfg.deleteAuthCode);
467
- }
468
- return !cfg.disallowDelete && hasRole;
467
+ console.log('ja-uploader 删除权限调试:')
468
+ console.log('props.allowDelete = ', props.allowDelete)
469
+ if (props.allowDelete === false) return false;
470
+ const cfg = uploadInitParams.value?.fileConfig;
471
+ if (cfg) {
472
+ let hasRole = true;
473
+ console.log('cfg.deleteAuthCode = ', cfg.deleteAuthCode)
474
+ if (cfg.deleteAuthCode) {
475
+ const login = useLoginUser();
476
+ if (login) {
477
+ hasRole = login.hasRole(cfg.deleteAuthCode);
469
478
  }
470
- return !cfg.disallowDelete;
479
+ console.log('hasRole = ', hasRole)
480
+ console.log('final delete auth: ', !cfg.disallowDelete && hasRole)
481
+ return !cfg.disallowDelete && hasRole;
471
482
  }
483
+ return !cfg.disallowDelete;
472
484
  }
473
- return props.allowDelete;
485
+ return !!props.allowDelete;
474
486
  }
475
487
 
476
488
  function checkAllowPreview(file: FileInfo) {
477
- if (props.allowPreview == undefined) {
478
- const cfg = uploadInitParams.value?.fileConfig;
479
- if (cfg) {
480
- if (cfg.disablePreview) {
481
- return false;
482
- }
483
- return previewableFileExts.some(ext => file.fileName.endsWith(ext));
489
+ console.log('ja-uploader 预览权限调试:')
490
+ console.log('props.allowPreview = ', props.allowPreview)
491
+ if (props.allowPreview === false) return false;
492
+ const cfg = uploadInitParams.value?.fileConfig;
493
+ if (cfg) {
494
+ if (cfg.disablePreview) {
495
+ return false;
484
496
  }
497
+ console.log("file name: ", file.fileName)
498
+ console.log("可预览类型:", previewableFileExts)
499
+ return previewableFileExts.some(ext => file.fileName.endsWith(ext));
485
500
  }
486
501
  return props.allowPreview;
487
502
  }
@@ -255,7 +255,6 @@ onUnmounted(() => {
255
255
  <Check v-if="userSelected(u)"/>
256
256
  </el-icon>
257
257
  <ja-user-info-tag :user-id="u.id" :full-name="u.fullName"
258
- :has-avatar="u.hasAvatar"
259
258
  placement="left-start"
260
259
  :theme="userTagTheme(u)"></ja-user-info-tag>
261
260
  </li>
@@ -29,7 +29,7 @@ const props = withDefaults(defineProps<{
29
29
  realm?: string,
30
30
  username?: string,
31
31
  theme?: keyof typeof themeClass,
32
- hasAvatar?: boolean,
32
+ showAvatarInTag?: boolean,
33
33
  placement?: 'top' | 'top-start' | 'top-end' | 'bottom' | 'bottom-start' | 'bottom-end' | 'left' | 'left-start' | 'left-end' | 'right' | 'right-start' | 'right-end'
34
34
  }>(), {
35
35
  closable: false,
@@ -106,7 +106,7 @@ function doUnbookmark() {
106
106
  <div :class="themeClass[props.theme]">
107
107
  <div class="portrait">
108
108
  <ja-avatar :size="24" :user-id="userId" :realm="realm"
109
- :username="username" :has-avatar="false"></ja-avatar>
109
+ :username="username" :has-avatar="showAvatarInTag"></ja-avatar>
110
110
  </div>
111
111
  <div class="user-info">
112
112
  {{ fullName }}
@@ -0,0 +1,35 @@
1
+ import { computed, ref, type Ref } from 'vue';
2
+ import { useRouter } from 'vue-router';
3
+ /**
4
+ * 支持通过路由控制对话框visible或者通过v-model控制对话框visible
5
+ *
6
+ * @param modelValue 对话框的visible模型变量
7
+ * @returns
8
+ */
9
+ export function useRouteableVisible(modelValue: Ref<boolean | undefined>) {
10
+ const router = useRouter();
11
+
12
+ // Use internal state if modelValue is not provided (route mode)
13
+ const internalVisible = ref(true);
14
+ const isRouteMode = computed(() => modelValue.value === undefined);
15
+
16
+ const visible = computed({
17
+ get: () => (isRouteMode.value ? internalVisible.value : modelValue.value!),
18
+ set: (val) => {
19
+ if (isRouteMode.value) {
20
+ internalVisible.value = val;
21
+ if (!val) {
22
+ // If closed in route mode, go back
23
+ router.back();
24
+ }
25
+ } else {
26
+ modelValue.value = val;
27
+ }
28
+ },
29
+ });
30
+
31
+ return {
32
+ visible,
33
+ isRouteMode,
34
+ };
35
+ }
package/packages/index.ts CHANGED
@@ -31,3 +31,4 @@ export * from "./hooks/useEntities"
31
31
  export * from "./hooks/useGroups"
32
32
  export * from "./hooks/useRoleCategories"
33
33
  export * from "./hooks/useProperties"
34
+ export * from "./hooks/useRouteableVisible"