|
|
- <template>
- <BasicForm @register="registerForm" name="AppOrderCarForm" class="basic-modal-form"/>
- </template>
- <script lang="ts">
- import {defineComponent} from 'vue';
- import {BasicForm, useForm} from '/@/components/Form/index';
- import {appOrderCarFormSchema} from '../AppOrder.data';
- import {defHttp} from '/@/utils/http/axios';
- import { VALIDATE_FAILED } from '/@/utils/common/vxeUtils'
-
- export default defineComponent({
- name:"AppOrderCarForm",
- components: {BasicForm},
- emits:['register'],
- props:{
- disabled: {
- type: Boolean,
- default: false
- }
- },
- setup(props,{emit}) {
- const [registerForm, { setProps, resetFields, setFieldsValue, getFieldsValue, validate, scrollToField }] = useForm({
- schemas: appOrderCarFormSchema,
- showActionButtonGroup: false,
- baseColProps: {span: 12}
- });
- /**
- *初始化加载数据
- */
- function initFormData(url,id){
- if(id){
- defHttp.get({url,params:{id}},{isTransformResponse:false}).then(res=>{
- res.success && setFieldsValue({...res.result[0]});
- })
- }
- setProps({disabled: props.disabled})
- }
- /**
- *获取表单数据
- */
- function getFormData(){
- let formData = getFieldsValue();
- Object.keys(formData).map(k=>{
- if(formData[k] instanceof Array){
- formData[k] = formData[k].join(',')
- }
- });
- return [formData];
- }
- /**
- *表单校验
- */
- function validateForm(index){
- return new Promise((resolve, reject) => {
- // 验证子表表单
- validate().then(()=>{
- return resolve()
- }).catch(({ errorFields }) => {
- return reject({ error: VALIDATE_FAILED, index, errorFields: errorFields, scrollToField: scrollToField });
- });
- })
- }
- return {
- registerForm,
- resetFields,
- initFormData,
- getFormData,
- validateForm
- }
- }
- })
- </script>
- <style lang="less" scoped>
- .basic-modal-form {
- overflow: auto;
- height: 340px;
- }
- </style>
|