free-fe-core-modules 0.0.2 → 0.0.3

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 (104) hide show
  1. package/components/Basic/EIcon.vue +2 -4
  2. package/components/Basic/LeveledMenus.vue +0 -5
  3. package/components/Basic/SummaryHead.vue +10 -1
  4. package/components/Dialog/BasicDialog.vue +1 -1
  5. package/components/SlidingCarousel/index.vue +0 -1
  6. package/components/SlidingNews/index.vue +0 -1
  7. package/components/ThemeSwitch/index.vue +7 -5
  8. package/composible/useObjectData.js +69 -0
  9. package/free-field/Fields/AgreementCheck.js +170 -0
  10. package/free-field/Fields/ApiCall.js +123 -0
  11. package/{field-components/Fields/Boolean.vue → free-field/Fields/Boolean.js} +40 -46
  12. package/free-field/Fields/Category.js +28 -0
  13. package/free-field/Fields/Check.js +106 -0
  14. package/free-field/Fields/Customize.js +87 -0
  15. package/free-field/Fields/Date.js +133 -0
  16. package/free-field/Fields/DateRange.js +226 -0
  17. package/free-field/Fields/DynamicList.js +565 -0
  18. package/{field-components → free-field}/Fields/File.vue +1 -1
  19. package/{field-components → free-field}/Fields/FileList.vue +1 -1
  20. package/{field-components → free-field}/Fields/FileListCombined.vue +1 -1
  21. package/{field-components → free-field}/Fields/FixedList.vue +78 -83
  22. package/{field-components → free-field}/Fields/ImageList.vue +1 -1
  23. package/{field-components → free-field}/Fields/ImageListCombined.vue +1 -1
  24. package/free-field/Fields/InputFieldList.vue +324 -0
  25. package/{field-components → free-field}/Fields/Labels.vue +24 -15
  26. package/{field-components → free-field}/Fields/MixedTable.vue +53 -61
  27. package/free-field/Fields/Number.js +167 -0
  28. package/free-field/Fields/Password.js +81 -0
  29. package/{field-components → free-field}/Fields/Permission.vue +17 -13
  30. package/{field-components → free-field}/Fields/PermissionEditor.vue +63 -105
  31. package/{field-components → free-field}/Fields/QueryFilters.vue +65 -48
  32. package/{field-components → free-field}/Fields/RadioList.vue +36 -12
  33. package/{field-components → free-field}/Fields/Rich.vue +104 -114
  34. package/{field-components → free-field}/Fields/Search.vue +35 -26
  35. package/{field-components → free-field}/Fields/Select.vue +116 -87
  36. package/{field-components → free-field}/Fields/SelectionChain.vue +89 -67
  37. package/{field-components/Fields/Separator.vue → free-field/Fields/Separator.js} +11 -16
  38. package/{field-components → free-field}/Fields/SingleList.vue +27 -21
  39. package/free-field/Fields/Static.js +27 -0
  40. package/free-field/Fields/String.js +105 -0
  41. package/free-field/Fields/Text.js +80 -0
  42. package/{field-components → free-field}/Fields/Time.vue +59 -43
  43. package/{field-components → free-field}/Fields/TimeRange.vue +107 -92
  44. package/{field-components → free-field}/Fields/UltimateFile.vue +1 -1
  45. package/free-field/Fields/Year.js +137 -0
  46. package/{field-components → free-field}/Fields/YearRange.vue +63 -73
  47. package/{field-components → free-field}/Fields/index.js +16 -18
  48. package/free-field/composible/fieldWrapper.js +221 -0
  49. package/free-field/composible/freeFieldLabel.js +22 -0
  50. package/free-field/composible/readonlyContent.js +36 -0
  51. package/free-field/composible/useFileSizeUtils.js +52 -0
  52. package/free-field/composible/useFreeField.js +143 -0
  53. package/{field-components → free-field}/index.js +3 -3
  54. package/i18n/en-us/index.js +1 -1
  55. package/i18n/zh-cn/index.js +1 -1
  56. package/index.js +1 -4
  57. package/package.json +1 -1
  58. package/router/error/data.js +4 -1
  59. package/view/dict/index.vue +13 -2
  60. package/view/error/list.vue +22 -14
  61. package/view/menu/index.vue +19 -4
  62. package/view/system/index.vue +15 -2
  63. package/field-components/Fields/AgreementCheck.vue +0 -161
  64. package/field-components/Fields/ApiCall.vue +0 -139
  65. package/field-components/Fields/Category.vue +0 -33
  66. package/field-components/Fields/Check.vue +0 -131
  67. package/field-components/Fields/Customize.vue +0 -103
  68. package/field-components/Fields/Date.vue +0 -142
  69. package/field-components/Fields/DateRange.vue +0 -199
  70. package/field-components/Fields/DynamicList.vue +0 -575
  71. package/field-components/Fields/FieldEditor.vue +0 -379
  72. package/field-components/Fields/InputFieldList.vue +0 -299
  73. package/field-components/Fields/Number.vue +0 -247
  74. package/field-components/Fields/Password.vue +0 -79
  75. package/field-components/Fields/Static.vue +0 -22
  76. package/field-components/Fields/String.vue +0 -185
  77. package/field-components/Fields/Text.vue +0 -89
  78. package/field-components/Fields/Year.vue +0 -124
  79. package/field-components/Fields/components/FieldTypeOptions.vue +0 -248
  80. package/field-components/components/FieldComponents.vue +0 -246
  81. package/free-fields/AutoHide.js +0 -66
  82. package/free-fields/CenterContent.js +0 -15
  83. package/free-fields/Draggable.js +0 -30
  84. package/free-fields/Droppable.js +0 -114
  85. package/free-fields/EditableString.js +0 -63
  86. package/free-fields/FieldCategory.js +0 -83
  87. package/free-fields/FieldTypeSelect.js +0 -94
  88. package/free-fields/fieldEditors/arrayEditor.js +0 -3
  89. package/free-fields/fieldEditors/boolEditor.js +0 -22
  90. package/free-fields/fieldEditors/dateEditor.js +0 -23
  91. package/free-fields/fieldEditors/datetimeEditor.js +0 -23
  92. package/free-fields/fieldEditors/index.js +0 -21
  93. package/free-fields/fieldEditors/jsonEditor.js +0 -371
  94. package/free-fields/fieldEditors/labeledField.js +0 -74
  95. package/free-fields/fieldEditors/numberEditor.js +0 -51
  96. package/free-fields/fieldEditors/objectEditor.js +0 -3
  97. package/free-fields/fieldEditors/selectEditor.js +0 -0
  98. package/free-fields/fieldEditors/stringEditor.js +0 -49
  99. package/free-fields/fieldEditors/textEditor.js +0 -50
  100. package/free-fields/fieldEditors/timeEditor.js +0 -23
  101. package/free-fields/index.js +0 -402
  102. /package/{field-components → free-field}/Fields/Image.vue +0 -0
  103. /package/{field-components/Display → free-field/Layout}/index.js +0 -0
  104. /package/{field-components → free-field}/style.sass +0 -0
@@ -1,30 +0,0 @@
1
- import { defineComponent, h } from 'vue';
2
-
3
- export default defineComponent({
4
- name: "FreeFieldDraggable",
5
- props: {
6
- dropEffect: String,
7
- dataName: String,
8
- data: {
9
- default: ""
10
- },
11
- extra: Object
12
- },
13
- setup(props, { slots }){
14
- const onDragstart = (e) => {
15
- if(typeof props.data === 'object' && props.extra) {
16
- e.dataTransfer.setData(props.dataName || "data", JSON.stringify(Array.isArray(props.data) ? [...props.data, ...props.extra] : {...props.data, ...props.extra}));
17
- } else {
18
- e.dataTransfer.setData(props.dataName || "data", JSON.stringify(props.data));
19
- }
20
-
21
- e.dataTransfer.dropEffect = props.dropEffect;
22
- };
23
-
24
- return () => h('div', {
25
- class: 'free-field-draggable',
26
- draggable: true,
27
- onDragstart,
28
- }, slots.default ? slots.default() : undefined)
29
- }
30
- })
@@ -1,114 +0,0 @@
1
- import { defineComponent, h, ref } from 'vue';
2
-
3
- export default defineComponent({
4
- name: "FreeFieldDroppable",
5
- props: {
6
- exact: Boolean,
7
- dataName: [String, Array],
8
- notToDraggable: Boolean,
9
- enterClass: String,
10
- enterStyle: {
11
- type: Object,
12
- default: () => ({})
13
- }
14
- },
15
- emits: ['freeTrigger', 'drop'],
16
- setup(props, { emit, slots }){
17
- const selfRef = ref(null);
18
- const originalStyle = {};
19
-
20
- const getTransferData = (e) => {
21
- let dropData;
22
- if(typeof props.dataName === 'string') {
23
- dropData = e.dataTransfer.getData(props.dataName);
24
- } else if(Array.isArray(props.dataName)) {
25
- dropData = {};
26
- for(let dn of props.dataName) {
27
- const dd = e.dataTransfer.getData(dn);
28
-
29
- if(dd) {
30
- dropData = `{"${dn}": ${dd}}`
31
-
32
- break;
33
- }
34
- }
35
- } else {
36
- dropData = e.dataTransfer.getData('data')
37
- }
38
-
39
- return dropData || "";
40
- }
41
-
42
- const onDragenter = (e) => {
43
- if(props.exact && e.target !== selfRef.value) {
44
- return;
45
- }
46
-
47
- Object.keys(props.enterStyle).forEach(sk => {
48
- originalStyle[sk] = e.target.style[sk];
49
- });
50
-
51
- if (props.notToDraggable && e.target.draggable === true) {
52
- return;
53
- }
54
-
55
- e.target.classList.add(props.enterClass);
56
- Object.keys(originalStyle).forEach(sk => {
57
- e.target.style[sk] = props.enterStyle[sk];
58
- });
59
- }
60
-
61
- const onDragleave = (e) => {
62
- if(props.exact && e.target !== selfRef.value) {
63
- return;
64
- }
65
-
66
- e.target.classList.remove(props.enterClass);
67
- Object.keys(originalStyle).forEach(sk => {
68
- e.target.style[sk] = originalStyle[sk];
69
- });
70
- }
71
-
72
- const onDragover = (e) => {
73
- e.preventDefault()
74
- }
75
-
76
- const onDrop = (e) => {
77
- if(props.exact && e.target !== selfRef.value) {
78
- return;
79
- }
80
-
81
- e.preventDefault()
82
-
83
- // don't drop on other draggables
84
- if (props.notToDraggable && e.target.draggable === true) {
85
- return;
86
- }
87
-
88
- let dropData = getTransferData(e);
89
-
90
- try{
91
- dropData = dropData && JSON.parse(dropData);
92
- } catch(_) {
93
- dropData = "";
94
- }
95
-
96
- if(dropData) {
97
- emit('drop', dropData);
98
- }
99
-
100
- e.target.classList.remove(props.enterClass);
101
- Object.keys(originalStyle).forEach(sk => {
102
- e.target.style[sk] = originalStyle[sk];
103
- });
104
- }
105
-
106
- return () => h('div', {
107
- ref: selfRef,
108
- onDragenter,
109
- onDragleave,
110
- onDragover,
111
- onDrop,
112
- }, slots.default ? slots.default() : undefined)
113
- }
114
- })
@@ -1,63 +0,0 @@
1
- import {
2
- defineComponent,
3
- h,
4
- ref,
5
- computed,
6
- nextTick,
7
- } from "vue";
8
-
9
- export default defineComponent({
10
- name: "FreeFieldEditableString",
11
- props: {
12
- modelValue: [String, Number],
13
- debounce: Number
14
- },
15
- emits: ["update:modelValue"],
16
- setup(props, { emit }) {
17
- const editable = ref(false);
18
- const inputRef = ref(null);
19
-
20
- const inputEvent = (e) => {
21
- const vv = typeof props.modelValue === 'number' ? (Number(e.target.value) || 0) : e.target.value;
22
- emit("update:modelValue", vv);
23
- editable.value = false;
24
- };
25
-
26
- const renderH = computed(() => {
27
- if(editable.value) {
28
- return h("input", {
29
- style: "outline: none; border: none;padding: 0;margin:0;width: 100%;",
30
- ref: inputRef,
31
- value: props.modelValue || '',
32
- onKeydown: (e) => e.code === 'Enter' && inputRef.value.blur(),
33
- onBlur: inputEvent,
34
- onClick: (e) => {
35
- e.cancelBubble = true;
36
- e.preventDefault();
37
- },
38
- });
39
- }
40
-
41
- return h(
42
- "div",
43
- {
44
- class: "",
45
- style: "min-width: 4px; min-height: 12px;",
46
- onClick: (e) => {
47
- e.cancelBubble = true;
48
- e.preventDefault();
49
- editable.value = true;
50
- nextTick(() => {
51
- inputRef.value.focus();
52
- });
53
- },
54
- },
55
- [
56
- props.modelValue
57
- ]
58
- );
59
- })
60
-
61
- return () => renderH.value;
62
- },
63
- });
@@ -1,83 +0,0 @@
1
- import {
2
- defineComponent,
3
- h,
4
- ref,
5
- computed,
6
- nextTick,
7
- } from "vue";
8
- import { QSpace, QSeparator } from 'quasar';
9
-
10
- export default defineComponent({
11
- name: "FreeFieldCategory",
12
- props: {
13
- hide: Boolean,
14
- hidden: Boolean,
15
- line: Boolean,
16
- title: String,
17
- titleClass: String,
18
- titleStyle: String,
19
- showLabel: {
20
- type: String,
21
- default: 'Show'
22
- },
23
- hideLabel: {
24
- type: String,
25
- default: 'Hide'
26
- },
27
- titleClickable: Boolean,
28
- showLabelWhenHidden: Boolean
29
- },
30
- setup(props, { slots }) {
31
- const hidden = ref(props.hidden || false);
32
- const hovered = ref(false);
33
- const titleClickable = props.titleClickable && props.hide;
34
-
35
- return () => h('div',{
36
- class: 'free-field-category',
37
- style: 'font-size: 16px;'
38
- },[
39
- h('div', {
40
- class: `free-field-category-title row no-wrap text-grey-9 ${titleClickable ? 'cursor-pointer' : ''}`,
41
- onMouseenter: () => {
42
- nextTick(() => {
43
- hovered.value = true
44
- })
45
- },
46
- onMouseleave: () => {
47
- nextTick(() => {
48
- hovered.value = false
49
- })
50
- },
51
- onClick: () => {
52
- if(!titleClickable) return;
53
-
54
- nextTick(() => {
55
- hidden.value = !hidden.value;
56
- })
57
- }
58
- },
59
- [
60
- h('div', {
61
- class: props.titleClass || 'q-mb-sm',
62
- style: props.titleStyle,
63
- } ,props.title || ''),
64
- h(QSpace),
65
- props.hide ? ((hovered.value || (props.showLabelWhenHidden && hidden.value)) ? h('div', {
66
- class: `free-field-category-hide-btn cursor-pointer ${props.titleClass}`,
67
- style: props.titleStyle,
68
- onClick: () => {
69
- if(props.titleClickable) return;
70
-
71
- nextTick(() => {
72
- hidden.value = !hidden.value;
73
- })
74
- }
75
- } ,(hidden.value ? props.showLabel : props.hideLabel) || '') : undefined) : undefined,
76
- ]),
77
- slots.default ? (hidden.value ? undefined : slots.default()) : undefined,
78
- props.line ? h(QSeparator, {
79
- class: 'free-field-category-line q-my-sm'
80
- }) : undefined,
81
- ]);
82
- },
83
- });
@@ -1,94 +0,0 @@
1
- import {
2
- defineComponent,
3
- h,
4
- } from "vue";
5
- import { QIcon, QItem, QItemSection,QSelect } from 'quasar';
6
-
7
- const dataTypeIcons = {
8
- String:"text_snippet",
9
- Number:"looks_one",
10
- Boolean:"toggle_on",
11
- Date:"event",
12
- Time:"schedule",
13
- Array:"data_array",
14
- Object:"data_object"
15
- }
16
-
17
- export default defineComponent({
18
- name: "FreeFieldTypeSelect",
19
- props: {
20
- types: Array,
21
- modelValue: String,
22
- showLabel: Boolean,
23
- dense: {
24
- type: Boolean,
25
- default: true
26
- }
27
- },
28
- emits: ['update:modelValue'],
29
- setup(props, { emit }) {
30
- const options = props.types || [
31
- {
32
- value: "String",
33
- label: "String",
34
- icon: 'text_snippet'
35
- },
36
- {
37
- value: "Number",
38
- label: "Number",
39
- icon: 'looks_one'
40
- },
41
- {
42
- value: "Boolean",
43
- label: "Boolean",
44
- icon: 'toggle_on'
45
- },
46
- {
47
- value: "Array",
48
- label: "Array",
49
- icon: 'data_array'
50
- },
51
- {
52
- value: "Object",
53
- label: "Object",
54
- icon: 'data_object'
55
- },
56
- ];
57
-
58
- return () => h(QSelect, {
59
- dense: props.dense,
60
- 'options-dense': props.dense,
61
- borderless: true,
62
- rounded: true,
63
- standout: true,
64
- 'hide-dropdown-icon': true,
65
- 'hide-bottom-space': true,
66
- modelValue: props.modelValue,
67
- class: '',
68
- 'popup-content-style': props.dense ? 'min-width: 60px; width: 60px; overflow: hidden;' : '',
69
- options,
70
- "onUpdate:modelValue": (e) => emit("update:modelValue", e.value),
71
- },{
72
- option: (op) => h(QItem, {
73
- ...op.itemProps,
74
- }, () => [
75
- h(QItemSection, {
76
- class: 'q-ma-none q-pa-none',
77
- avatar: true
78
- }, () => h(QIcon, {
79
- name: op.opt.icon
80
- })),
81
- props.showLabel ? h(QItemSection, {
82
- class: 'q-ma-none q-pa-none',
83
- avatar: true
84
- }, () => props.showLabel ? op.opt.label : '') : undefined]),
85
- 'selected-item': (op) => h(QIcon, {
86
- class: 'bg-grey-3 q-pa-xs self-center',
87
- style: 'border-radius: 50%; margin: 0 auto;',
88
- size: props.dense ? 'xs' : 'sm',
89
- dense: props.dense,
90
- name: dataTypeIcons[op.opt],
91
- }),
92
- });
93
- },
94
- });
@@ -1,3 +0,0 @@
1
- import jsonEditor from "./jsonEditor";
2
-
3
- export default jsonEditor(true);
@@ -1,22 +0,0 @@
1
-
2
- import {
3
- defineComponent,
4
- h,
5
- } from "vue";
6
- import { QToggle } from 'quasar';
7
-
8
- export default defineComponent({
9
- name: "FreeFieldBooleanEditor",
10
- props: {
11
- modelValue: Boolean
12
- },
13
- emits: ['update:modelValue'],
14
- setup(props, { emit }) {
15
- return () => h(QToggle,{
16
- modelValue: props.modelValue,
17
- 'onUpdate:modelValue': (e) => {
18
- emit('update:modelValue', Boolean(e) || false);
19
- }
20
- });
21
- },
22
- });
@@ -1,23 +0,0 @@
1
-
2
- import {
3
- defineComponent,
4
- h,
5
- } from "vue";
6
- import { QInput } from 'quasar';
7
-
8
- export default defineComponent({
9
- name: "FreeFieldDateEditor",
10
- props: {
11
- modelValue: String
12
- },
13
- emits: ['update:modelValue'],
14
- setup(props, { emit }) {
15
- return () => h(QInput,{
16
- type: 'date',
17
- modelValue: props.modelValue,
18
- 'onUpdate:modelValue': (e) => {
19
- emit('update:modelValue', e);
20
- }
21
- });
22
- },
23
- });
@@ -1,23 +0,0 @@
1
-
2
- import {
3
- defineComponent,
4
- h,
5
- } from "vue";
6
- import { QInput } from 'quasar';
7
-
8
- export default defineComponent({
9
- name: "FreeFieldDateTimeEditor",
10
- props: {
11
- modelValue: String
12
- },
13
- emits: ['update:modelValue'],
14
- setup(props, { emit }) {
15
- return () => h(QInput,{
16
- type: 'datetime',
17
- modelValue: props.modelValue,
18
- 'onUpdate:modelValue': (e) => {
19
- emit('update:modelValue', e);
20
- }
21
- });
22
- },
23
- });
@@ -1,21 +0,0 @@
1
- import NumberEditor from "./numberEditor";
2
- import StringEditor from "./stringEditor";
3
- import BooleanEditor from "./boolEditor";
4
- import ArrayEditor from "./arrayEditor";
5
- import ObjectEditor from "./objectEditor";
6
- import DateEditor from './dateEditor';
7
- import TimeEditor from "./timeEditor";
8
- import TextEditor from "./textEditor";
9
- import LabeledField from "./labeledField";
10
-
11
- export default {
12
- NumberEditor,
13
- StringEditor,
14
- BooleanEditor,
15
- ArrayEditor,
16
- ObjectEditor,
17
- DateEditor,
18
- TimeEditor,
19
- TextEditor,
20
- LabeledField,
21
- }