@hostlink/nuxt-light 1.27.7 → 1.28.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.
- package/dist/module.d.mts +2 -1
- package/dist/module.json +3 -3
- package/dist/module.mjs +40 -42
- package/dist/runtime/components/L/CustomField/Add.vue +41 -52
- package/dist/runtime/components/L/CustomField/Add.vue.d.ts +2 -0
- package/dist/runtime/components/L/CustomField/List.vue +26 -30
- package/dist/runtime/components/L/CustomField/List.vue.d.ts +2 -0
- package/dist/runtime/components/L/Database/create-table-dialog.vue +22 -38
- package/dist/runtime/components/L/Database/create-table-dialog.vue.d.ts +2 -0
- package/dist/runtime/components/L/Fieldset.vue +19 -23
- package/dist/runtime/components/L/Fieldset.vue.d.ts +2 -0
- package/dist/runtime/components/L/ForgetPasswordDialog.vue +39 -41
- package/dist/runtime/components/L/ForgetPasswordDialog.vue.d.ts +2 -0
- package/dist/runtime/components/L/Revision.vue +101 -137
- package/dist/runtime/components/L/Revision.vue.d.ts +2 -0
- package/dist/runtime/components/L/Storage.vue +26 -30
- package/dist/runtime/components/L/Storage.vue.d.ts +2 -0
- package/dist/runtime/components/L/System/Setting/authentication.vue +22 -44
- package/dist/runtime/components/L/System/Setting/authentication.vue.d.ts +2 -0
- package/dist/runtime/components/L/System/Setting/developer.vue +43 -59
- package/dist/runtime/components/L/System/Setting/developer.vue.d.ts +2 -0
- package/dist/runtime/components/L/System/Setting/forget-password.vue +42 -58
- package/dist/runtime/components/L/System/Setting/forget-password.vue.d.ts +2 -0
- package/dist/runtime/components/L/System/Setting/general.vue +29 -41
- package/dist/runtime/components/L/System/Setting/general.vue.d.ts +2 -0
- package/dist/runtime/components/L/System/Setting/mail.vue +39 -42
- package/dist/runtime/components/L/System/Setting/mail.vue.d.ts +2 -0
- package/dist/runtime/components/L/System/Setting/modules.vue +9 -9
- package/dist/runtime/components/L/System/Setting/modules.vue.d.ts +2 -0
- package/dist/runtime/components/L/System/Setting/security.vue +20 -39
- package/dist/runtime/components/L/System/Setting/security.vue.d.ts +2 -0
- package/dist/runtime/components/L/User/eventlog.vue +26 -26
- package/dist/runtime/components/L/User/eventlog.vue.d.ts +2 -0
- package/dist/runtime/components/L/User/overview.vue +25 -27
- package/dist/runtime/components/L/User/overview.vue.d.ts +2 -0
- package/dist/runtime/components/L/User/userlog.vue +22 -28
- package/dist/runtime/components/L/User/userlog.vue.d.ts +2 -0
- package/dist/runtime/components/L/ValidationInput.vue +68 -91
- package/dist/runtime/components/L/ValidationInput.vue.d.ts +2 -0
- package/dist/runtime/components/MyTest.vue +8 -7
- package/dist/runtime/components/MyTest.vue.d.ts +2 -0
- package/dist/runtime/components/l-add-btn.vue +13 -12
- package/dist/runtime/components/l-add-btn.vue.d.ts +2 -0
- package/dist/runtime/components/l-alert.vue +25 -29
- package/dist/runtime/components/l-alert.vue.d.ts +2 -0
- package/dist/runtime/components/l-app-main.vue +226 -294
- package/dist/runtime/components/l-app-main.vue.d.ts +2 -0
- package/dist/runtime/components/l-app.vue +76 -89
- package/dist/runtime/components/l-app.vue.d.ts +2 -0
- package/dist/runtime/components/l-audit-card.vue +8 -14
- package/dist/runtime/components/l-audit-card.vue.d.ts +2 -0
- package/dist/runtime/components/l-back-btn.vue.d.ts +2 -0
- package/dist/runtime/components/l-banner.vue +28 -34
- package/dist/runtime/components/l-banner.vue.d.ts +2 -0
- package/dist/runtime/components/l-bar.vue +21 -25
- package/dist/runtime/components/l-bar.vue.d.ts +2 -0
- package/dist/runtime/components/l-btn.vue +62 -39
- package/dist/runtime/components/l-btn.vue.d.ts +2 -0
- package/dist/runtime/components/l-card.vue +90 -141
- package/dist/runtime/components/l-card.vue.d.ts +2 -0
- package/dist/runtime/components/l-checkbox.vue +30 -7
- package/dist/runtime/components/l-checkbox.vue.d.ts +2 -0
- package/dist/runtime/components/l-col.vue +21 -29
- package/dist/runtime/components/l-col.vue.d.ts +2 -0
- package/dist/runtime/components/l-customizer.vue +84 -100
- package/dist/runtime/components/l-customizer.vue.d.ts +2 -0
- package/dist/runtime/components/l-date-picker.vue +101 -147
- package/dist/runtime/components/l-date-picker.vue.d.ts +2 -0
- package/dist/runtime/components/l-delete-btn.vue +22 -27
- package/dist/runtime/components/l-delete-btn.vue.d.ts +2 -0
- package/dist/runtime/components/l-dialog-database-field-add.vue +19 -36
- package/dist/runtime/components/l-dialog-database-field-add.vue.d.ts +2 -0
- package/dist/runtime/components/l-drag-drop-container.vue +44 -62
- package/dist/runtime/components/l-drag-drop-container.vue.d.ts +2 -0
- package/dist/runtime/components/l-drag-drop-group.vue +49 -70
- package/dist/runtime/components/l-drag-drop-group.vue.d.ts +2 -0
- package/dist/runtime/components/l-drag-drop.vue +33 -44
- package/dist/runtime/components/l-drag-drop.vue.d.ts +2 -0
- package/dist/runtime/components/l-edit-btn.vue.d.ts +2 -0
- package/dist/runtime/components/l-editor.vue +185 -172
- package/dist/runtime/components/l-editor.vue.d.ts +2 -0
- package/dist/runtime/components/l-facebook-button.vue +18 -26
- package/dist/runtime/components/l-facebook-button.vue.d.ts +2 -0
- package/dist/runtime/components/l-fav-menu.vue +19 -24
- package/dist/runtime/components/l-fav-menu.vue.d.ts +2 -0
- package/dist/runtime/components/l-field.vue +49 -18
- package/dist/runtime/components/l-field.vue.d.ts +2 -0
- package/dist/runtime/components/l-file-manager-labels.vue +46 -48
- package/dist/runtime/components/l-file-manager-labels.vue.d.ts +2 -0
- package/dist/runtime/components/l-file-manager-move.vue +53 -68
- package/dist/runtime/components/l-file-manager-move.vue.d.ts +2 -0
- package/dist/runtime/components/l-file-manager-preview.vue +46 -81
- package/dist/runtime/components/l-file-manager-preview.vue.d.ts +2 -0
- package/dist/runtime/components/l-file-manager.vue +498 -640
- package/dist/runtime/components/l-file-manager.vue.d.ts +2 -0
- package/dist/runtime/components/l-file-upload.vue +80 -109
- package/dist/runtime/components/l-file-upload.vue.d.ts +2 -0
- package/dist/runtime/components/l-file.vue +37 -61
- package/dist/runtime/components/l-file.vue.d.ts +2 -0
- package/dist/runtime/components/l-form-dialog.vue +71 -83
- package/dist/runtime/components/l-form-dialog.vue.d.ts +2 -0
- package/dist/runtime/components/l-form.vue +82 -96
- package/dist/runtime/components/l-form.vue.d.ts +2 -0
- package/dist/runtime/components/l-group-select.vue +59 -94
- package/dist/runtime/components/l-group-select.vue.d.ts +2 -0
- package/dist/runtime/components/l-icon-picker.vue +3265 -3274
- package/dist/runtime/components/l-icon-picker.vue.d.ts +2 -0
- package/dist/runtime/components/l-input-xlsx.vue +30 -38
- package/dist/runtime/components/l-input-xlsx.vue.d.ts +2 -0
- package/dist/runtime/components/l-input.vue +142 -126
- package/dist/runtime/components/l-input.vue.d.ts +2 -0
- package/dist/runtime/components/l-item.vue +30 -21
- package/dist/runtime/components/l-item.vue.d.ts +2 -0
- package/dist/runtime/components/l-link.vue +16 -15
- package/dist/runtime/components/l-link.vue.d.ts +2 -0
- package/dist/runtime/components/l-list.vue +27 -35
- package/dist/runtime/components/l-list.vue.d.ts +2 -0
- package/dist/runtime/components/l-login.vue +246 -287
- package/dist/runtime/components/l-login.vue.d.ts +2 -0
- package/dist/runtime/components/l-menu.vue +45 -54
- package/dist/runtime/components/l-menu.vue.d.ts +2 -0
- package/dist/runtime/components/l-microsoft-button.vue +42 -52
- package/dist/runtime/components/l-microsoft-button.vue.d.ts +2 -0
- package/dist/runtime/components/l-page.vue +48 -67
- package/dist/runtime/components/l-page.vue.d.ts +2 -0
- package/dist/runtime/components/l-row.vue +8 -13
- package/dist/runtime/components/l-row.vue.d.ts +2 -0
- package/dist/runtime/components/l-save-btn.vue.d.ts +2 -0
- package/dist/runtime/components/l-select.vue +150 -76
- package/dist/runtime/components/l-select.vue.d.ts +2 -0
- package/dist/runtime/components/l-small-box.vue +18 -31
- package/dist/runtime/components/l-small-box.vue.d.ts +2 -0
- package/dist/runtime/components/l-statistic.vue +17 -23
- package/dist/runtime/components/l-statistic.vue.d.ts +2 -0
- package/dist/runtime/components/l-tab.vue +20 -15
- package/dist/runtime/components/l-tab.vue.d.ts +2 -0
- package/dist/runtime/components/l-table.vue +444 -560
- package/dist/runtime/components/l-table.vue.d.ts +2 -0
- package/dist/runtime/components/l-tabs.vue +34 -16
- package/dist/runtime/components/l-tabs.vue.d.ts +2 -0
- package/dist/runtime/components/l-test2.vue +10 -9
- package/dist/runtime/components/l-test2.vue.d.ts +2 -0
- package/dist/runtime/components/l-time-picker.vue +53 -68
- package/dist/runtime/components/l-time-picker.vue.d.ts +2 -0
- package/dist/runtime/components/l-view-btn.vue.d.ts +2 -0
- package/dist/runtime/composables/mytest.d.ts +2 -0
- package/dist/runtime/composables/mytest.js +3 -0
- package/dist/runtime/formkit/Checkbox.vue +15 -18
- package/dist/runtime/formkit/Checkbox.vue.d.ts +2 -0
- package/dist/runtime/formkit/DatePicker.vue +15 -18
- package/dist/runtime/formkit/DatePicker.vue.d.ts +2 -0
- package/dist/runtime/formkit/Editor.vue +15 -18
- package/dist/runtime/formkit/Editor.vue.d.ts +2 -0
- package/dist/runtime/formkit/File.vue +30 -37
- package/dist/runtime/formkit/File.vue.d.ts +2 -0
- package/dist/runtime/formkit/FilePicker.vue +22 -25
- package/dist/runtime/formkit/FilePicker.vue.d.ts +2 -0
- package/dist/runtime/formkit/FileUpload.vue +22 -25
- package/dist/runtime/formkit/FileUpload.vue.d.ts +2 -0
- package/dist/runtime/formkit/Form.vue +79 -100
- package/dist/runtime/formkit/Form.vue.d.ts +2 -0
- package/dist/runtime/formkit/GroupSelect.vue +21 -27
- package/dist/runtime/formkit/GroupSelect.vue.d.ts +2 -0
- package/dist/runtime/formkit/Input.vue +53 -61
- package/dist/runtime/formkit/Input.vue.d.ts +2 -0
- package/dist/runtime/formkit/InputXlsx.vue +15 -18
- package/dist/runtime/formkit/InputXlsx.vue.d.ts +2 -0
- package/dist/runtime/formkit/OptionGroup.vue +20 -26
- package/dist/runtime/formkit/OptionGroup.vue.d.ts +2 -0
- package/dist/runtime/formkit/Radio.vue +15 -18
- package/dist/runtime/formkit/Radio.vue.d.ts +2 -0
- package/dist/runtime/formkit/Repeater.vue +62 -76
- package/dist/runtime/formkit/Repeater.vue.d.ts +2 -0
- package/dist/runtime/formkit/Select.vue +21 -29
- package/dist/runtime/formkit/Select.vue.d.ts +2 -0
- package/dist/runtime/formkit/TimePicker.vue +15 -19
- package/dist/runtime/formkit/TimePicker.vue.d.ts +2 -0
- package/dist/runtime/formkit/Toggle.vue +13 -16
- package/dist/runtime/formkit/Toggle.vue.d.ts +2 -0
- package/dist/runtime/light.d.ts +1129 -6
- package/dist/runtime/pages/CustomField/[custom_field_id]/edit.vue +24 -26
- package/dist/runtime/pages/CustomField/[custom_field_id]/edit.vue.d.ts +2 -0
- package/dist/runtime/pages/CustomField/index.vue +22 -29
- package/dist/runtime/pages/CustomField/index.vue.d.ts +2 -0
- package/dist/runtime/pages/EventLog/_eventlog_id/view.vue +8 -8
- package/dist/runtime/pages/EventLog/_eventlog_id/view.vue.d.ts +2 -0
- package/dist/runtime/pages/EventLog/index.vue +7 -6
- package/dist/runtime/pages/EventLog/index.vue.d.ts +2 -0
- package/dist/runtime/pages/FileManager/index.vue.d.ts +2 -0
- package/dist/runtime/pages/MailLog/index.vue +7 -6
- package/dist/runtime/pages/MailLog/index.vue.d.ts +2 -0
- package/dist/runtime/pages/Permission/add.vue +26 -29
- package/dist/runtime/pages/Permission/add.vue.d.ts +2 -0
- package/dist/runtime/pages/Permission/all.vue +57 -73
- package/dist/runtime/pages/Permission/all.vue.d.ts +2 -0
- package/dist/runtime/pages/Permission/export.vue +49 -62
- package/dist/runtime/pages/Permission/export.vue.d.ts +2 -0
- package/dist/runtime/pages/Permission/index.vue +19 -20
- package/dist/runtime/pages/Permission/index.vue.d.ts +2 -0
- package/dist/runtime/pages/Role/_name/update-child.vue +12 -14
- package/dist/runtime/pages/Role/_name/update-child.vue.d.ts +2 -0
- package/dist/runtime/pages/Role/add.vue +13 -15
- package/dist/runtime/pages/Role/add.vue.d.ts +2 -0
- package/dist/runtime/pages/Role/add2.vue +27 -38
- package/dist/runtime/pages/Role/add2.vue.d.ts +2 -0
- package/dist/runtime/pages/Role/index.vue +100 -127
- package/dist/runtime/pages/Role/index.vue.d.ts +2 -0
- package/dist/runtime/pages/System/database/backup.vue +28 -36
- package/dist/runtime/pages/System/database/backup.vue.d.ts +2 -0
- package/dist/runtime/pages/System/database/process.vue +33 -43
- package/dist/runtime/pages/System/database/process.vue.d.ts +2 -0
- package/dist/runtime/pages/System/database/table.vue +168 -205
- package/dist/runtime/pages/System/database/table.vue.d.ts +2 -0
- package/dist/runtime/pages/System/fs.vue +95 -107
- package/dist/runtime/pages/System/fs.vue.d.ts +2 -0
- package/dist/runtime/pages/System/index.vue +30 -31
- package/dist/runtime/pages/System/index.vue.d.ts +2 -0
- package/dist/runtime/pages/System/mailtest.vue +29 -35
- package/dist/runtime/pages/System/mailtest.vue.d.ts +2 -0
- package/dist/runtime/pages/System/menu/index.vue +175 -223
- package/dist/runtime/pages/System/menu/index.vue.d.ts +2 -0
- package/dist/runtime/pages/System/package.vue +21 -21
- package/dist/runtime/pages/System/package.vue.d.ts +2 -0
- package/dist/runtime/pages/System/phpinfo.vue +11 -10
- package/dist/runtime/pages/System/phpinfo.vue.d.ts +2 -0
- package/dist/runtime/pages/System/setting.vue +42 -59
- package/dist/runtime/pages/System/setting.vue.d.ts +2 -0
- package/dist/runtime/pages/System/test.vue.d.ts +2 -0
- package/dist/runtime/pages/System/view_as.vue +65 -68
- package/dist/runtime/pages/System/view_as.vue.d.ts +2 -0
- package/dist/runtime/pages/SystemValue/_systemvalue_id/edit.vue +7 -7
- package/dist/runtime/pages/SystemValue/_systemvalue_id/edit.vue.d.ts +2 -0
- package/dist/runtime/pages/SystemValue/add.vue.d.ts +2 -0
- package/dist/runtime/pages/SystemValue/index.vue +7 -6
- package/dist/runtime/pages/SystemValue/index.vue.d.ts +2 -0
- package/dist/runtime/pages/Translate/index.vue +81 -100
- package/dist/runtime/pages/Translate/index.vue.d.ts +2 -0
- package/dist/runtime/pages/User/_user_id/change-password.vue +38 -45
- package/dist/runtime/pages/User/_user_id/change-password.vue.d.ts +2 -0
- package/dist/runtime/pages/User/_user_id/edit.vue +35 -26
- package/dist/runtime/pages/User/_user_id/edit.vue.d.ts +2 -0
- package/dist/runtime/pages/User/_user_id/update-role.vue +33 -43
- package/dist/runtime/pages/User/_user_id/update-role.vue.d.ts +2 -0
- package/dist/runtime/pages/User/_user_id/view.vue +35 -37
- package/dist/runtime/pages/User/_user_id/view.vue.d.ts +2 -0
- package/dist/runtime/pages/User/add.vue +52 -60
- package/dist/runtime/pages/User/add.vue.d.ts +2 -0
- package/dist/runtime/pages/User/index.vue +23 -32
- package/dist/runtime/pages/User/index.vue.d.ts +2 -0
- package/dist/runtime/pages/User/profile.vue +52 -58
- package/dist/runtime/pages/User/profile.vue.d.ts +2 -0
- package/dist/runtime/pages/User/setting/bio-auth.vue +85 -95
- package/dist/runtime/pages/User/setting/bio-auth.vue.d.ts +2 -0
- package/dist/runtime/pages/User/setting/index.vue +27 -28
- package/dist/runtime/pages/User/setting/index.vue.d.ts +2 -0
- package/dist/runtime/pages/User/setting/information.vue +28 -27
- package/dist/runtime/pages/User/setting/information.vue.d.ts +2 -0
- package/dist/runtime/pages/User/setting/my_favorite.vue +29 -35
- package/dist/runtime/pages/User/setting/my_favorite.vue.d.ts +2 -0
- package/dist/runtime/pages/User/setting/open_id.vue +140 -165
- package/dist/runtime/pages/User/setting/open_id.vue.d.ts +2 -0
- package/dist/runtime/pages/User/setting/password.vue +37 -44
- package/dist/runtime/pages/User/setting/password.vue.d.ts +2 -0
- package/dist/runtime/pages/User/setting/style.vue +84 -102
- package/dist/runtime/pages/User/setting/style.vue.d.ts +2 -0
- package/dist/runtime/pages/User/setting/two-factor-auth.vue +51 -61
- package/dist/runtime/pages/User/setting/two-factor-auth.vue.d.ts +2 -0
- package/dist/runtime/pages/User/setting.vue +9 -9
- package/dist/runtime/pages/User/setting.vue.d.ts +2 -0
- package/dist/runtime/pages/UserLog/index.vue +7 -6
- package/dist/runtime/pages/UserLog/index.vue.d.ts +2 -0
- package/dist/types.d.mts +3 -1
- package/package.json +9 -11
- package/dist/module.cjs +0 -5
- package/dist/module.d.ts +0 -7
- package/dist/types.d.ts +0 -1
|
@@ -1,40 +1,32 @@
|
|
|
1
|
-
<script setup
|
|
2
|
-
import * as XLSX from "xlsx";
|
|
3
|
-
import { ref } from "vue";
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
const
|
|
11
|
-
const
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
hasFile.value = false;
|
|
31
|
-
modelValue.value = [];
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
const showView = ref(false);
|
|
35
|
-
</script>
|
|
36
|
-
|
|
37
|
-
<template>
|
|
1
|
+
<script setup>
|
|
2
|
+
import * as XLSX from "xlsx";
|
|
3
|
+
import { ref } from "vue";
|
|
4
|
+
const modelValue = defineModel({
|
|
5
|
+
type: Array,
|
|
6
|
+
default: []
|
|
7
|
+
});
|
|
8
|
+
const loading = ref(false);
|
|
9
|
+
const hasFile = ref(false);
|
|
10
|
+
const file = ref(null);
|
|
11
|
+
const onChange = () => {
|
|
12
|
+
hasFile.value = true;
|
|
13
|
+
loading.value = true;
|
|
14
|
+
file.value.files[0].arrayBuffer().then((data) => {
|
|
15
|
+
const workbook = XLSX.read(data);
|
|
16
|
+
const sheet = workbook.Sheets[workbook.SheetNames[0]];
|
|
17
|
+
const json = XLSX.utils.sheet_to_json(sheet);
|
|
18
|
+
loading.value = false;
|
|
19
|
+
modelValue.value = json;
|
|
20
|
+
});
|
|
21
|
+
};
|
|
22
|
+
const onClear = () => {
|
|
23
|
+
hasFile.value = false;
|
|
24
|
+
modelValue.value = [];
|
|
25
|
+
};
|
|
26
|
+
const showView = ref(false);
|
|
27
|
+
</script>
|
|
28
|
+
|
|
29
|
+
<template>
|
|
38
30
|
<q-field v-bind="{ ...$light.styles.input, ...$attrs }" :loading="loading" :model-value="localData"
|
|
39
31
|
@update:model-value="onClear">
|
|
40
32
|
<template v-slot:control>
|
|
@@ -66,4 +58,4 @@ const showView = ref(false);
|
|
|
66
58
|
</q-dialog>
|
|
67
59
|
|
|
68
60
|
</q-field>
|
|
69
|
-
</template>
|
|
61
|
+
</template>
|
|
@@ -1,128 +1,144 @@
|
|
|
1
|
-
<script setup
|
|
2
|
-
import { computed, ref, useAttrs } from "vue";
|
|
3
|
-
import { useI18n } from
|
|
4
|
-
import tc2sc from "../lib/tc2sc";
|
|
5
|
-
import { useLight } from
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
if (
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
if (
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
});
|
|
104
|
-
|
|
105
|
-
const
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
1
|
+
<script setup>
|
|
2
|
+
import { computed, ref, useAttrs } from "vue";
|
|
3
|
+
import { useI18n } from "vue-i18n";
|
|
4
|
+
import tc2sc from "../lib/tc2sc";
|
|
5
|
+
import { useLight } from "#imports";
|
|
6
|
+
const { t } = useI18n();
|
|
7
|
+
const light = useLight();
|
|
8
|
+
const props = defineProps({
|
|
9
|
+
showPassword: { type: Boolean, required: false },
|
|
10
|
+
translate: { type: Boolean, required: false },
|
|
11
|
+
required: { type: Boolean, required: false },
|
|
12
|
+
name: { type: null, required: false },
|
|
13
|
+
mask: { type: null, required: false },
|
|
14
|
+
fillMask: { type: [Boolean, String], required: false, skipCheck: true },
|
|
15
|
+
reverseFillMask: { type: Boolean, required: false, skipCheck: true },
|
|
16
|
+
unmaskedValue: { type: Boolean, required: false, skipCheck: true },
|
|
17
|
+
modelValue: { type: null, required: true },
|
|
18
|
+
error: { type: [Boolean, null], required: false, skipCheck: true },
|
|
19
|
+
errorMessage: { type: null, required: false },
|
|
20
|
+
noErrorIcon: { type: Boolean, required: false, skipCheck: true },
|
|
21
|
+
rules: { type: null, required: false },
|
|
22
|
+
reactiveRules: { type: Boolean, required: false, skipCheck: true },
|
|
23
|
+
lazyRules: { type: [Boolean, String], required: false, skipCheck: true },
|
|
24
|
+
label: { type: null, required: false },
|
|
25
|
+
stackLabel: { type: Boolean, required: false, skipCheck: true, default: void 0 },
|
|
26
|
+
hint: { type: null, required: false },
|
|
27
|
+
hideHint: { type: Boolean, required: false, skipCheck: true },
|
|
28
|
+
prefix: { type: null, required: false },
|
|
29
|
+
suffix: { type: null, required: false },
|
|
30
|
+
labelColor: { type: null, required: false },
|
|
31
|
+
color: { type: null, required: false },
|
|
32
|
+
bgColor: { type: null, required: false },
|
|
33
|
+
dark: { type: [Boolean, null], required: false, skipCheck: true, default: void 0 },
|
|
34
|
+
loading: { type: Boolean, required: false, skipCheck: true },
|
|
35
|
+
clearable: { type: Boolean, required: false, skipCheck: true },
|
|
36
|
+
clearIcon: { type: null, required: false },
|
|
37
|
+
filled: { type: Boolean, required: false, skipCheck: true, default: void 0 },
|
|
38
|
+
outlined: { type: Boolean, required: false, skipCheck: true, default: void 0 },
|
|
39
|
+
borderless: { type: Boolean, required: false, skipCheck: true },
|
|
40
|
+
standout: { type: [Boolean, String], required: false, skipCheck: true, default: void 0 },
|
|
41
|
+
labelSlot: { type: Boolean, required: false, skipCheck: true },
|
|
42
|
+
bottomSlots: { type: Boolean, required: false, skipCheck: true },
|
|
43
|
+
hideBottomSpace: { type: Boolean, required: false, skipCheck: true, default: true },
|
|
44
|
+
counter: { type: Boolean, required: false, skipCheck: true },
|
|
45
|
+
rounded: { type: Boolean, required: false, skipCheck: true, default: void 0 },
|
|
46
|
+
square: { type: Boolean, required: false, skipCheck: true, default: void 0 },
|
|
47
|
+
dense: { type: Boolean, required: false, skipCheck: true, default: void 0 },
|
|
48
|
+
itemAligned: { type: Boolean, required: false, skipCheck: true },
|
|
49
|
+
disable: { type: Boolean, required: false, skipCheck: true },
|
|
50
|
+
readonly: { type: Boolean, required: false, skipCheck: true },
|
|
51
|
+
autofocus: { type: Boolean, required: false, skipCheck: true },
|
|
52
|
+
for: { type: null, required: false },
|
|
53
|
+
shadowText: { type: null, required: false },
|
|
54
|
+
type: { type: null, required: false },
|
|
55
|
+
debounce: { type: null, required: false },
|
|
56
|
+
maxlength: { type: null, required: false },
|
|
57
|
+
autogrow: { type: Boolean, required: false, skipCheck: true },
|
|
58
|
+
inputClass: { type: null, required: false },
|
|
59
|
+
inputStyle: { type: null, required: false },
|
|
60
|
+
"onUpdate:modelValue": { type: Function, required: false },
|
|
61
|
+
onFocus: { type: Function, required: false },
|
|
62
|
+
onBlur: { type: Function, required: false },
|
|
63
|
+
onClear: { type: Function, required: false }
|
|
64
|
+
});
|
|
65
|
+
const modelValue = defineModel({ type: [String, Number, Unknown, null] });
|
|
66
|
+
const new_rules = props.rules || [];
|
|
67
|
+
if (props.required) {
|
|
68
|
+
new_rules.push((val) => !!val || t("input_required", [t(props.label ?? "")]));
|
|
69
|
+
}
|
|
70
|
+
if (props.type == "email") {
|
|
71
|
+
new_rules.push((val) => {
|
|
72
|
+
if (val && !val.match(/^[^\s@]+@[^\s@]+\.[^\s@]+$/)) {
|
|
73
|
+
return t("Invalid email format");
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
if (new_rules.indexOf("containUpper") >= 0) {
|
|
78
|
+
new_rules.push((val) => {
|
|
79
|
+
if (val && !val.match(/[A-Z]/)) {
|
|
80
|
+
return t("Must contain at least one uppercase letter");
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
if (new_rules.indexOf("containLower") >= 0) {
|
|
85
|
+
new_rules.push((val) => {
|
|
86
|
+
if (val && !val.match(/[a-z]/)) {
|
|
87
|
+
return t("Must contain at least one lowercase letter");
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
if (new_rules.indexOf("containNumber") >= 0) {
|
|
92
|
+
new_rules.push((val) => {
|
|
93
|
+
if (val && !val.match(/[0-9]/)) {
|
|
94
|
+
return t("Must contain at least one number");
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
if (new_rules.indexOf("containSpecial") >= 0) {
|
|
99
|
+
new_rules.push((val) => {
|
|
100
|
+
if (val && !val.match(/[!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?]/)) {
|
|
101
|
+
return t("Must contain at least one symbol");
|
|
102
|
+
}
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
const minLength = new_rules.find((rule) => {
|
|
106
|
+
if (typeof rule != "string") return false;
|
|
107
|
+
return rule.startsWith("minLength:");
|
|
108
|
+
});
|
|
109
|
+
if (minLength) {
|
|
110
|
+
const min = parseInt(minLength.replace("minLength:", ""));
|
|
111
|
+
new_rules.push((val) => {
|
|
112
|
+
if (val && val.length < min) {
|
|
113
|
+
return t("input_min", [min]);
|
|
114
|
+
}
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
const isShowPassword = ref(false);
|
|
118
|
+
const localType = computed(() => {
|
|
119
|
+
if (props.type == "password" && isShowPassword.value) {
|
|
120
|
+
return "text";
|
|
121
|
+
}
|
|
122
|
+
return props.type;
|
|
123
|
+
});
|
|
124
|
+
const localShowPassword = computed(() => {
|
|
125
|
+
if (props.type != "password") {
|
|
126
|
+
return false;
|
|
127
|
+
}
|
|
128
|
+
if (!props.showPassword) {
|
|
129
|
+
return false;
|
|
130
|
+
}
|
|
131
|
+
if (!modelValue.value) {
|
|
132
|
+
return false;
|
|
133
|
+
}
|
|
134
|
+
return true;
|
|
135
|
+
});
|
|
136
|
+
const onClickTc2Sc = () => {
|
|
137
|
+
modelValue.value = tc2sc(modelValue.value ?? "");
|
|
138
|
+
};
|
|
139
|
+
</script>
|
|
140
|
+
|
|
141
|
+
<template>
|
|
126
142
|
<q-input v-bind="$light.getInputProps($props)" :rules="new_rules" :type="localType">
|
|
127
143
|
<template v-if="translate" #prepend>
|
|
128
144
|
<q-btn icon="sym_o_translate" flat dense rounded>
|
|
@@ -147,4 +163,4 @@ const onClickTc2Sc = () => {
|
|
|
147
163
|
</template>
|
|
148
164
|
|
|
149
165
|
</q-input>
|
|
150
|
-
</template>
|
|
166
|
+
</template>
|
|
@@ -1,23 +1,32 @@
|
|
|
1
|
-
<script setup
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
1
|
+
<script setup>
|
|
2
|
+
defineProps({
|
|
3
|
+
label: { type: String, required: false },
|
|
4
|
+
name: { type: String, required: false },
|
|
5
|
+
top: { type: Boolean, required: false, default: false },
|
|
6
|
+
labelTop: { type: Boolean, required: false, default: false },
|
|
7
|
+
alignItems: { type: String, required: false, default: "flex-end" },
|
|
8
|
+
to: { type: null, required: false },
|
|
9
|
+
exact: { type: Boolean, required: false, skipCheck: true },
|
|
10
|
+
replace: { type: Boolean, required: false, skipCheck: true },
|
|
11
|
+
activeClass: { type: null, required: false },
|
|
12
|
+
exactActiveClass: { type: null, required: false },
|
|
13
|
+
href: { type: null, required: false },
|
|
14
|
+
target: { type: null, required: false },
|
|
15
|
+
disable: { type: Boolean, required: false, skipCheck: true },
|
|
16
|
+
active: { type: [Boolean, null], required: false, skipCheck: true },
|
|
17
|
+
dark: { type: [Boolean, null], required: false, skipCheck: true },
|
|
18
|
+
clickable: { type: Boolean, required: false, skipCheck: true },
|
|
19
|
+
dense: { type: Boolean, required: false, skipCheck: true },
|
|
20
|
+
insetLevel: { type: null, required: false },
|
|
21
|
+
tabindex: { type: null, required: false },
|
|
22
|
+
tag: { type: null, required: false },
|
|
23
|
+
manualFocus: { type: Boolean, required: false, skipCheck: true },
|
|
24
|
+
focused: { type: Boolean, required: false, skipCheck: true },
|
|
25
|
+
onClick: { type: Function, required: false }
|
|
26
|
+
});
|
|
27
|
+
</script>
|
|
28
|
+
|
|
29
|
+
<template>
|
|
21
30
|
<q-item v-bind="$props">
|
|
22
31
|
<q-item-section side v-if=$slots.avatar>
|
|
23
32
|
<slot name="avatar"></slot>
|
|
@@ -36,4 +45,4 @@ withDefaults(defineProps<LItemProps>(), {
|
|
|
36
45
|
</q-item-section>
|
|
37
46
|
|
|
38
47
|
</q-item>
|
|
39
|
-
</template>
|
|
48
|
+
</template>
|
|
@@ -1,18 +1,19 @@
|
|
|
1
|
-
<script setup>
|
|
2
|
-
const props = defineProps({
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
})
|
|
13
|
-
</script>
|
|
14
|
-
|
|
1
|
+
<script setup>
|
|
2
|
+
const props = defineProps({
|
|
3
|
+
to: {
|
|
4
|
+
type: String,
|
|
5
|
+
required: false
|
|
6
|
+
},
|
|
7
|
+
type: {
|
|
8
|
+
type: String,
|
|
9
|
+
required: false,
|
|
10
|
+
default: "primary"
|
|
11
|
+
}
|
|
12
|
+
});
|
|
13
|
+
</script>
|
|
14
|
+
|
|
15
|
+
<template>
|
|
15
16
|
<router-link :to="props.to" style="text-decoration: underline; color:var(--q-primary)">
|
|
16
17
|
<slot />
|
|
17
18
|
</router-link>
|
|
18
|
-
</template>
|
|
19
|
+
</template>
|
|
@@ -1,37 +1,29 @@
|
|
|
1
|
-
<script setup
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
return null;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
</script>
|
|
34
|
-
<template>
|
|
1
|
+
<script setup>
|
|
2
|
+
const props = defineProps({
|
|
3
|
+
fields: { type: Array, required: false },
|
|
4
|
+
modelValue: { type: null, required: false },
|
|
5
|
+
bordered: { type: Boolean, required: false, skipCheck: true, default: true },
|
|
6
|
+
dense: { type: Boolean, required: false, skipCheck: true, default: true },
|
|
7
|
+
separator: { type: Boolean, required: false, skipCheck: true, default: true },
|
|
8
|
+
dark: { type: [Boolean, null], required: false, skipCheck: true },
|
|
9
|
+
padding: { type: Boolean, required: false, skipCheck: true },
|
|
10
|
+
tag: { type: null, required: false }
|
|
11
|
+
});
|
|
12
|
+
function getTo(field) {
|
|
13
|
+
const raw = field.getRaw();
|
|
14
|
+
if (raw.to) {
|
|
15
|
+
if (raw.to instanceof Function) {
|
|
16
|
+
return raw.to(props.modelValue);
|
|
17
|
+
}
|
|
18
|
+
if (typeof raw.to == "string") {
|
|
19
|
+
return raw.to;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
return null;
|
|
23
|
+
}
|
|
24
|
+
</script>
|
|
25
|
+
|
|
26
|
+
<template>
|
|
35
27
|
<q-list v-bind="$props">
|
|
36
28
|
<template v-if="fields">
|
|
37
29
|
<l-item v-for="field in fields" :label="field.getRaw().label" :to="getTo(field)">
|
|
@@ -44,4 +36,4 @@ function getTo(field) {
|
|
|
44
36
|
</template>
|
|
45
37
|
|
|
46
38
|
</q-list>
|
|
47
|
-
</template>
|
|
39
|
+
</template>
|