rayyy-vue-table-components 1.2.38 → 1.3.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.
@@ -2,7 +2,6 @@ export { default as BaseTable } from './tables/BaseTable.vue';
2
2
  export { default as BaseBtn } from './items/BaseBtn.vue';
3
3
  export { default as BaseInput } from './form/BaseInput.vue';
4
4
  export { default as BaseDialog } from './items/BaseDialog.vue';
5
- export { default as BaseForm } from './form/BaseForm.vue';
6
5
  export { default as BaseMultipleInput } from './form/BaseMultipleInput.vue';
7
6
  export { default as SortTable } from './tables/SortTable.vue';
8
7
  export { default as SearchBar } from './items/SearchBar.vue';
@@ -11,12 +10,43 @@ export { default as TransferItem } from './transfer/transferItem.vue';
11
10
  export { default as FunctionHeader } from './layout/FunctionHeader.vue';
12
11
  export { default as MainPanel } from './layout/MainPanel.vue';
13
12
  export { default as SearchableListPanel } from './layout/SearchableListPanel.vue';
14
- export type { BaseTableProps, BaseTableEmits, BaseTableInstance, BaseBtnProps, BaseBtnEmits, BaseBtnInstance, BaseDialogProps, BaseDialogEmits, BaseDialogInstance, BaseInputProps, BaseInputEmits, BaseInputInstance, BaseFormProps, BaseFormEmits, BaseFormInstance, SortTableProps, SortTableEmits, SortTableInstance, SearchBarProps, SearchBarEmits, SearchBarInstance, SearchBarSlots, TransferDialogProps, TransferDialogEmits, TransferDialogInstance, TransferItemProps, TransferItemEmits, TransferItemInstance, MainPanelProps, MainPanelEmits, MainPanelInstance, FunctionHeaderProps, FunctionHeaderEmits, FunctionHeaderInstance, PluginOptions, VueTableComponentsPlugin, } from '../types/components';
13
+ export type { BaseTableProps } from '../types/components.d';
14
+ export type { BaseTableEmits } from '../types/components.d';
15
+ export type { BaseTableInstance } from '../types/components.d';
16
+ export type { BaseBtnProps } from '../types/components.d';
17
+ export type { BaseBtnEmits } from '../types/components.d';
18
+ export type { BaseBtnInstance } from '../types/components.d';
19
+ export type { BaseDialogProps } from '../types/components.d';
20
+ export type { BaseDialogEmits } from '../types/components.d';
21
+ export type { BaseDialogInstance } from '../types/components.d';
22
+ export type { BaseInputProps } from '../types/components.d';
23
+ export type { BaseInputEmits } from '../types/components.d';
24
+ export type { BaseInputInstance } from '../types/components.d';
25
+ export type { SortTableProps } from '../types/components.d';
26
+ export type { SortTableEmits } from '../types/components.d';
27
+ export type { SortTableInstance } from '../types/components.d';
28
+ export type { SearchBarProps } from '../types/components.d';
29
+ export type { SearchBarEmits } from '../types/components.d';
30
+ export type { SearchBarInstance } from '../types/components.d';
31
+ export type { SearchBarSlots } from '../types/components.d';
32
+ export type { TransferDialogProps } from '../types/components.d';
33
+ export type { TransferDialogEmits } from '../types/components.d';
34
+ export type { TransferDialogInstance } from '../types/components.d';
35
+ export type { TransferItemProps } from '../types/components.d';
36
+ export type { TransferItemEmits } from '../types/components.d';
37
+ export type { TransferItemInstance } from '../types/components.d';
38
+ export type { MainPanelProps } from '../types/components.d';
39
+ export type { MainPanelEmits } from '../types/components.d';
40
+ export type { MainPanelInstance } from '../types/components.d';
41
+ export type { FunctionHeaderProps } from '../types/components.d';
42
+ export type { FunctionHeaderEmits } from '../types/components.d';
43
+ export type { FunctionHeaderInstance } from '../types/components.d';
44
+ export type { PluginOptions } from '../types/components.d';
45
+ export type { VueTableComponentsPlugin } from '../types/components.d';
15
46
  export type { default as BaseTableType } from './tables/BaseTable.vue';
16
47
  export type { default as BaseBtnType } from './items/BaseBtn.vue';
17
48
  export type { default as BaseInputType } from './form/BaseInput.vue';
18
49
  export type { default as BaseDialogType } from './items/BaseDialog.vue';
19
- export type { default as BaseFormType } from './form/BaseForm.vue';
20
50
  export type { default as SortTableType } from './tables/SortTable.vue';
21
51
  export type { default as SearchBarType } from './items/SearchBar.vue';
22
52
  export type { default as TransferDialogType } from './transfer/TransferDialog.vue';
@@ -2,6 +2,8 @@ export declare const ROUTES: {
2
2
  readonly ROOT: "/";
3
3
  readonly HOME: "/home";
4
4
  readonly DEMO: "/demo";
5
+ readonly INSTALL_GUIDE: "/install-guide";
6
+ readonly DOCS_CENTER: "/docs-center";
5
7
  readonly SEARCHABLE_LIST_PANEL: "/demo/searchable-list-panel";
6
8
  readonly BASE_MULTIPLE_INPUT: "/demo/base-multiple-input";
7
9
  readonly TRANSFER_DIALOG: "/demo/transfer-dialog";
@@ -12,7 +14,6 @@ export declare const ROUTES: {
12
14
  readonly BASE_FORM: "/demo/base-form";
13
15
  readonly SORT_TABLE: "/demo/sort-table";
14
16
  readonly SEARCH_BAR: "/demo/search-bar";
15
- readonly TRANSFER_ITEM: "/demo/transfer-item";
16
17
  readonly FUNCTION_HEADER: "/demo/function-header";
17
18
  readonly MAIN_PANEL: "/demo/main-panel";
18
19
  readonly NOT_FOUND: "/:catchAll(.*)";
@@ -21,6 +22,8 @@ export declare const ROUTE_NAMES: {
21
22
  readonly HOME_LAYOUT: "HomeLayout";
22
23
  readonly HOME: "Home";
23
24
  readonly DEMO: "Demo";
25
+ readonly INSTALL_GUIDE: "InstallGuide";
26
+ readonly DOCS_CENTER: "DocsCenter";
24
27
  readonly SEARCHABLE_LIST_PANEL: "SearchableListPanel";
25
28
  readonly BASE_MULTIPLE_INPUT: "BaseMultipleInput";
26
29
  readonly TRANSFER_DIALOG: "TransferDialog";
@@ -28,10 +31,8 @@ export declare const ROUTE_NAMES: {
28
31
  readonly BASE_BTN: "BaseBtn";
29
32
  readonly BASE_INPUT: "BaseInput";
30
33
  readonly BASE_DIALOG: "BaseDialog";
31
- readonly BASE_FORM: "BaseForm";
32
34
  readonly SORT_TABLE: "SortTable";
33
35
  readonly SEARCH_BAR: "SearchBar";
34
- readonly TRANSFER_ITEM: "TransferItem";
35
36
  readonly FUNCTION_HEADER: "FunctionHeader";
36
37
  readonly MAIN_PANEL: "MainPanel";
37
38
  readonly NOT_FOUND: "NotFoundPage";
@@ -251,37 +251,6 @@ export interface BaseInputInstance {
251
251
  $emit: BaseInputEmits
252
252
  }
253
253
 
254
- // ==================== BaseForm 組件類型 ====================
255
-
256
- /** BaseForm 組件 Props 類型 */
257
- export interface BaseFormProps<T extends object = object> {
258
- /** 模型值 */
259
- modelValue?: T
260
- /** 表單驗證規則 */
261
- rules?: import('element-plus').FormRules
262
- /** 標籤寬度 */
263
- labelWidth?: string
264
- /** 測試屬性 */
265
- dataCy?: string
266
- }
267
-
268
- /** BaseForm 組件 Emits 類型 */
269
- export interface BaseFormEmits {
270
- /** 更新模型值事件 */
271
- (e: 'update:modelValue', value: Record<string, unknown>): void
272
- /** 提交事件 */
273
- (e: 'submit'): void
274
- /** 驗證事件 */
275
- (e: 'validate', valid: boolean): void
276
- }
277
-
278
- /** BaseForm 組件實例類型 */
279
- export interface BaseFormInstance {
280
- /** 組件 Props */
281
- $props: BaseFormProps
282
- /** 組件 Emits */
283
- $emit: BaseFormEmits
284
- }
285
254
 
286
255
  // ==================== BaseMultipleInput 組件類型 ====================
287
256
 
@@ -590,21 +559,6 @@ export declare const BaseInput: DefineComponent<
590
559
  install: (app: App) => void
591
560
  }
592
561
 
593
- /** BaseForm 組件定義 */
594
- export declare const BaseForm: DefineComponent<
595
- BaseFormProps,
596
- {},
597
- {},
598
- {},
599
- {},
600
- {},
601
- {},
602
- {},
603
- BaseFormEmits
604
- > & {
605
- /** 安裝方法 */
606
- install: (app: App) => void
607
- }
608
562
 
609
563
  /** BaseMultipleInput 組件定義 */
610
564
  export declare const BaseMultipleInput: DefineComponent<
@@ -728,8 +682,6 @@ export interface VueTableComponentsPlugin {
728
682
  TransferDialog: typeof TransferDialog
729
683
  /** BaseInput 組件 */
730
684
  BaseInput: typeof BaseInput
731
- /** BaseForm 組件 */
732
- BaseForm: typeof BaseForm
733
685
  /** BaseMultipleInput 組件 */
734
686
  BaseMultipleInput: typeof BaseMultipleInput
735
687
  /** SearchBar 組件 */
@@ -754,7 +706,6 @@ declare module '@vue/runtime-core' {
754
706
  BaseDialog: typeof BaseDialog
755
707
  TransferDialog: typeof TransferDialog
756
708
  BaseInput: typeof BaseInput
757
- BaseForm: typeof BaseForm
758
709
  BaseMultipleInput: typeof BaseMultipleInput
759
710
  SearchBar: typeof SearchBar
760
711
  SearchableListPanel: typeof SearchableListPanel
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rayyy-vue-table-components",
3
- "version": "1.2.38",
3
+ "version": "1.3.0",
4
4
  "description": "Vue 3 + Element Plus 表格組件庫",
5
5
  "type": "module",
6
6
  "main": "./dist/index.umd.js",
@@ -6,7 +6,6 @@ type Props<T extends object = object> = {
6
6
  modelValue?: T
7
7
  rules?: FormRules
8
8
  labelWidth?: string
9
- dataCy?: string
10
9
  }
11
10
  const props = withDefaults(defineProps<Props>(), {})
12
11
 
@@ -41,10 +40,15 @@ const clearValidate = (props?: string | string[]) => {
41
40
  formRef.value?.clearValidate(props)
42
41
  }
43
42
 
43
+ const validateField = (prop: string) => {
44
+ formRef.value?.validateField(prop)
45
+ }
46
+
44
47
  defineExpose({
45
48
  validate,
46
49
  resetFields,
47
50
  clearValidate,
51
+ validateField,
48
52
  })
49
53
  </script>
50
54
 
@@ -1,4 +1,3 @@
1
-
2
1
  <script setup lang="ts">
3
2
  import { ref, useAttrs } from 'vue'
4
3
  import type { ElInput } from 'element-plus'
@@ -15,7 +14,7 @@ const props = withDefaults(
15
14
  {
16
15
  type: 'textarea',
17
16
  validateRule: () => true,
18
- }
17
+ },
19
18
  )
20
19
 
21
20
  // 獲取所有非 props 屬性
@@ -29,7 +28,7 @@ const emits = defineEmits<{
29
28
  const remove = (position: number) => {
30
29
  emits(
31
30
  'update:modelValue',
32
- props.modelValue.filter((input, index) => index !== position)
31
+ props.modelValue.filter((input, index) => index !== position),
33
32
  )
34
33
  }
35
34
 
@@ -38,7 +37,6 @@ const handleInputConfirm = () => {
38
37
  if (!inputString) {
39
38
  return
40
39
  }
41
-
42
40
  if (!props.validateRule(inputString)) {
43
41
  emits('inputError')
44
42
  return
@@ -63,7 +61,7 @@ const deleteLastTag = () => {
63
61
  </script>
64
62
 
65
63
  <template>
66
- <div v-bind="attrs" class="w-full border border-t rounded" @click="focusInput" >
64
+ <div v-bind="attrs" class="w-full border border-t rounded" @click="focusInput">
67
65
  <el-tag
68
66
  v-for="(tag, position) in props.modelValue"
69
67
  :key="tag"
@@ -87,7 +85,6 @@ const deleteLastTag = () => {
87
85
  </div>
88
86
  </template>
89
87
 
90
-
91
88
  <style scoped lang="scss">
92
89
  :deep(.el-input) {
93
90
  --el-input-border-color: transparent;
@@ -3,7 +3,6 @@ export { default as BaseTable } from './tables/BaseTable.vue'
3
3
  export { default as BaseBtn } from './items/BaseBtn.vue'
4
4
  export { default as BaseInput } from './form/BaseInput.vue'
5
5
  export { default as BaseDialog } from './items/BaseDialog.vue'
6
- export { default as BaseForm } from './form/BaseForm.vue'
7
6
  export { default as BaseMultipleInput } from './form/BaseMultipleInput.vue'
8
7
  export { default as SortTable } from './tables/SortTable.vue'
9
8
  export { default as SearchBar } from './items/SearchBar.vue'
@@ -14,51 +13,45 @@ export { default as MainPanel } from './layout/MainPanel.vue'
14
13
  export { default as SearchableListPanel } from './layout/SearchableListPanel.vue'
15
14
 
16
15
  // 導出組件類型
17
- export type {
18
- BaseTableProps,
19
- BaseTableEmits,
20
- BaseTableInstance,
21
- BaseBtnProps,
22
- BaseBtnEmits,
23
- BaseBtnInstance,
24
- BaseDialogProps,
25
- BaseDialogEmits,
26
- BaseDialogInstance,
27
- BaseInputProps,
28
- BaseInputEmits,
29
- BaseInputInstance,
30
- BaseFormProps,
31
- BaseFormEmits,
32
- BaseFormInstance,
33
- SortTableProps,
34
- SortTableEmits,
35
- SortTableInstance,
36
- SearchBarProps,
37
- SearchBarEmits,
38
- SearchBarInstance,
39
- SearchBarSlots,
40
- TransferDialogProps,
41
- TransferDialogEmits,
42
- TransferDialogInstance,
43
- TransferItemProps,
44
- TransferItemEmits,
45
- TransferItemInstance,
46
- MainPanelProps,
47
- MainPanelEmits,
48
- MainPanelInstance,
49
- FunctionHeaderProps,
50
- FunctionHeaderEmits,
51
- FunctionHeaderInstance,
52
- PluginOptions,
53
- VueTableComponentsPlugin,
54
- } from '../types/components'
16
+ export type { BaseTableProps } from '../types/components.d'
17
+ export type { BaseTableEmits } from '../types/components.d'
18
+ export type { BaseTableInstance } from '../types/components.d'
19
+ export type { BaseBtnProps } from '../types/components.d'
20
+ export type { BaseBtnEmits } from '../types/components.d'
21
+ export type { BaseBtnInstance } from '../types/components.d'
22
+ export type { BaseDialogProps } from '../types/components.d'
23
+ export type { BaseDialogEmits } from '../types/components.d'
24
+ export type { BaseDialogInstance } from '../types/components.d'
25
+ export type { BaseInputProps } from '../types/components.d'
26
+ export type { BaseInputEmits } from '../types/components.d'
27
+ export type { BaseInputInstance } from '../types/components.d'
28
+ export type { SortTableProps } from '../types/components.d'
29
+ export type { SortTableEmits } from '../types/components.d'
30
+ export type { SortTableInstance } from '../types/components.d'
31
+ export type { SearchBarProps } from '../types/components.d'
32
+ export type { SearchBarEmits } from '../types/components.d'
33
+ export type { SearchBarInstance } from '../types/components.d'
34
+ export type { SearchBarSlots } from '../types/components.d'
35
+ export type { TransferDialogProps } from '../types/components.d'
36
+ export type { TransferDialogEmits } from '../types/components.d'
37
+ export type { TransferDialogInstance } from '../types/components.d'
38
+ export type { TransferItemProps } from '../types/components.d'
39
+ export type { TransferItemEmits } from '../types/components.d'
40
+ export type { TransferItemInstance } from '../types/components.d'
41
+ export type { MainPanelProps } from '../types/components.d'
42
+ export type { MainPanelEmits } from '../types/components.d'
43
+ export type { MainPanelInstance } from '../types/components.d'
44
+ export type { FunctionHeaderProps } from '../types/components.d'
45
+ export type { FunctionHeaderEmits } from '../types/components.d'
46
+ export type { FunctionHeaderInstance } from '../types/components.d'
47
+ export type { PluginOptions } from '../types/components.d'
48
+ export type { VueTableComponentsPlugin } from '../types/components.d'
55
49
 
56
50
  // 重新導出組件定義類型
57
51
  export type { default as BaseTableType } from './tables/BaseTable.vue'
58
52
  export type { default as BaseBtnType } from './items/BaseBtn.vue'
59
53
  export type { default as BaseInputType } from './form/BaseInput.vue'
60
54
  export type { default as BaseDialogType } from './items/BaseDialog.vue'
61
- export type { default as BaseFormType } from './form/BaseForm.vue'
62
55
  export type { default as SortTableType } from './tables/SortTable.vue'
63
56
  export type { default as SearchBarType } from './items/SearchBar.vue'
64
57
  export type { default as TransferDialogType } from './transfer/TransferDialog.vue'
@@ -66,6 +66,9 @@ const resetFilter = () => {
66
66
  :deep(.el-input__prefix) {
67
67
  color: var(--main-color);
68
68
  }
69
+ :deep(.el-input__inner::placeholder) {
70
+ @apply text-text-border;
71
+ }
69
72
  }
70
73
  }
71
74
  </style>
@@ -1,5 +1,7 @@
1
1
  <script lang="ts" setup>
2
2
  import { FunctionHeader } from '@/components'
3
+ import { useRouter } from 'vue-router'
4
+ import { ROUTES } from '@/router/constants.ts'
3
5
 
4
6
  const props = withDefaults(
5
7
  defineProps<{
@@ -13,10 +15,16 @@ const props = withDefaults(
13
15
  depth: 1,
14
16
  },
15
17
  )
18
+ const router = useRouter()
16
19
  </script>
17
20
 
18
21
  <template>
19
- <function-header :title="props.title" :showBack="props.showBack" :depth="props.depth" />
22
+ <function-header
23
+ :title="props.title"
24
+ :showBack="props.showBack"
25
+ @back="router.push(ROUTES.DEMO)"
26
+ :depth="props.depth"
27
+ />
20
28
 
21
29
  <el-scrollbar class="panel-scrollbar">
22
30
  <div v-if="$slots.searchBar" class="px-4 pt-1.5">
@@ -252,37 +252,6 @@ export interface BaseInputInstance {
252
252
  $emit: BaseInputEmits
253
253
  }
254
254
 
255
- // ==================== BaseForm 組件類型 ====================
256
-
257
- /** BaseForm 組件 Props 類型 */
258
- export interface BaseFormProps<T extends object = object> {
259
- /** 模型值 */
260
- modelValue?: T
261
- /** 表單驗證規則 */
262
- rules?: import('element-plus').FormRules
263
- /** 標籤寬度 */
264
- labelWidth?: string
265
- /** 測試屬性 */
266
- dataCy?: string
267
- }
268
-
269
- /** BaseForm 組件 Emits 類型 */
270
- export interface BaseFormEmits {
271
- /** 更新模型值事件 */
272
- (e: 'update:modelValue', value: Record<string, unknown>): void
273
- /** 提交事件 */
274
- (e: 'submit'): void
275
- /** 驗證事件 */
276
- (e: 'validate', valid: boolean): void
277
- }
278
-
279
- /** BaseForm 組件實例類型 */
280
- export interface BaseFormInstance {
281
- /** 組件 Props */
282
- $props: BaseFormProps
283
- /** 組件 Emits */
284
- $emit: BaseFormEmits
285
- }
286
255
 
287
256
  // ==================== BaseMultipleInput 組件類型 ====================
288
257
 
@@ -591,21 +560,6 @@ export declare const BaseInput: DefineComponent<
591
560
  install: (app: App) => void
592
561
  }
593
562
 
594
- /** BaseForm 組件定義 */
595
- export declare const BaseForm: DefineComponent<
596
- BaseFormProps,
597
- {},
598
- {},
599
- {},
600
- {},
601
- {},
602
- {},
603
- {},
604
- BaseFormEmits
605
- > & {
606
- /** 安裝方法 */
607
- install: (app: App) => void
608
- }
609
563
 
610
564
  /** BaseMultipleInput 組件定義 */
611
565
  export declare const BaseMultipleInput: DefineComponent<
@@ -729,8 +683,6 @@ export interface VueTableComponentsPlugin {
729
683
  TransferDialog: typeof TransferDialog
730
684
  /** BaseInput 組件 */
731
685
  BaseInput: typeof BaseInput
732
- /** BaseForm 組件 */
733
- BaseForm: typeof BaseForm
734
686
  /** BaseMultipleInput 組件 */
735
687
  BaseMultipleInput: typeof BaseMultipleInput
736
688
  /** SearchBar 組件 */
@@ -755,7 +707,6 @@ declare module '@vue/runtime-core' {
755
707
  BaseDialog: typeof BaseDialog
756
708
  TransferDialog: typeof TransferDialog
757
709
  BaseInput: typeof BaseInput
758
- BaseForm: typeof BaseForm
759
710
  BaseMultipleInput: typeof BaseMultipleInput
760
711
  SearchBar: typeof SearchBar
761
712
  SearchableListPanel: typeof SearchableListPanel
@@ -1,33 +0,0 @@
1
- import { FormRules } from 'element-plus';
2
- declare const _default: <T extends Record<string, unknown>>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
3
- props: __VLS_PrettifyLocal<Pick<Partial<{}> & Omit<{
4
- readonly onSubmit?: (() => any) | undefined;
5
- readonly "onUpdate:modelValue"?: ((value: Record<string, unknown>) => any) | undefined;
6
- readonly onValidate?: ((valid: boolean) => any) | undefined;
7
- } & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps, never>, "onSubmit" | "onUpdate:modelValue" | "onValidate"> & {
8
- modelValue?: object | undefined;
9
- rules?: FormRules;
10
- labelWidth?: string;
11
- dataCy?: string;
12
- } & Partial<{}>> & import('vue').PublicProps;
13
- expose(exposed: import('vue').ShallowUnwrapRef<{
14
- validate: () => Promise<boolean>;
15
- resetFields: () => void;
16
- clearValidate: (props?: string | string[]) => void;
17
- }>): void;
18
- attrs: any;
19
- slots: {
20
- default?(_: {}): any;
21
- };
22
- emit: {
23
- (e: "update:modelValue", value: Record<string, unknown>): void;
24
- (e: "submit"): void;
25
- (e: "validate", valid: boolean): void;
26
- };
27
- }>) => import('vue').VNode & {
28
- __ctx?: Awaited<typeof __VLS_setup>;
29
- };
30
- export default _default;
31
- type __VLS_PrettifyLocal<T> = {
32
- [K in keyof T]: T[K];
33
- } & {};