@xizs/nuxt-antui 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.
@@ -1,4 +1,4 @@
1
- import { AForm, AFormItem, AInput, ASelect,AInputNumber, LineOutlined, ASwitch, ATextarea, ARadio } from "#components"
1
+ import { AForm, AFormItem, AInput, ASelect,AInputNumber, LineOutlined, ASwitch, ATextarea, ARadio, ARadioGroup, AButton } from "#components"
2
2
 
3
3
  export type FormItemType = {
4
4
  label:string,
@@ -16,10 +16,14 @@ export type FormPropsType = {
16
16
  showSubmit?:boolean
17
17
  }
18
18
 
19
- const FormComs = {
19
+ const FormComs = {
20
20
  input:(form:any,item:FormItemType)=>{
21
21
  return <AInput v-model:value={form[item.key]}></AInput>
22
22
  },
23
+ button:(form:any,item:FormItemType)=>{
24
+ console.log(item.bind)
25
+ return <AButton {...item.bind}>{ item.bind.content}</AButton>
26
+ },
23
27
  textarea:(form:any,item:FormItemType)=>{
24
28
  return <ATextarea v-model:value={form[item.key]}></ATextarea>
25
29
  },
@@ -43,7 +47,10 @@ const FormComs = {
43
47
  return <ASwitch v-model:checked={form[item.key]} {...item.bind}></ASwitch>
44
48
  },
45
49
  radio: (form: any, item: FormItemType) => {
46
- return <ARadio v-model:checked={form[item.key]} {...item.bind}></ARadio>
50
+ return <ARadioGroup v-model:value={form[item.key]} {...item.bind}></ARadioGroup>
51
+ },
52
+ uploadImg: (form: any, item: FormItemType) => {
53
+ return <UploadImg v-model:value={form[item.key]} {...item.bind}></UploadImg>
47
54
  }
48
55
  }
49
56
 
@@ -65,13 +72,18 @@ export default defineComponent({
65
72
  type:Boolean,
66
73
  default:true
67
74
  },
75
+ defaultFormData: {
76
+ type: Object,
77
+ default: () => ({})
78
+ }
68
79
  },
69
80
  setup(props,{expose}){
70
81
 
71
82
  let thisRef = ref(null)
72
- let formData = ref({})
83
+ let formData = ref(props.defaultFormData)
73
84
  let rules = ref({})
74
- props.form.forEach(item=>{
85
+ ADParse(props.form,formData.value).forEach(item=>{
86
+ if(item.key==null) return
75
87
  if(Array.isArray(item.key)){
76
88
  item.key.forEach(key=>{
77
89
  formData.value[key] = item.value??''
@@ -115,9 +127,16 @@ export default defineComponent({
115
127
  return ()=><AForm ref={thisRef} model={formData.value} rules={rules.value} label-col={{ span: 6 }} wrapper-col={{ span: 16 }}>
116
128
  {/* {JSON.stringify(formData.value)} */}
117
129
  {
118
- props.form.map(item=>{
119
- return <AFormItem label={item.label} name={item.key}>
120
- {FormComs[item.is](formData.value,item)}
130
+ ADParse(props.form, formData.value).map(item => {
131
+ if (item.label == null) {
132
+ return typeof item.is === 'function'? item.is(formData.value) :
133
+ FormComs[item.is](formData.value,item)
134
+ }
135
+ return <AFormItem label={item.label} key={item.key} name={item.key} {...item.bind} class={{'hidden':item.show===false}}>
136
+ {
137
+ typeof item.is === 'function'? item.is(formData.value) :
138
+ FormComs[item.is](formData.value,item)
139
+ }
121
140
  </AFormItem>
122
141
  })
123
142
  }
@@ -46,7 +46,7 @@ let dateRange = defineComponent({
46
46
 
47
47
  const FormItems = {
48
48
  input:(form:any,item:TableFormItemType)=>{
49
- return <AInput size="middle" v-model:value={form[item.key]} placeholder={`please input ${item.label}`}></AInput>
49
+ return <AInput size="middle" v-model:value={form[item.key]} placeholder={`请输入 ${item.label}`}></AInput>
50
50
  },
51
51
  select:(form:any,item:TableFormItemType)=>{
52
52
  return <ASelect allowClear class="min-w-[150px]" v-model:value={form[item.key]} options={item.bind?.options} placeholder={`please select ${item.label}`}></ASelect>
@@ -1 +1,77 @@
1
- export const FormItem = {}
1
+ // import type { FormItemType } from "../components/global/Form";
2
+ // import { AForm, AFormItem, AInput, ASelect, AInputNumber, LineOutlined, ASwitch, ATextarea, ARadio } from "#components"
3
+
4
+ // export const FormComs = {
5
+ // input: (form: any, item: FormItemType) =>
6
+ // h(AInput, {
7
+ // value: form[item.key as string],
8
+ // 'onUpdate:value': (val: any) => (form[item.key as string] = val)
9
+ // }),
10
+
11
+ // textarea: (form: any, item: FormItemType) =>
12
+ // h(ATextarea, {
13
+ // value: form[item.key as string],
14
+ // 'onUpdate:value': (val: any) => (form[item.key as string] = val)
15
+ // }),
16
+
17
+ // inputNumber: (form: any, item: FormItemType) =>
18
+ // h(AInputNumber, {
19
+ // ...item.bind,
20
+ // value: form[item.key as string],
21
+ // 'onUpdate:value': (val: any) => (form[item.key as string] = val)
22
+ // }),
23
+
24
+ // inputNumberRange: (form: any, item: FormItemType) =>
25
+ // h(
26
+ // 'div',
27
+ // { class: 'flex items-center gap-2' },
28
+ // [
29
+ // h(AInputNumber, {
30
+ // class: 'flex-1',
31
+ // ...item.bind[0],
32
+ // value: form[item.key[0] as string],
33
+ // 'onUpdate:value': (val: any) => (form[item.key[0] as string] = val)
34
+ // }),
35
+ // h(LineOutlined),
36
+ // h(AInputNumber, {
37
+ // class: 'flex-1',
38
+ // ...item.bind[1],
39
+ // value: form[item.key[1] as string],
40
+ // 'onUpdate:value': (val: any) => (form[item.key[1] as string] = val)
41
+ // })
42
+ // ]
43
+ // ),
44
+
45
+ // select: (form: any, item: FormItemType) =>
46
+ // h(ASelect, {
47
+ // value: form[item.key as string],
48
+ // options: item.bind.options,
49
+ // 'onUpdate:value': (val: any) => (form[item.key as string] = val)
50
+ // }),
51
+
52
+ // countrySelect: (form: any, item: FormItemType) =>
53
+ // h(ASelect, {
54
+ // value: form[item.key as string],
55
+ // options: Const.CountrySelectList(),
56
+ // 'onUpdate:value': (val: any) => (form[item.key as string] = val)
57
+ // }),
58
+
59
+ // switch: (form: any, item: FormItemType) =>
60
+ // h(ASwitch, {
61
+ // ...item.bind,
62
+ // checked: form[item.key as string],
63
+ // 'onUpdate:checked': (val: any) => (form[item.key as string] = val)
64
+ // }),
65
+
66
+ // radio: (form: any, item: FormItemType) =>
67
+ // h(ARadio, {
68
+ // ...item.bind,
69
+ // checked: form[item.key as string],
70
+ // 'onUpdate:checked': (val: any) => (form[item.key as string] = val)
71
+ // }),
72
+
73
+ // // upload: (form: any, item: FormItemType) =>
74
+ // // h(UploadImg, {
75
+ // // ...item.bind
76
+ // // })
77
+ // }
@@ -102,6 +102,7 @@ export const FormModal = (params: FormModalParamsType) => {
102
102
 
103
103
  return () => h(AModal, {
104
104
  title: params.title,
105
+ width: params.width,
105
106
  okText: '提交',
106
107
  cancelText: '取消',
107
108
  confirmLoading: loading.value,
@@ -113,6 +114,7 @@ export const FormModal = (params: FormModalParamsType) => {
113
114
  }, h(Form, {
114
115
  ref: formRef,
115
116
  form: params.form,
117
+ defaultFormData: params.defaultFormData,
116
118
  submit: params.submit,
117
119
  showSubmit: false
118
120
  }))
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@xizs/nuxt-antui",
3
3
  "type": "module",
4
- "version": "0.0.2",
4
+ "version": "0.0.3",
5
5
  "main": "./nuxt.config.ts",
6
6
  "scripts": {
7
7
  "dev": "nuxi dev .playground",