lanan-system-vue/src/views/drivingSchool/student/form/DlDriveSchoolStudentForm.vue
2025-04-24 17:26:14 +08:00

222 lines
7.4 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<div class="app-container">
<!-- 对话框(添加 / 修改) -->
<el-dialog :title="dialogTitle" :visible.sync="dialogVisible" width="45%" v-dialogDrag append-to-body>
<el-form ref="formRef" :model="formData" :rules="formRules" v-loading="formLoading" label-width="100px">
<el-row>
<el-col :span="12">
<el-form-item label="姓名" prop="name">
<el-input v-model="formData.name" placeholder="请输入姓名"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="年龄" prop="age">
<el-input v-model="formData.age" placeholder="请输入年龄"/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="性别" prop="sex">
<el-radio-group v-model="formData.sex">
<el-radio v-for="dict in this.getDictDatas(DICT_TYPE.SYSTEM_USER_SEX)"
:key="dict.value" :label="dict.value">{{ dict.label }}
</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="联系电话" prop="phone">
<el-input v-model="formData.phone" placeholder="请输入联系电话"/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="身份证号" prop="idCard">
<el-input v-model="formData.idCard" placeholder="请输入身份证号"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="工作单位" prop="workName">
<el-input v-model="formData.workName" placeholder="请输入工作单位"/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="户籍地址" prop="registAddress">
<el-input v-model="formData.registAddress" placeholder="请输入户籍地址"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="家庭住址" prop="address">
<el-input v-model="formData.address" placeholder="请输入家庭住址"/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="拿证时间" prop="passTime">
<el-date-picker clearable
v-model="formData.passTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择拿证时间">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="毕业时间" prop="gradTime">
<el-date-picker clearable
v-model="formData.gradTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择毕业时间">
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="备注" prop="remark">
<el-input type="textarea" v-model="formData.remark" placeholder="请输入备注"/>
</el-form-item>
</el-col>
</el-row>
<!-- <el-form-item label="人员类型" prop="type">-->
<!-- <el-select v-model="formData.type" placeholder="请选择人员类型(暂留)">-->
<!-- <el-option label="请选择字典生成" value=""/>-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<el-form-item label="证件照" prop="idPhoto">
<ImageUpload v-model="formData.idPhoto" />
</el-form-item>
<el-form-item label="生活照" prop="lifePhoto">
<ImageUpload v-model="formData.lifePhoto" />
</el-form-item>
<el-form-item label="其他照片" prop="otherPhoto">
<ImageUpload v-model="formData.otherPhoto" />
</el-form-item>
<el-form-item label="体检报告" prop="examinationReport">
<ImageUpload v-model="formData.examinationReport" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm" :disabled="formLoading"> </el-button>
<el-button @click="dialogVisible = false"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import * as DlDriveSchoolStudentApi from '@/views/drivingSchool/student/studentApi';
export default {
name: "DlDriveSchoolStudentForm",
components: {},
data() {
return {
// 弹出层标题
dialogTitle: "",
// 是否显示弹出层
dialogVisible: false,
// 表单的加载中1修改时的数据加载2提交的按钮禁用
formLoading: false,
// 表单参数
formData: {
name: undefined,
age: undefined,
sex: undefined,
phone: undefined,
idCard: undefined,
workName: undefined,
registAddress: undefined,
address: undefined,
type: undefined,
remark: undefined,
userId: undefined,
idPhoto: undefined,
lifePhoto: undefined,
otherPhoto: undefined,
examinationReport: undefined,
},
// 表单校验
formRules: {
sex: [{required: true, message: '性别不能为空', trigger: 'blur'}],
},
};
},
methods: {
/** 打开弹窗 */
async open(id) {
this.dialogVisible = true;
this.reset();
// 修改时,设置数据
if (id) {
this.formLoading = true;
try {
const res = await DlDriveSchoolStudentApi.getDlDriveSchoolStudent(id);
this.formData = res.data;
this.title = "修改驾校学员";
} finally {
this.formLoading = false;
}
}
this.title = "新增驾校学员";
},
/** 提交按钮 */
async submitForm() {
// 校验主表
await this.$refs["formRef"].validate();
this.formLoading = true;
try {
const data = this.formData;
// 修改的提交
if (data.id) {
await DlDriveSchoolStudentApi.updateDlDriveSchoolStudent(data);
this.$modal.msgSuccess("修改成功");
this.dialogVisible = false;
this.$emit('success');
return;
}
// 添加的提交
await DlDriveSchoolStudentApi.createDlDriveSchoolStudent(data);
this.$modal.msgSuccess("新增成功");
this.dialogVisible = false;
this.$emit('success');
} finally {
this.formLoading = false;
}
},
/** 表单重置 */
reset() {
this.formData = {
name: undefined,
age: undefined,
sex: undefined,
phone: undefined,
idCard: undefined,
workName: undefined,
registAddress: undefined,
address: undefined,
type: undefined,
remark: undefined,
userId: undefined,
idPhoto: undefined,
lifePhoto: undefined,
otherPhoto: undefined,
examinationReport:undefined,
};
this.resetForm("formRef");
}
}
};
</script>