Browse Source

protable暴露formData属性

tongshangming 2 years ago
parent
commit
b46fc8da0b

+ 4 - 2
src/components/ProTable.vue

@@ -35,7 +35,7 @@ const props = withDefaults(defineProps<Props>(), {
   showToolbar: true
 })
 
-const emits = defineEmits(['click-create', 'click-edit'])
+const emits = defineEmits(['click-create', 'click-edit', 'checkbox-change'])
 
 const slots = useSlots()
 
@@ -124,6 +124,7 @@ const refresh = () => {
 const multipleSelection = ref<any[]>([])
 const handleSelectionChange = () => {
   multipleSelection.value = xTable.value.getCheckboxRecords()
+  emits('checkbox-change', multipleSelection.value)
 }
 // ============== 表格部分结束 ===============
 
@@ -210,7 +211,8 @@ defineExpose({
   handleCreate,
   handleDelete,
   handleUpdate,
-  refresh
+  refresh,
+  formData
 })
 </script>
 

+ 2 - 1
src/components/form/AdvancedForm.vue

@@ -15,7 +15,8 @@ const formData = computed(() => {
     props.formConfig?.formItems.forEach(item => {
       item.group.forEach(element => {
         // 避免修改当前表单项value重置其他表单项的value
-        res[element.name] = res[element.name] && element.value !== undefined ? res[element.name] : element.value
+        res[element.name] =
+          res[element.name] !== undefined && element.value !== undefined ? res[element.name] : element.value
       })
     })
     console.log(res)

+ 1 - 1
src/components/form/BasicForm.vue

@@ -14,7 +14,7 @@ const formData = computed(() => {
     const res = props.formData
     props.formConfig?.formItems.forEach(item => {
       // 避免修改当前表单项value重置其他表单项的value
-      res[item.name] = res[item.name] && item.value !== undefined ? res[item.name] : item.value
+      res[item.name] = res[item.name] !== undefined && item.value !== undefined ? res[item.name] : item.value
     })
     return res
   }

+ 11 - 4
src/views/form/Basic.vue

@@ -1,6 +1,8 @@
 <script lang="ts" setup>
 import type { BasicForm } from '@/types/form'
 
+const formData = reactive<any>({})
+
 const formConfig = reactive<BasicForm>({
   span: 24,
   props: {
@@ -40,6 +42,13 @@ const formConfig = reactive<BasicForm>({
         maxlength: 11
       }
     },
+    {
+      label: '开关',
+      value: true,
+      name: 'ss',
+      type: 'switch',
+      props: {}
+    },
     {
       label: '字典',
       value: '',
@@ -145,7 +154,7 @@ const formConfig = reactive<BasicForm>({
       events: {
         change(item: any) {
           console.log(item)
-          formConfig.formItems[0].value = undefined
+          formData.name = 'c'
         }
       }
     },
@@ -157,7 +166,7 @@ const formConfig = reactive<BasicForm>({
     },
     {
       label: '文件',
-      value: '',
+      value: [],
       name: 'file',
       type: 'upload',
       props: {
@@ -176,8 +185,6 @@ const formConfig = reactive<BasicForm>({
   ]
 })
 
-const formData = reactive({})
-
 const create = (data: any) => {
   console.log(data)
 }

+ 1 - 1
src/views/miniprogram/Question.vue

@@ -39,7 +39,7 @@ const formConfig = reactive<BasicForm>({
     },
     {
       label: '是否使用',
-      value: '',
+      value: true,
       name: 'isEnable',
       type: 'switch'
     },