Commit cddedae720b4ae48c7b59a5114aff5d55dcf1c88
1 parent
7d0bbda6
Exists in
master
and in
2 other branches
feat: 优化表单必填判断
Showing
1 changed file
with
29 additions
and
26 deletions
Show diff stats
packages/schema-page/index.vue
| @@ -99,33 +99,37 @@ | @@ -99,33 +99,37 @@ | ||
| 99 | <template v-else> | 99 | <template v-else> |
| 100 | <!-- 新增/修改弹出框内容 --> | 100 | <!-- 新增/修改弹出框内容 --> |
| 101 | <template v-if="['new', 'edit'].includes(modalType)"> | 101 | <template v-if="['new', 'edit'].includes(modalType)"> |
| 102 | - <z-schema-form | ||
| 103 | - :key="`form-${modalType}`" | ||
| 104 | - ref="form" | ||
| 105 | - :value="valueForm" | ||
| 106 | - @input="e => $emit('update:value-form', e)" | ||
| 107 | - :schema="schema.form" | ||
| 108 | - @submit="onFormSubmit" | ||
| 109 | - @cancel="closeDialog" | ||
| 110 | - > | ||
| 111 | - <template v-for="item in getSlotKeys('form-')" #[item.name]="slotScope"> | ||
| 112 | - <slot :name="item.slot" v-bind="{ ..._slotScope, ...slotScope }"></slot> | ||
| 113 | - </template> | ||
| 114 | - <template #footer="{ submit, cancel }"> | ||
| 115 | - <div style="text-align: center; width: 100%"> | ||
| 116 | - <el-button :size="_size" type="primary" @click="submit" :loading="submitting">确定</el-button> | ||
| 117 | - <el-button :size="_size" plain @click="cancel">取消</el-button> | ||
| 118 | - </div> | ||
| 119 | - </template> | ||
| 120 | - </z-schema-form> | 102 | + <template v-if="schema.form"> |
| 103 | + <z-schema-form | ||
| 104 | + :key="`form-${modalType}`" | ||
| 105 | + ref="form" | ||
| 106 | + :value="valueForm" | ||
| 107 | + @input="e => $emit('update:value-form', e)" | ||
| 108 | + :schema="schema.form" | ||
| 109 | + @submit="onFormSubmit" | ||
| 110 | + @cancel="closeDialog" | ||
| 111 | + > | ||
| 112 | + <template v-for="item in getSlotKeys('form-')" #[item.name]="slotScope"> | ||
| 113 | + <slot :name="item.slot" v-bind="{ ..._slotScope, ...slotScope }"></slot> | ||
| 114 | + </template> | ||
| 115 | + <template #footer="{ submit, cancel }"> | ||
| 116 | + <div style="text-align: center; width: 100%"> | ||
| 117 | + <el-button :size="_size" type="primary" @click="submit" :loading="submitting">确定</el-button> | ||
| 118 | + <el-button :size="_size" plain @click="cancel">取消</el-button> | ||
| 119 | + </div> | ||
| 120 | + </template> | ||
| 121 | + </z-schema-form> | ||
| 122 | + </template> | ||
| 121 | </template> | 123 | </template> |
| 122 | <!-- 详情弹出框内容 --> | 124 | <!-- 详情弹出框内容 --> |
| 123 | <template v-else-if="modalType === 'detail'"> | 125 | <template v-else-if="modalType === 'detail'"> |
| 124 | - <z-schema-form key="form-detail" ref="form" v-model="detail" :schema="schema.detail || detailSchema"> | ||
| 125 | - <template v-for="item in getSlotKeys('detail-')" #[item.name]="slotScope"> | ||
| 126 | - <slot :name="item.slot" v-bind="{ ..._slotScope, ...slotScope }"></slot> | ||
| 127 | - </template> | ||
| 128 | - </z-schema-form> | 126 | + <template v-if="schema.form || schema.detail"> |
| 127 | + <z-schema-form key="form-detail" ref="form" v-model="detail" :schema="schema.detail || detailSchema"> | ||
| 128 | + <template v-for="item in getSlotKeys('detail-')" #[item.name]="slotScope"> | ||
| 129 | + <slot :name="item.slot" v-bind="{ ..._slotScope, ...slotScope }"></slot> | ||
| 130 | + </template> | ||
| 131 | + </z-schema-form> | ||
| 132 | + </template> | ||
| 129 | </template> | 133 | </template> |
| 130 | </template> | 134 | </template> |
| 131 | </div> | 135 | </div> |
| @@ -189,7 +193,7 @@ export default { | @@ -189,7 +193,7 @@ export default { | ||
| 189 | modalType: this.dialogType || 'none', | 193 | modalType: this.dialogType || 'none', |
| 190 | modalTitle: this.dialogTitle || '', | 194 | modalTitle: this.dialogTitle || '', |
| 191 | modalProps: {}, | 195 | modalProps: {}, |
| 192 | - detailSchema: filterout(cloneDeep(this.schema.form), ['is', 'rules']), | 196 | + detailSchema: filterout(cloneDeep(this.schema.form || {}), ['is', 'rules']), |
| 193 | detail: this.valueDetail || {}, | 197 | detail: this.valueDetail || {}, |
| 194 | tableData: this.valueTable || [], | 198 | tableData: this.valueTable || [], |
| 195 | loading: false, | 199 | loading: false, |
| @@ -201,7 +205,6 @@ export default { | @@ -201,7 +205,6 @@ export default { | ||
| 201 | if (this.auto || this.schema.auto) { | 205 | if (this.auto || this.schema.auto) { |
| 202 | this.onSearch(); | 206 | this.onSearch(); |
| 203 | } | 207 | } |
| 204 | - console.log(this); | ||
| 205 | }, | 208 | }, |
| 206 | watch: { | 209 | watch: { |
| 207 | valueDetail(val) { | 210 | valueDetail(val) { |