lanan-system-vue/src/views/drivingSchool/process/form/processForm.vue
2025-02-19 16:17:56 +08:00

290 lines
10 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="50%" v-dialogDrag append-to-body>
<el-form ref="formRef" :model="formData" :rules="formRules" v-loading="formLoading" label-width="100px">
<el-collapse v-model="activeNames">
<el-collapse-item title="学员课程情况" name="1">
<el-row>
<el-col span="12">
<el-form-item label="课程名称" prop="courseName">
<el-input :readonly="readonly" v-model="formData.courseName"/>
</el-form-item>
</el-col>
<el-col span="12">
<el-form-item label="教练姓名" prop="coachName">
<el-input :readonly="readonly" v-model="formData.coachName"/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col span="12">
<el-form-item label="学员姓名" prop="userName">
<el-input :readonly="readonly" v-model="formData.userName"/>
</el-form-item>
</el-col>
<el-col span="12">
<el-form-item label="学员手机号" prop="userMobile">
<el-input :readonly="readonly" v-model="formData.userMobile"/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col span="12">
<el-form-item label="科目" prop="subject">
<el-input :readonly="readonly" v-model="formData.subject"/>
</el-form-item>
</el-col>
<el-col span="12">
<el-form-item label="考试次数" prop="examNum">
<el-input :readonly="readonly" v-model="formData.examNum"/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col span="12">
<el-form-item label="当前状态" prop="status">
<el-select :disabled="readonly" v-model="formData.status" placeholder="请选择">
<el-option
v-for="item in statusOptions"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col span="12">
<el-form-item label="考试情况" prop="examStatus">
<el-select :disabled="readonly" v-model="formData.examStatus" placeholder="请选择">
<el-option
v-for="item in examStatusOptions"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col span="12">
<el-form-item label="考试分数" prop="examScore">
<el-input :readonly="readonly" v-model="formData.examScore"/>
</el-form-item>
</el-col>
<el-col span="12">
<el-form-item label="考试时间" prop="examTime">
<el-date-picker :readonly="readonly" clearable v-model="formData.examTime" type="date" value-format="timestamp" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="备注" prop="remark">
<el-input type="textarea" :readonly="readonly" v-model="formData.remark" placeholder="请输入备注" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="证明材料" prop="images">
<image-upload v-model="formData.images"/>
</el-form-item>
</el-col>
</el-row>
</el-collapse-item>
<el-collapse-item title="财务审核" name="2">
<el-row>
<el-col :span="24">
<el-form-item label="是否通过" prop="financePass">
<el-select :disabled="readonly" v-model="formData.financePass" placeholder="待审核">
<el-option
v-for="item in financePassOption"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="审批意见" prop="financeRemark">
<el-input type="textarea" :readonly="readonly" v-model="formData.financeRemark" placeholder="请输入财务审核备注" />
</el-form-item>
</el-col>
</el-row>
</el-collapse-item>
</el-collapse>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button v-if="!readonly" type="primary" @click="submitForm" :readonly="formLoading"> </el-button>
<el-button @click="dialogVisible = false"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import * as processApi from '@/views/drivingSchool/process/api';
export default {
name: "processForm",
components: {
},
data() {
return {
readonly:true,
// 弹出层标题
dialogTitle: "",
// 是否显示弹出层
dialogVisible: false,
activeNames: ['1','2'],
// 表单的加载中1修改时的数据加载2提交的按钮禁用
formLoading: false,
statusOptions:[
{
value:'0',
label:'未完成'
},
{
value:'1',
label:'训练中'
},
{
value:'2',
label:'已完成'
}
],
examStatusOptions:[
{
value:null,
label:'未送考'
},{
value:'1',
label:'已通过'
},{
value:'9',
label:'已送考'
},{
value:'0',
label:'未通过'
}
],
financePassOption:[
{
value:false,
label:'未通过'
},
{
value:true,
label:'通过'
},
],
// 表单参数
formData: {
courseId: undefined,
courseName: undefined,
userId: undefined,
userName: undefined,
userMobile: undefined,
coachId: undefined,
coachName: undefined,
subject: undefined,
examNum: undefined,
status: undefined,
examStatus: undefined,
examScore: undefined,
images: undefined,
examTime: undefined,
remark: undefined,
trainTime: undefined,
financePass: undefined,
financeRemark: undefined,
},
// 表单校验
formRules: {
// userId: [{ required: true, message: '用户学员ID不能为空', trigger: 'blur' }],
// userName: [{ required: true, message: '用户(学员)姓名不能为空', trigger: 'blur' }],
// userMobile: [{ required: true, message: '学员手机号不能为空', trigger: 'blur' }],
// coachId: [{ required: true, message: '教练ID不能为空', trigger: 'blur' }],
// examNum: [{ required: true, message: '考试次数第一次考试为1第二次为2...)不能为空', trigger: 'blur' }],
// status: [{ required: true, message: '当前状态0-未开始;1-训练中2-已完成)不能为空', trigger: 'blur' }],
// examStatus: [{ required: true, message: '考试是否合格0未通过1已通过;null 未考试)不能为空', trigger: 'blur' }],
// examScore: [{ required: true, message: '考试分数不能为空', trigger: 'blur' }],
// images: [{ required: true, message: '图片证明材料不能为空', trigger: 'blur' }],
// examTime: [{ required: true, message: '考试时间不能为空', trigger: 'blur' }],
// remark: [{ required: true, message: '备注不能为空', trigger: 'blur' }],
// trainTime: [{ required: true, message: '本科目累计训练时长不能为空', trigger: 'blur' }],
financePass: [{ required: true, message: '财务审核是否通过不能为空', trigger: 'blur' }],
financeRemark: [{ required: true, message: '财务审核备注不能为空', trigger: 'blur' }],
},
};
},
methods: {
/** 打开弹窗 */
async open(id,readonly) {
this.dialogVisible = true;
this.readonly = readonly
this.reset();
// 修改时,设置数据
if (id) {
this.formLoading = true;
try {
const res = await processApi.getprocess(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;
// 添加的提交
await processApi.checkProcess(data);
this.$modal.msgSuccess("审核成功");
this.dialogVisible = false;
this.$emit('success');
} finally {
this.formLoading = false;
}
},
/** 表单重置 */
reset() {
this.formData = {
courseId: undefined,
courseName: undefined,
userId: undefined,
userName: undefined,
userMobile: undefined,
coachId: undefined,
coachName: undefined,
subject: undefined,
examNum: undefined,
status: undefined,
examStatus: undefined,
examScore: undefined,
images: undefined,
examTime: undefined,
remark: undefined,
trainTime: undefined,
financePass: undefined,
financeRemark: undefined,
};
this.resetForm("formRef");
}
}
};
</script>