@aplus-frontend/ui 0.0.11 → 0.0.13

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 (77) hide show
  1. package/es/index.mjs +166 -158
  2. package/es/src/ap-action/item/index.vue2.mjs +21 -20
  3. package/es/src/ap-action/style/item.css +20 -5
  4. package/es/src/ap-form/ap-form.vue2.mjs +42 -42
  5. package/es/src/ap-form/modal-form/index.vue.mjs +104 -104
  6. package/es/src/ap-form/style/modal-form.css +5 -1
  7. package/es/src/ap-table/ap-table.vue.d.ts +5 -1
  8. package/es/src/business/index.d.ts +126 -0
  9. package/es/src/business/index.mjs +8 -0
  10. package/es/src/business/title/ApTitle.vue.d.ts +45 -0
  11. package/es/src/business/title/ApTitle.vue.mjs +50 -0
  12. package/es/src/business/title/ApTitle.vue2.mjs +4 -0
  13. package/es/src/business/title/interface.d.ts +21 -0
  14. package/es/src/business/title/style.css +39 -0
  15. package/es/src/components.d.ts +1 -0
  16. package/es/src/editable-table/form-item.vue.d.ts +304 -0
  17. package/es/src/editable-table/form-item.vue.mjs +189 -0
  18. package/es/src/editable-table/form-item.vue2.mjs +4 -0
  19. package/es/src/editable-table/hooks/use-get-columns.d.ts +5 -0
  20. package/es/src/editable-table/hooks/use-get-columns.mjs +76 -0
  21. package/es/src/editable-table/index.d.ts +5 -0
  22. package/es/src/editable-table/index.mjs +3 -0
  23. package/es/src/editable-table/index.vue.d.ts +196 -0
  24. package/es/src/editable-table/index.vue.mjs +209 -0
  25. package/es/src/editable-table/index.vue2.mjs +4 -0
  26. package/es/src/editable-table/interface.d.ts +72 -5
  27. package/es/src/editable-table/interface.mjs +1 -0
  28. package/es/src/editable-table/style/index.css +40 -1
  29. package/es/src/editable-table/utils.mjs +10 -0
  30. package/es/src/index.d.ts +2 -0
  31. package/es/src/index.mjs +229 -220
  32. package/es/src/pro-form/components/form-action.vue2.mjs +8 -8
  33. package/es/src/theme/antd-global-overwrite/admin/index.css +8 -0
  34. package/es/src/theme/antd-global-overwrite/admin/table.css +8 -0
  35. package/es/src/theme/ap-action/item.css +20 -5
  36. package/es/src/theme/ap-form/modal-form.css +5 -1
  37. package/es/src/theme/ap-title/ap-title.css +39 -0
  38. package/es/src/theme/editable-table/index.css +40 -1
  39. package/lib/index.js +1 -1
  40. package/lib/src/ap-action/item/index.vue2.js +1 -1
  41. package/lib/src/ap-action/style/item.css +20 -5
  42. package/lib/src/ap-form/ap-form.vue2.js +1 -1
  43. package/lib/src/ap-form/modal-form/index.vue.js +1 -1
  44. package/lib/src/ap-form/style/modal-form.css +5 -1
  45. package/lib/src/ap-table/ap-table.vue.d.ts +5 -1
  46. package/lib/src/business/index.d.ts +126 -0
  47. package/lib/src/business/index.js +1 -0
  48. package/lib/src/business/title/ApTitle.vue.d.ts +45 -0
  49. package/lib/src/business/title/ApTitle.vue.js +1 -0
  50. package/lib/src/business/title/ApTitle.vue2.js +1 -0
  51. package/lib/src/business/title/interface.d.ts +21 -0
  52. package/lib/src/business/title/style.css +39 -0
  53. package/lib/src/components.d.ts +1 -0
  54. package/lib/src/editable-table/form-item.vue.d.ts +304 -0
  55. package/lib/src/editable-table/form-item.vue.js +1 -0
  56. package/lib/src/editable-table/form-item.vue2.js +1 -0
  57. package/lib/src/editable-table/hooks/use-get-columns.d.ts +5 -0
  58. package/lib/src/editable-table/hooks/use-get-columns.js +1 -0
  59. package/lib/src/editable-table/index.d.ts +5 -0
  60. package/lib/src/editable-table/index.js +1 -0
  61. package/lib/src/editable-table/index.vue.d.ts +196 -0
  62. package/lib/src/editable-table/index.vue.js +1 -0
  63. package/lib/src/editable-table/index.vue2.js +1 -0
  64. package/lib/src/editable-table/interface.d.ts +72 -5
  65. package/lib/src/editable-table/interface.js +1 -0
  66. package/lib/src/editable-table/style/index.css +40 -1
  67. package/lib/src/editable-table/utils.js +1 -0
  68. package/lib/src/index.d.ts +2 -0
  69. package/lib/src/index.js +1 -1
  70. package/lib/src/pro-form/components/form-action.vue2.js +1 -1
  71. package/lib/src/theme/antd-global-overwrite/admin/index.css +8 -0
  72. package/lib/src/theme/antd-global-overwrite/admin/table.css +8 -0
  73. package/lib/src/theme/ap-action/item.css +20 -5
  74. package/lib/src/theme/ap-form/modal-form.css +5 -1
  75. package/lib/src/theme/ap-title/ap-title.css +39 -0
  76. package/lib/src/theme/editable-table/index.css +40 -1
  77. package/package.json +1 -1
@@ -0,0 +1,304 @@
1
+ import { EditableColumnType, EditableTableFormItemProps } from './interface';
2
+ import { DefineComponent, ComponentOptionsMixin, PublicProps, ExtractPropTypes, PropType, CSSProperties, HTMLAttributes } from 'vue';
3
+ import { SpinSize } from 'ant-design-vue/es/spin/Spin';
4
+ import { VueTypeValidableDef, VueTypeDef } from '../../node_modules/vue-types';
5
+ import { TablePaginationConfig } from 'ant-design-vue';
6
+ import { TableLayout, GetRowKey } from 'ant-design-vue/es/vc-table/interface';
7
+ import { SortOrder } from 'ant-design-vue/es/table/interface';
8
+ import { TriggerType } from 'ant-design-vue/es/tooltip/abstractTooltipProps';
9
+ import { TooltipPlacement, AdjustOverflow } from 'ant-design-vue/es/tooltip';
10
+ import { LiteralUnion } from 'ant-design-vue/es/_util/type';
11
+ import { PresetColorType } from 'ant-design-vue/es/_util/colors';
12
+ import { AlignType, BuildInPlacements } from 'ant-design-vue/es/vc-trigger/interface';
13
+ import { ColSize } from 'ant-design-vue/es/grid';
14
+ import { FormLabelAlign } from 'ant-design-vue/es/form/interface';
15
+ import { RuleObject } from 'ant-design-vue/es/form';
16
+
17
+ type EditableTableFormItemSlots = {
18
+ default: any;
19
+ emptyText?: any;
20
+ expandIcon?: any;
21
+ title?: any;
22
+ footer?: any;
23
+ summary?: any;
24
+ expandedRowRender?: any;
25
+ expandColumnTitle?: any;
26
+ customFilterIcon?: any;
27
+ customFilterDropdown?: any;
28
+ headerCell?: (props: {
29
+ title: any;
30
+ column: EditableColumnType;
31
+ }) => void;
32
+ };
33
+ declare function add(defaultValue?: any): void;
34
+ declare function remove(index: number): void;
35
+ declare function getRowsData(): any[];
36
+ declare function getRowData(index: number): any;
37
+ declare function setRowData(index: number, payload: any): void;
38
+ declare const _default: __VLS_WithTemplateSlots< DefineComponent<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<EditableTableFormItemProps<any>>, {
39
+ bordered: boolean;
40
+ childrenColumnName: string;
41
+ defaultExpandAllRows: boolean;
42
+ expandFixed: boolean;
43
+ expandRowByClick: boolean;
44
+ indentSize: number;
45
+ rowKey: string;
46
+ showExpandColumn: boolean;
47
+ showHeader: boolean;
48
+ showSorterTooltip: boolean;
49
+ size: string;
50
+ sortDirections: () => string[];
51
+ pagination: boolean;
52
+ loading: undefined;
53
+ tableLayout: string;
54
+ formItem: () => {};
55
+ }>, {
56
+ add: typeof add;
57
+ remove: typeof remove;
58
+ getRowData: typeof getRowData;
59
+ getRowsData: typeof getRowsData;
60
+ setRowData: typeof setRowData;
61
+ }, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly< ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<EditableTableFormItemProps<any>>, {
62
+ bordered: boolean;
63
+ childrenColumnName: string;
64
+ defaultExpandAllRows: boolean;
65
+ expandFixed: boolean;
66
+ expandRowByClick: boolean;
67
+ indentSize: number;
68
+ rowKey: string;
69
+ showExpandColumn: boolean;
70
+ showHeader: boolean;
71
+ showSorterTooltip: boolean;
72
+ size: string;
73
+ sortDirections: () => string[];
74
+ pagination: boolean;
75
+ loading: undefined;
76
+ tableLayout: string;
77
+ formItem: () => {};
78
+ }>>>, {
79
+ loading: boolean | Partial< ExtractPropTypes<{
80
+ prefixCls: StringConstructor;
81
+ spinning: {
82
+ type: BooleanConstructor;
83
+ default: any;
84
+ };
85
+ size: PropType<SpinSize>;
86
+ wrapperClassName: StringConstructor;
87
+ tip: VueTypeValidableDef<any>;
88
+ delay: NumberConstructor;
89
+ indicator: VueTypeValidableDef<any>;
90
+ }>>;
91
+ size: "small" | "middle" | "large";
92
+ pagination: false | TablePaginationConfig;
93
+ bordered: boolean;
94
+ tableLayout: TableLayout;
95
+ rowKey: string | GetRowKey<any>;
96
+ sortDirections: SortOrder[];
97
+ showSorterTooltip: boolean | Partial< ExtractPropTypes<{
98
+ title: VueTypeValidableDef<any>;
99
+ trigger: PropType< TriggerType | TriggerType[]>;
100
+ open: {
101
+ type: BooleanConstructor;
102
+ default: any;
103
+ };
104
+ visible: {
105
+ type: BooleanConstructor;
106
+ default: any;
107
+ };
108
+ placement: PropType<TooltipPlacement>;
109
+ color: PropType<LiteralUnion<PresetColorType>>;
110
+ transitionName: StringConstructor;
111
+ overlayStyle: {
112
+ type: PropType<CSSProperties>;
113
+ default: CSSProperties;
114
+ };
115
+ overlayInnerStyle: {
116
+ type: PropType<CSSProperties>;
117
+ default: CSSProperties;
118
+ };
119
+ overlayClassName: StringConstructor;
120
+ openClassName: StringConstructor;
121
+ prefixCls: StringConstructor;
122
+ mouseEnterDelay: NumberConstructor;
123
+ mouseLeaveDelay: NumberConstructor;
124
+ getPopupContainer: PropType<(triggerNode: HTMLElement) => HTMLElement>;
125
+ arrowPointAtCenter: {
126
+ type: BooleanConstructor;
127
+ default: any;
128
+ };
129
+ arrow: {
130
+ type: PropType<boolean | {
131
+ pointAtCenter?: boolean | undefined;
132
+ }>;
133
+ default: boolean | {
134
+ pointAtCenter?: boolean | undefined;
135
+ };
136
+ };
137
+ autoAdjustOverflow: {
138
+ type: PropType<boolean | AdjustOverflow>;
139
+ default: boolean | AdjustOverflow;
140
+ };
141
+ destroyTooltipOnHide: {
142
+ type: BooleanConstructor;
143
+ default: any;
144
+ };
145
+ align: {
146
+ type: PropType<AlignType>;
147
+ default: AlignType;
148
+ };
149
+ builtinPlacements: {
150
+ type: PropType<BuildInPlacements>;
151
+ default: BuildInPlacements;
152
+ };
153
+ children: ArrayConstructor;
154
+ onVisibleChange: PropType<(vis: boolean) => void>;
155
+ 'onUpdate:visible': PropType<(vis: boolean) => void>;
156
+ onOpenChange: PropType<(vis: boolean) => void>;
157
+ 'onUpdate:open': PropType<(vis: boolean) => void>;
158
+ }>>;
159
+ showHeader: boolean;
160
+ expandFixed: boolean | "left" | "right";
161
+ expandRowByClick: boolean;
162
+ defaultExpandAllRows: boolean;
163
+ indentSize: number;
164
+ showExpandColumn: boolean;
165
+ childrenColumnName: string;
166
+ formItem: Partial<Omit<Partial< ExtractPropTypes<{
167
+ htmlFor: StringConstructor;
168
+ prefixCls: StringConstructor;
169
+ label: VueTypeValidableDef<any>;
170
+ help: VueTypeValidableDef<any>;
171
+ extra: VueTypeValidableDef<any>;
172
+ labelCol: {
173
+ type: PropType<Partial< ExtractPropTypes<{
174
+ span: (StringConstructor | NumberConstructor)[];
175
+ order: (StringConstructor | NumberConstructor)[];
176
+ offset: (StringConstructor | NumberConstructor)[];
177
+ push: (StringConstructor | NumberConstructor)[];
178
+ pull: (StringConstructor | NumberConstructor)[];
179
+ xs: {
180
+ type: PropType<string | number | ColSize>;
181
+ default: string | number | ColSize;
182
+ };
183
+ sm: {
184
+ type: PropType<string | number | ColSize>;
185
+ default: string | number | ColSize;
186
+ };
187
+ md: {
188
+ type: PropType<string | number | ColSize>;
189
+ default: string | number | ColSize;
190
+ };
191
+ lg: {
192
+ type: PropType<string | number | ColSize>;
193
+ default: string | number | ColSize;
194
+ };
195
+ xl: {
196
+ type: PropType<string | number | ColSize>;
197
+ default: string | number | ColSize;
198
+ };
199
+ xxl: {
200
+ type: PropType<string | number | ColSize>;
201
+ default: string | number | ColSize;
202
+ };
203
+ prefixCls: StringConstructor;
204
+ flex: (StringConstructor | NumberConstructor)[];
205
+ }>> & HTMLAttributes>;
206
+ };
207
+ wrapperCol: {
208
+ type: PropType<Partial< ExtractPropTypes<{
209
+ span: (StringConstructor | NumberConstructor)[];
210
+ order: (StringConstructor | NumberConstructor)[];
211
+ offset: (StringConstructor | NumberConstructor)[];
212
+ push: (StringConstructor | NumberConstructor)[];
213
+ pull: (StringConstructor | NumberConstructor)[];
214
+ xs: {
215
+ type: PropType<string | number | ColSize>;
216
+ default: string | number | ColSize;
217
+ };
218
+ sm: {
219
+ type: PropType<string | number | ColSize>;
220
+ default: string | number | ColSize;
221
+ };
222
+ md: {
223
+ type: PropType<string | number | ColSize>;
224
+ default: string | number | ColSize;
225
+ };
226
+ lg: {
227
+ type: PropType<string | number | ColSize>;
228
+ default: string | number | ColSize;
229
+ };
230
+ xl: {
231
+ type: PropType<string | number | ColSize>;
232
+ default: string | number | ColSize;
233
+ };
234
+ xxl: {
235
+ type: PropType<string | number | ColSize>;
236
+ default: string | number | ColSize;
237
+ };
238
+ prefixCls: StringConstructor;
239
+ flex: (StringConstructor | NumberConstructor)[];
240
+ }>> & HTMLAttributes>;
241
+ };
242
+ hasFeedback: {
243
+ type: BooleanConstructor;
244
+ default: boolean;
245
+ };
246
+ colon: {
247
+ type: BooleanConstructor;
248
+ default: any;
249
+ };
250
+ labelAlign: PropType<FormLabelAlign>;
251
+ prop: {
252
+ type: PropType<string | number | (string | number)[]>;
253
+ };
254
+ name: {
255
+ type: PropType<string | number | (string | number)[]>;
256
+ };
257
+ rules: PropType< RuleObject | RuleObject[]>;
258
+ autoLink: {
259
+ type: BooleanConstructor;
260
+ default: boolean;
261
+ };
262
+ required: {
263
+ type: BooleanConstructor;
264
+ default: any;
265
+ };
266
+ validateFirst: {
267
+ type: BooleanConstructor;
268
+ default: any;
269
+ };
270
+ validateStatus: VueTypeDef<string>;
271
+ validateTrigger: {
272
+ type: PropType<string | string[]>;
273
+ };
274
+ messageVariables: {
275
+ type: PropType<Record<string, string>>;
276
+ };
277
+ hidden: BooleanConstructor;
278
+ noStyle: BooleanConstructor;
279
+ tooltip: StringConstructor;
280
+ }>>, "name" | "label">>;
281
+ }, {}>, Readonly<EditableTableFormItemSlots> & EditableTableFormItemSlots>;
282
+ export default _default;
283
+ type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
284
+ type __VLS_TypePropsToRuntimeProps<T> = {
285
+ [K in keyof T]-?: {} extends Pick<T, K> ? {
286
+ type: PropType<__VLS_NonUndefinedable<T[K]>>;
287
+ } : {
288
+ type: PropType<T[K]>;
289
+ required: true;
290
+ };
291
+ };
292
+ type __VLS_WithDefaults<P, D> = {
293
+ [K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_Prettify<P[K] & {
294
+ default: D[K];
295
+ }> : P[K];
296
+ };
297
+ type __VLS_Prettify<T> = {
298
+ [K in keyof T]: T[K];
299
+ } & {};
300
+ type __VLS_WithTemplateSlots<T, S> = T & {
301
+ new (): {
302
+ $slots: S;
303
+ };
304
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),E=require("ant-design-vue"),p=require("../ap-form/index.js"),s=require("lodash-unified");require("../config-provider/index.js");const F=require("../ap-form/context.js");require("./style/index.css");const S=require("../utils/index.js"),N=require("./hooks/use-get-columns.js"),P=require("../config-provider/hooks/use-namespace.js"),k=require("../config-provider/hooks/use-global-config.js"),V=e.defineComponent({name:"EditableTableInner",__name:"form-item",props:{dropdownPrefixCls:{},pagination:{type:[Boolean,Object],default:!1},loading:{type:[Boolean,Object],default:void 0},size:{default:"middle"},bordered:{type:Boolean,default:!1},locale:{},onChange:{},onResizeColumn:{},rowSelection:{},getPopupContainer:{},scroll:{},sortDirections:{default:()=>["ascend","descend"]},showSorterTooltip:{type:[Boolean,Object],default:!0},prefixCls:{},rowKey:{default:"key"},tableLayout:{default:"fixed"},rowClassName:{},title:{},footer:{},id:{},showHeader:{type:Boolean,default:!0},components:{},customRow:{},customHeaderRow:{},direction:{},expandFixed:{type:[String,Boolean],default:!1},expandColumnWidth:{},expandedRowKeys:{},defaultExpandedRowKeys:{},expandedRowRender:{},expandRowByClick:{type:Boolean,default:!1},expandIcon:{},onExpand:{},onExpandedRowsChange:{},defaultExpandAllRows:{type:Boolean,default:!1},indentSize:{default:15},expandIconColumnIndex:{},showExpandColumn:{type:Boolean,default:!0},expandedRowClassName:{},childrenColumnName:{default:"children"},rowExpandable:{},sticky:{type:[Boolean,Object]},transformCellText:{},columns:{},value:{},defaultValue:{},"onUpdate:value":{},maxLength:{},onFieldChange:{},label:{},name:{},formItem:{default:()=>({})}},setup(m,{expose:x}){var f;const l=m,{formInstance:n,model:g}=F.useInjectForm(),u=e.ref(((f=e.unref(g))==null?void 0:f[l.name])||[]),C=e.useSlots(),h=p.ApForm.useWatch(l.name);e.watch(()=>h.value,a=>{var o;u.value=a,(o=l.onChange)==null||o.call(l,a)});const{b:i,em:w}=P.useNamespace("editable-table"),b=k.useGlobalConfig("uiMode","aplus"),y=N.default(l);function B(a){var t,r;const o=((t=e.unref(u))==null?void 0:t.length)||0;S.isDef(l.maxLength)&&o>=l.maxLength||(r=n==null?void 0:n.setFieldValue)==null||r.call(n,l.name,[...e.unref(u)||[],a||{}])}function R(a){var t;const o=s.cloneDeep(e.unref(u)||[]);o.splice(a,1),(t=n==null?void 0:n.setFieldValue)==null||t.call(n,l.name,[...o])}function q(){return e.unref(u)}function D(a){var o;return(o=e.unref(u))==null?void 0:o[a]}function v(a,o){var r;const t=s.cloneDeep(e.unref(u));t[a]&&(t[a]={...t[a],...o},(r=n==null?void 0:n.setFieldValue)==null||r.call(n,l.name,[...t]))}return x({add:B,remove:R,getRowData:D,getRowsData:q,setRowData:v}),(a,o)=>(e.openBlock(),e.createBlock(e.unref(p.ApForm).FormItem,e.mergeProps(a.formItem,{name:a.name,label:a.label}),{default:e.withCtx(()=>[e.createVNode(e.unref(E.Table),e.mergeProps(e.unref(s.omit)(l,["name","maxLength"]),{class:[e.unref(i)(),e.unref(b)==="admin"?e.unref(i)("admin"):null],columns:e.unref(y),"data-source":u.value}),e.createSlots({headerCell:e.withCtx(({column:t})=>{var r,d,c;return[(r=t==null?void 0:t.fieldProps)!=null&&r.required||(c=(d=t==null?void 0:t.fieldProps)==null?void 0:d.rules)!=null&&c.length?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createElementVNode("span",{class:e.normalizeClass(e.unref(w)("header-cell","required"))},"*",2),e.createElementVNode("span",null,e.toDisplayString(t.title),1)],64)):e.createCommentVNode("",!0)]}),_:2},[e.renderList(C,(t,r)=>({name:r,fn:e.withCtx(d=>[e.renderSlot(a.$slots,r,e.normalizeProps(e.guardReactiveProps(d||{})))])}))]),1040,["class","columns","data-source"])]),_:3},16,["name","label"]))}});exports.default=V;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./form-item.vue.js");exports.default=e.default;
@@ -0,0 +1,5 @@
1
+ import { EditableTableFormItemProps, EditableTableProps, EditableColumnType } from '../interface';
2
+ import { ComputedRef } from 'vue';
3
+
4
+ declare const useGetColumns: (props: EditableTableProps | EditableTableFormItemProps) => ComputedRef< EditableColumnType<any, any>[]>;
5
+ export default useGetColumns;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const u=require("vue"),h=require("lodash-unified"),q=require("../utils.js"),d=require("../../ap-table/utils.js");require("../../config-provider/index.js");const s=require("../../ap-table/constants.js"),C=require("ant-design-vue"),F=require("../../config-provider/hooks/use-locale.js"),R=a=>{const{t:i}=F.useLocale(),b=u.computed(()=>{let n=a.columns;return n?(n=n.map(e=>({...e,customRender({value:l,...t}){if(e.customRender)return e.customRender({value:l,...t,column:e});{if(h.isFunction(e.editable)?e.editable(t.text,t.record,t.index):!!e.editable){const y=q.getEditableComponent(e.valueType),o=d.updateFormProps(e,d.getFieldProps(e.fieldProps,{value:l,...t})),r={};a.onFieldChange&&(r[`onUpdate:${o.valuePropName||"value"}`]=T=>{var c;return(c=a.onFieldChange)==null?void 0:c.call(a,t.index,e.dataIndex,T)});const x={name:[a.name,t.index,e.dataIndex],...o||{},placeholder:d.getPlaceholder(i,e.valueType,o==null?void 0:o.placeholder),field:{style:"width: 100%",...(o==null?void 0:o.field)||{},...r}};return u.createVNode(y,x,null)}const p=s.apTableRenderItemMap[e.valueType],g=d.getTableRenderProps(e,{value:l,...t});return f(e,l,u.createVNode(p,u.mergeProps(g,{mode:"read"}),null))}}})),n):[]});function f(n,e,l){return s.noRenderAsFormItemValueList.includes(n.valueType)?l:n.copyable||n.ellipsis?u.createVNode(C.Typography.Text,{copyable:n.copyable?{text:e,tooltip:!1}:!1,ellipsis:n.ellipsis?{tooltip:e}:!1,content:l},null):l}return b};exports.default=R;
@@ -0,0 +1,5 @@
1
+ import { default as EditableTable } from './index.vue';
2
+ import { default as EditableTableFormItem } from './form-item.vue';
3
+
4
+ export * from './interface';
5
+ export { EditableTable, EditableTableFormItem };
@@ -0,0 +1 @@
1
+ "use strict";require("./index.vue2.js");require("./form-item.vue2.js");require("./interface.js");
@@ -0,0 +1,196 @@
1
+ import { EditableTableProps, EditableColumnType } from './interface';
2
+ import { NamePath, ValidateOptions } from 'ant-design-vue/es/form/interface';
3
+ import { DefineComponent, ComponentOptionsMixin, PublicProps, ExtractPropTypes, PropType, CSSProperties } from 'vue';
4
+ import { SpinSize } from 'ant-design-vue/es/spin/Spin';
5
+ import { VueTypeValidableDef } from '../../node_modules/vue-types';
6
+ import { TablePaginationConfig } from 'ant-design-vue';
7
+ import { TableLayout, GetRowKey } from 'ant-design-vue/es/vc-table/interface';
8
+ import { SortOrder } from 'ant-design-vue/es/table/interface';
9
+ import { TriggerType } from 'ant-design-vue/es/tooltip/abstractTooltipProps';
10
+ import { TooltipPlacement, AdjustOverflow } from 'ant-design-vue/es/tooltip';
11
+ import { LiteralUnion } from 'ant-design-vue/es/_util/type';
12
+ import { PresetColorType } from 'ant-design-vue/es/_util/colors';
13
+ import { AlignType, BuildInPlacements } from 'ant-design-vue/es/vc-trigger/interface';
14
+
15
+ type EditableTableSlots = {
16
+ default: any;
17
+ emptyText?: any;
18
+ expandIcon?: any;
19
+ title?: any;
20
+ footer?: any;
21
+ summary?: any;
22
+ expandedRowRender?: any;
23
+ expandColumnTitle?: any;
24
+ customFilterIcon?: any;
25
+ customFilterDropdown?: any;
26
+ headerCell?: (props: {
27
+ title: any;
28
+ column: EditableColumnType;
29
+ }) => void;
30
+ };
31
+ declare function resetFields(): void;
32
+ declare function validateFields(nameList?: NamePath[] | string, options?: ValidateOptions): Promise<any>;
33
+ declare function add(defaultValue?: any): void;
34
+ declare function remove(index: number): void;
35
+ declare function getRowsData(): any[];
36
+ declare function getRowData(index: number): any;
37
+ declare function setRowData(index: number, payload: any): void;
38
+ declare const _default: __VLS_WithTemplateSlots< DefineComponent<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<EditableTableProps<any>>, {
39
+ bordered: boolean;
40
+ childrenColumnName: string;
41
+ defaultExpandAllRows: boolean;
42
+ expandFixed: boolean;
43
+ expandRowByClick: boolean;
44
+ indentSize: number;
45
+ rowKey: string;
46
+ showExpandColumn: boolean;
47
+ showHeader: boolean;
48
+ showSorterTooltip: boolean;
49
+ size: string;
50
+ sortDirections: () => string[];
51
+ pagination: boolean;
52
+ loading: undefined;
53
+ name: string;
54
+ tableLayout: string;
55
+ }>, {
56
+ resetFields: typeof resetFields;
57
+ validateFields: typeof validateFields;
58
+ add: typeof add;
59
+ remove: typeof remove;
60
+ getRowData: typeof getRowData;
61
+ getRowsData: typeof getRowsData;
62
+ setRowData: typeof setRowData;
63
+ }, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
64
+ "update:value": (...args: any[]) => void;
65
+ }, string, PublicProps, Readonly< ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<EditableTableProps<any>>, {
66
+ bordered: boolean;
67
+ childrenColumnName: string;
68
+ defaultExpandAllRows: boolean;
69
+ expandFixed: boolean;
70
+ expandRowByClick: boolean;
71
+ indentSize: number;
72
+ rowKey: string;
73
+ showExpandColumn: boolean;
74
+ showHeader: boolean;
75
+ showSorterTooltip: boolean;
76
+ size: string;
77
+ sortDirections: () => string[];
78
+ pagination: boolean;
79
+ loading: undefined;
80
+ name: string;
81
+ tableLayout: string;
82
+ }>>> & {
83
+ "onUpdate:value"?: ((...args: any[]) => any) | undefined;
84
+ }, {
85
+ loading: boolean | Partial< ExtractPropTypes<{
86
+ prefixCls: StringConstructor;
87
+ spinning: {
88
+ type: BooleanConstructor;
89
+ default: any;
90
+ };
91
+ size: PropType<SpinSize>;
92
+ wrapperClassName: StringConstructor;
93
+ tip: VueTypeValidableDef<any>;
94
+ delay: NumberConstructor;
95
+ indicator: VueTypeValidableDef<any>;
96
+ }>>;
97
+ size: "small" | "middle" | "large";
98
+ pagination: false | TablePaginationConfig;
99
+ name: any;
100
+ bordered: boolean;
101
+ tableLayout: TableLayout;
102
+ rowKey: string | GetRowKey<any>;
103
+ sortDirections: SortOrder[];
104
+ showSorterTooltip: boolean | Partial< ExtractPropTypes<{
105
+ title: VueTypeValidableDef<any>;
106
+ trigger: PropType< TriggerType | TriggerType[]>;
107
+ open: {
108
+ type: BooleanConstructor;
109
+ default: any;
110
+ };
111
+ visible: {
112
+ type: BooleanConstructor;
113
+ default: any;
114
+ };
115
+ placement: PropType<TooltipPlacement>;
116
+ color: PropType<LiteralUnion<PresetColorType>>;
117
+ transitionName: StringConstructor;
118
+ overlayStyle: {
119
+ type: PropType<CSSProperties>;
120
+ default: CSSProperties;
121
+ };
122
+ overlayInnerStyle: {
123
+ type: PropType<CSSProperties>;
124
+ default: CSSProperties;
125
+ };
126
+ overlayClassName: StringConstructor;
127
+ openClassName: StringConstructor;
128
+ prefixCls: StringConstructor;
129
+ mouseEnterDelay: NumberConstructor;
130
+ mouseLeaveDelay: NumberConstructor;
131
+ getPopupContainer: PropType<(triggerNode: HTMLElement) => HTMLElement>;
132
+ arrowPointAtCenter: {
133
+ type: BooleanConstructor;
134
+ default: any;
135
+ };
136
+ arrow: {
137
+ type: PropType<boolean | {
138
+ pointAtCenter?: boolean | undefined;
139
+ }>;
140
+ default: boolean | {
141
+ pointAtCenter?: boolean | undefined;
142
+ };
143
+ };
144
+ autoAdjustOverflow: {
145
+ type: PropType<boolean | AdjustOverflow>;
146
+ default: boolean | AdjustOverflow;
147
+ };
148
+ destroyTooltipOnHide: {
149
+ type: BooleanConstructor;
150
+ default: any;
151
+ };
152
+ align: {
153
+ type: PropType<AlignType>;
154
+ default: AlignType;
155
+ };
156
+ builtinPlacements: {
157
+ type: PropType<BuildInPlacements>;
158
+ default: BuildInPlacements;
159
+ };
160
+ children: ArrayConstructor;
161
+ onVisibleChange: PropType<(vis: boolean) => void>;
162
+ 'onUpdate:visible': PropType<(vis: boolean) => void>;
163
+ onOpenChange: PropType<(vis: boolean) => void>;
164
+ 'onUpdate:open': PropType<(vis: boolean) => void>;
165
+ }>>;
166
+ showHeader: boolean;
167
+ expandFixed: boolean | "left" | "right";
168
+ expandRowByClick: boolean;
169
+ defaultExpandAllRows: boolean;
170
+ indentSize: number;
171
+ showExpandColumn: boolean;
172
+ childrenColumnName: string;
173
+ }, {}>, Readonly<EditableTableSlots> & EditableTableSlots>;
174
+ export default _default;
175
+ type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
176
+ type __VLS_TypePropsToRuntimeProps<T> = {
177
+ [K in keyof T]-?: {} extends Pick<T, K> ? {
178
+ type: PropType<__VLS_NonUndefinedable<T[K]>>;
179
+ } : {
180
+ type: PropType<T[K]>;
181
+ required: true;
182
+ };
183
+ };
184
+ type __VLS_WithDefaults<P, D> = {
185
+ [K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_Prettify<P[K] & {
186
+ default: D[K];
187
+ }> : P[K];
188
+ };
189
+ type __VLS_Prettify<T> = {
190
+ [K in keyof T]: T[K];
191
+ } & {};
192
+ type __VLS_WithTemplateSlots<T, S> = T & {
193
+ new (): {
194
+ $slots: S;
195
+ };
196
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),E=require("ant-design-vue"),d=require("../ap-form/index.js"),i=require("lodash-unified");require("../config-provider/index.js");require("../hooks/index.js");const N=require("../utils/index.js"),S=require("./hooks/use-get-columns.js");require("./style/index.css");const k=require("../config-provider/hooks/use-namespace.js"),P=require("../config-provider/hooks/use-global-config.js"),L=require("../hooks/useControllableValue.js"),j=e.defineComponent({name:"EditableTable",__name:"index",props:{dropdownPrefixCls:{},pagination:{type:[Boolean,Object],default:!1},loading:{type:[Boolean,Object],default:void 0},size:{default:"middle"},bordered:{type:Boolean,default:!1},locale:{},onChange:{},onResizeColumn:{},rowSelection:{},getPopupContainer:{},scroll:{},sortDirections:{default:()=>["ascend","descend"]},showSorterTooltip:{type:[Boolean,Object],default:!0},prefixCls:{},rowKey:{default:"key"},tableLayout:{default:"fixed"},rowClassName:{},title:{},footer:{},id:{},showHeader:{type:Boolean,default:!0},components:{},customRow:{},customHeaderRow:{},direction:{},expandFixed:{type:[String,Boolean],default:!1},expandColumnWidth:{},expandedRowKeys:{},defaultExpandedRowKeys:{},expandedRowRender:{},expandRowByClick:{type:Boolean,default:!1},expandIcon:{},onExpand:{},onExpandedRowsChange:{},defaultExpandAllRows:{type:Boolean,default:!1},indentSize:{default:15},expandIconColumnIndex:{},showExpandColumn:{type:Boolean,default:!0},expandedRowClassName:{},childrenColumnName:{default:"children"},rowExpandable:{},sticky:{type:[Boolean,Object]},transformCellText:{},columns:{},value:{},defaultValue:{},"onUpdate:value":{},maxLength:{},name:{default:"ap-editable-table-inner-name"},onFieldChange:{}},emits:["update:value"],setup(p,{expose:m,emit:x}){const l=p,{b:f,em:C}=k.useNamespace("editable-table"),g=P.useGlobalConfig("uiMode","aplus"),h=e.useSlots(),w=x,{value:u,updateValue:y}=L.useControllableValue(l,w),s=e.ref(),b=d.ApForm.useWatch(l.name,s);e.watch(()=>b.value,n=>{var o;y(n),(o=l.onChange)==null||o.call(l,n)});const v=S.default(l);function R(){var n;(n=s.value)==null||n.resetFields()}async function B(n,o){var t;const a=await((t=s.value)==null?void 0:t.validateFields(n,o));return a==null?void 0:a[l.name]}function q(n){var a,t,r;const o=((a=e.unref(u))==null?void 0:a.length)||0;N.isDef(l.maxLength)&&o>=l.maxLength||(r=(t=s.value)==null?void 0:t.setFieldValue)==null||r.call(t,l.name,[...e.unref(u)||[],n||{}])}function F(n){var a,t;const o=i.cloneDeep(e.unref(u)||[]);o.splice(n,1),(t=(a=s.value)==null?void 0:a.setFieldValue)==null||t.call(a,l.name,[...o])}function D(){return e.unref(u)}function V(n){var o;return(o=e.unref(u))==null?void 0:o[n]}function _(n,o){var t,r;const a=i.cloneDeep(e.unref(u));a[n]&&(a[n]={...a[n],...o},(r=(t=s.value)==null?void 0:t.setFieldValue)==null||r.call(t,l.name,[...a]))}return m({resetFields:R,validateFields:B,add:q,remove:F,getRowData:V,getRowsData:D,setRowData:_}),(n,o)=>(e.openBlock(),e.createBlock(e.unref(d.ApForm),{"initial-values":{[l.name]:e.unref(u)},ref_key:"formRef",ref:s},{default:e.withCtx(()=>[e.createVNode(e.unref(d.ApForm).FormItem,{name:n.name,"no-style":""},{default:e.withCtx(()=>[e.createVNode(e.unref(E.Table),e.mergeProps(e.unref(i.omit)(l,["name","value","onUpdate:value","maxLength"]),{class:[e.unref(f)(),e.unref(g)==="admin"?e.unref(f)("admin"):null],columns:e.unref(v),"data-source":e.unref(u)}),e.createSlots({headerCell:e.withCtx(({column:a})=>{var t,r,c;return[(t=a==null?void 0:a.fieldProps)!=null&&t.required||(c=(r=a==null?void 0:a.fieldProps)==null?void 0:r.rules)!=null&&c.length?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createElementVNode("span",{class:e.normalizeClass(e.unref(C)("header-cell","required"))},"*",2),e.createElementVNode("span",null,e.toDisplayString(a.title),1)],64)):e.createCommentVNode("",!0)]}),_:2},[e.renderList(h,(a,t)=>({name:t,fn:e.withCtx(r=>[e.renderSlot(n.$slots,t,e.normalizeProps(e.guardReactiveProps(r||{})))])}))]),1040,["class","columns","data-source"])]),_:3},8,["name"])]),_:3},8,["initial-values"]))}});exports.default=j;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./index.vue.js");exports.default=e.default;
@@ -1,6 +1,8 @@
1
1
  import { ColumnType, TableProps } from 'ant-design-vue/es/table';
2
2
  import { ApTableValueFields, ValueEnum } from '../ap-table';
3
- import { InternalNamePath, NamePath, ValidateOptions } from 'ant-design-vue/es/form/interface';
3
+ import { NamePath, ValidateOptions } from 'ant-design-vue/es/form/interface';
4
+ import { DataIndex } from 'ant-design-vue/es/vc-table/interface';
5
+ import { FormItemProps } from 'ant-design-vue';
4
6
 
5
7
  export type EditableColumnType<ValueType extends keyof ApTableValueFields = 'text', RecordType = any> = Omit<ColumnType<RecordType>, 'children'> & {
6
8
  /**
@@ -21,6 +23,7 @@ export type EditableColumnType<ValueType extends keyof ApTableValueFields = 'tex
21
23
  valueEnum?: ValueEnum;
22
24
  /**
23
25
  * 自定义表单
26
+ * @deprecated 未实现,请使用`customRender`
24
27
  */
25
28
  customRenderFormItem?: (config: EditableColumnType<ValueType, RecordType>) => any;
26
29
  /**
@@ -45,9 +48,13 @@ export type EditableTableProps<RecordType = any> = Omit<TableProps<RecordType>,
45
48
  */
46
49
  columns?: EditableColumnType<any, RecordType>[];
47
50
  /**
48
- * 同dataSource,传入的数组数据将作为表单的初始数据
51
+ * 表格数据v-model
49
52
  */
50
53
  value?: RecordType[];
54
+ /**
55
+ * 表格数据默认值(只生效一次,如果是异步数据,请使用`v-model`)
56
+ */
57
+ defaultValue?: RecordType[];
51
58
  'onUpdate:value'?: (value: RecordType[]) => void;
52
59
  /**
53
60
  * 数据修改时触发onChange(也包含数据的删除)
@@ -60,12 +67,72 @@ export type EditableTableProps<RecordType = any> = Omit<TableProps<RecordType>,
60
67
  */
61
68
  maxLength?: number;
62
69
  /**
63
- * 设置可编辑表格的名字,如果是作为其它表单的一部分,需要设置此字段
70
+ * 设置可编辑表格的名字,如果不传,将会使用默认值
64
71
  */
65
72
  name?: any;
73
+ /**
74
+ * 当字段值变更的时候触发(注意,向表单设置值并不会触发)
75
+ * @returns
76
+ */
77
+ onFieldChange?: (rowIndex: number, fieldName: DataIndex, newValue: any) => void;
78
+ };
79
+ export type EditableTableFormItemProps<RecordType = any> = Omit<EditableTableProps<RecordType>, 'name'> & {
80
+ label?: string;
81
+ /**
82
+ * FormItem的name 暂不支持传入数组类型
83
+ */
84
+ name: string;
85
+ /**
86
+ * 额外的表单项配置属性
87
+ */
88
+ formItem?: Partial<Omit<FormItemProps, 'name' | 'label'>>;
66
89
  };
67
- export type EditableTableExpose<ModelType = any> = {
90
+ export type EditableTableExpose<ModelType = any, RecordType = any> = {
91
+ /**
92
+ * 重设可编辑表格数据
93
+ * @param name
94
+ * @returns
95
+ */
68
96
  resetFields: (name?: NamePath) => void;
97
+ /**
98
+ * 作为单独的表单使用时,校验表格数据
99
+ * @param nameList
100
+ * @param options
101
+ * @returns
102
+ */
69
103
  validateFields: (nameList?: NamePath[] | string, options?: ValidateOptions) => Promise<Partial<ModelType>> | undefined;
70
- getFieldsValue: (nameList?: true | InternalNamePath[]) => Partial<ModelType> | undefined;
104
+ /**
105
+ * 添加一行数据
106
+ * @param defaultValue
107
+ * @returns
108
+ */
109
+ add: (defaultValue?: Partial<RecordType>) => void;
110
+ /**
111
+ * 删除一行数据
112
+ * @param index
113
+ * @returns
114
+ */
115
+ remove: (index: number) => void;
116
+ /**
117
+ * 获取所有行的数据
118
+ * @returns
119
+ */
120
+ getRowsData: () => RecordType[];
121
+ /**
122
+ * 获取指定行的数据
123
+ * @returns
124
+ */
125
+ getRowData: (index: number) => RecordType | undefined;
126
+ /**
127
+ * 设置表格行数据(数据会进行浅层合并)
128
+ * @param index
129
+ * @param data
130
+ * @returns
131
+ */
132
+ setRowData: (index: number, data: Partial<RecordType>) => void;
71
133
  };
134
+ /**
135
+ * 可编辑表格作为表单项暴露的实例
136
+ * @description 作为Form表单使用时不再暴露表单相关的API
137
+ */
138
+ export type EditableTableFormItemExpose<ModelType = any, RecordType = any> = Omit<EditableTableExpose<ModelType, RecordType>, 'resetFields' | 'validateFields'>;
@@ -0,0 +1 @@
1
+ "use strict";