This commit is contained in:
许允枞 2025-04-02 09:17:45 +08:00
parent bdd53f26cf
commit c276b14086
5 changed files with 176 additions and 145 deletions

View File

@ -51,3 +51,20 @@ export function exportSchoolCourseOrderExcel(params) {
responseType: 'blob'
})
}
// 终止驾照报名订单 Excel
export function endOrder(data) {
return request({
url: '/drive/school-course-order/endOrder',
method: 'put',
data: data,
})
}
// 快速创建驾照报名订单
export function fastCreateSchoolCourseOrder(data) {
return request({
url: '/drive/school-course-order/fastCreate',
method: 'post',
data: data
})
}

View File

@ -2,71 +2,21 @@
<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-form-item label="订单号" prop="orderNo">
<el-input v-model="formData.orderNo" placeholder="请输入订单号"/>
</el-form-item>
<el-form-item label="用户姓名" prop="userName">
<el-input v-model="formData.userName" placeholder="请输入用户姓名"/>
</el-form-item>
<el-form-item label="用户手机号" prop="userPhone">
<el-input v-model="formData.userPhone" placeholder="请输入用户手机号"/>
</el-form-item>
<el-form-item label="用户身份证号" prop="userNo">
<el-input v-model="formData.userNo" placeholder="请输入用户身份证号"/>
</el-form-item>
<el-form-item label="性别" prop="userSex">
<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-form-item label="课程名字" prop="courseName">
<el-input v-model="formData.courseName" placeholder="请输入课程名字"/>
</el-form-item>
<el-form-item label="负责教练" prop="coachUserName">
<el-input v-model="formData.coachUserName" placeholder="请输入主负责教练姓名"/>
</el-form-item>
<el-form-item label="订金金额" prop="reserveMoney">
<el-input v-model="formData.reserveMoney" placeholder="请输入订金金额"/>
</el-form-item>
<el-form-item label="是否终止" prop="ifEnd">
<el-radio-group v-model="formData.ifEnd">
<el-radio v-for="item in ifEndRadio"
:key="item.value" :label="item.value">{{ item.label }}
</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="终止原因" prop="endReason">
<el-input v-model="formData.endReason" placeholder="请输入终止原因"/>
</el-form-item>
<el-form-item label="终止时间" prop="endTime">
<el-date-picker clearable v-model="formData.endTime" type="date" value-format="timestamp"
placeholder="选择终止时间"/>
</el-form-item>
<el-form-item label="订单状态" prop="paymentStatus">
<el-select v-model="formData.paymentStatus" placeholder="请选择订单状态">
<el-option v-for="dict in this.getDictDatas(DICT_TYPE.DRIVE_SCHOOL_ORDER_STATUS)"
:key="dict.value" :label="dict.label" :value="dict.value"
<el-form ref="formFastAddRef" :model="formData" :rules="formRules" v-loading="formLoading" label-width="100px">
<!-- <el-form-item label="订单号" prop="orderNo">-->
<!-- <el-input v-model="formData.orderNo" placeholder="请输入订单号"/>-->
<!-- </el-form-item>-->
<el-form-item label="课程选择" prop="cour">
<el-select v-model="formData.courseId" placeholder="请选择课程" @change="handleChange()">
<el-option v-for="dict in courseList"
:key="dict.id" :label="dict.name" :value="dict.id"
/>
</el-select>
</el-form-item>
<el-form-item label="是否已面签" prop="isSign">
<el-select v-model="formData.isSign" placeholder="请选择是否已面签">
<el-option label="请选择字典生成" value=""/>
</el-select>
</el-form-item>
<el-form-item label="尾款" prop="restMoney">
<el-input v-model="formData.restMoney" placeholder="请输入尾款"/>
</el-form-item>
<el-form-item label="支付类型" prop="payType">
<el-select v-model="formData.paymentStatus" placeholder="请选择支付类型">
<el-option v-for="dict in this.getDictDatas(DICT_TYPE.DRIVE_SCHOOL_PAY_TYPE)"
:key="dict.value" :label="dict.label" :value="dict.value"
<el-form-item label="教练选择" prop="coachUserId">
<el-select v-model="formData.coachUserId" placeholder="请选择课程" @change="handleCoachChange()">
<el-option v-for="dict in coachList"
:key="dict.id" :label="dict.name" :value="dict.id"
/>
</el-select>
</el-form-item>
@ -81,9 +31,15 @@
<script>
import * as SchoolCourseOrderApi from '@/views/drivingSchool/DriveSchoolPay/api';
import {
listDriveSchoolCourse,
listDriveSchoolCourseByList
} from "@/views/drivingSchool/schoolCourse/api/driveSchoolCourse";
import {listCoach} from "@/views/drivingSchool/drivingSchoolCar/api/car";
import {fastCreateSchoolCourseOrder} from "@/views/drivingSchool/DriveSchoolPay/api";
export default {
name: "SchoolCourseOrderForm",
name: "SchoolCourseOrderFastAddForm",
components: {},
data() {
return {
@ -93,6 +49,9 @@ export default {
dialogVisible: false,
// 12
formLoading: false,
courseList: [],
coachList: [],
orderId: '',
//
formData: {
orderNo: undefined,
@ -130,39 +89,33 @@ export default {
},
methods: {
/** 打开弹窗 */
async open(id) {
this.dialogVisible = true;
async open(data) {
console.log('当前数据', data)
this.reset();
this.formData = data;
this.formData.coachUserId = data.coachUserId + ''
this.dialogVisible = true;
this.orderId = data.id
//
if (id) {
this.formLoading = true;
try {
const res = await SchoolCourseOrderApi.getSchoolCourseOrder(id);
this.formData = res.data;
this.title = "修改驾照报名订单";
} finally {
//
const courseRes = await listDriveSchoolCourse({pageNo: 1, pageSize: 9999})
this.courseList = courseRes.data.records
//
const coachRes = await listCoach()
this.coachList = coachRes.data
this.formLoading = false;
}
}
this.title = "新增驾照报名订单";
},
/** 提交按钮 */
async submitForm() {
console.log('当前课程', this.formData.courseId)
//
await this.$refs["formRef"].validate();
await this.$refs["formFastAddRef"].validate();
this.formLoading = true;
try {
const data = this.formData;
//
if (data.id) {
await SchoolCourseOrderApi.updateSchoolCourseOrder(data);
this.$modal.msgSuccess("修改成功");
this.dialogVisible = false;
this.$emit('success');
return;
}
//
await SchoolCourseOrderApi.createSchoolCourseOrder(data);
await SchoolCourseOrderApi.fastCreateSchoolCourseOrder(data);
this.$modal.msgSuccess("新增成功");
this.dialogVisible = false;
this.$emit('success');
@ -170,6 +123,23 @@ export default {
this.formLoading = false;
}
},
handleChange() {
const selected = this.courseList.find(item => item.id === this.formData.courseId);
if (selected) {
this.formData.courseName = selected.name;
this.formData.courseType = selected.courseType;
} else {
this.formData.courseName = '';
}
},
handleCoachChange() {
const selected = this.coachList.find(item => item.id === this.formData.coachUserId);
if (selected) {
this.formData.coachUserName = selected.name;
} else {
this.formData.coachUserName = '';
}
},
/** 表单重置 */
reset() {
this.formData = {
@ -192,7 +162,7 @@ export default {
restMoney: undefined,
payType: undefined,
};
this.resetForm("formRef");
this.resetForm("formFastAddRef");
}
}
};

View File

@ -73,6 +73,9 @@
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template v-slot="scope">
<el-button size="mini" type="text" icon="el-icon-edit" @click="openForm(scope.row.id)">修改</el-button>
<el-button size="mini" type="text" icon="el-icon-edit" @click="openAssignmentCoach(scope.row)" v-if="scope.row.paymentStatus == 2 && scope.row.ifAssignmentCoach == 0">分配教练</el-button>
<el-button size="mini" type="text" icon="el-icon-close" @click="openEndOrder(scope.row)" v-if="scope.row.paymentStatus == 2 && scope.row.ifEnd == false">终止</el-button>
<el-button size="mini" type="text" icon="el-icon-plus" @click="openAddForm(scope.row)" v-if="scope.row.paymentStatus == 2 && scope.row.ifEnd == true && scope.row.isCreated == false">快速创建订单</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)">删除</el-button>
</template>
</el-table-column>
@ -82,15 +85,24 @@
@pagination="getList"/>
<!-- 对话框(添加 / 修改) -->
<SchoolCourseOrderForm ref="formRef" @success="getList" />
<AssignmentCoach ref="assignmentCoachRef" @success="getList" />
<EndOrder ref="endOrderRef" @success="getList" />
<SchoolCourseOrderFastAddForm ref="formFastAddRef" @success="getList" />
</div>
</template>
<script>
import * as SchoolCourseOrderApi from '@/views/drivingSchool/DriveSchoolPay/api';
import SchoolCourseOrderForm from '@/views/drivingSchool/DriveSchoolPay/form/SchoolCourseOrderForm.vue';
import AssignmentCoach from "@/views/drivingSchool/DriveSchoolPay/form/assignmentCoach.vue";
import EndOrder from "@/views/drivingSchool/DriveSchoolPay/form/endOrder.vue";
import SchoolCourseOrderFastAddForm from "@/views/drivingSchool/DriveSchoolPay/form/SchoolCourseOrderFastAddForm.vue";
export default {
name: "SchoolCourseOrder",
components: {
SchoolCourseOrderFastAddForm,
EndOrder,
AssignmentCoach,
SchoolCourseOrderForm,
},
data() {
@ -152,6 +164,20 @@ export default {
openForm(id) {
this.$refs["formRef"].open(id);
},
/** 添加/修改操作(快速创建订单) */
openAddForm(data) {
this.$refs["formFastAddRef"].open(data);
},
/** 分配教练*/
openAssignmentCoach(data) {
console.log('data',data)
this.$refs["assignmentCoachRef"].open(data);
},
/** 分配教练*/
openEndOrder(data) {
console.log('data',data)
this.$refs["endOrderRef"].open(data);
},
/** 删除按钮操作 */
async handleDelete(row) {
const id = row.id;

View File

@ -43,3 +43,11 @@ export function exportprocessExcel(params) {
responseType: 'blob'
})
}
// 创建驾校-学员课程进度(传递集合)
export function saveProcess(data) {
return request({
url: '/process/saveProcess',
method: 'post',
data: data
})
}

View File

@ -0,0 +1,10 @@
import request from '@/utils/request'
// 根据课程id查询教练
export function getCoachByCourseId(data) {
return request({
url: '/base/dl-drive-school-coach-course/getCoachByCourseId',
method: 'get',
params: data
})
}