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

@ -1,53 +1,70 @@
import request from '@/utils/request' import request from '@/utils/request'
// 创建驾照报名订单 // 创建驾照报名订单
export function createSchoolCourseOrder(data) { export function createSchoolCourseOrder(data) {
return request({ return request({
url: '/drive/school-course-order/create', url: '/drive/school-course-order/create',
method: 'post', method: 'post',
data: data data: data
}) })
} }
// 更新驾照报名订单 // 更新驾照报名订单
export function updateSchoolCourseOrder(data) { export function updateSchoolCourseOrder(data) {
return request({ return request({
url: '/drive/school-course-order/update', url: '/drive/school-course-order/update',
method: 'put', method: 'put',
data: data data: data
}) })
} }
// 删除驾照报名订单 // 删除驾照报名订单
export function deleteSchoolCourseOrder(id) { export function deleteSchoolCourseOrder(id) {
return request({ return request({
url: '/drive/school-course-order/delete?id=' + id, url: '/drive/school-course-order/delete?id=' + id,
method: 'delete' method: 'delete'
}) })
} }
// 获得驾照报名订单 // 获得驾照报名订单
export function getSchoolCourseOrder(id) { export function getSchoolCourseOrder(id) {
return request({ return request({
url: '/drive/school-course-order/get?id=' + id, url: '/drive/school-course-order/get?id=' + id,
method: 'get' method: 'get'
}) })
} }
// 获得驾照报名订单分页 // 获得驾照报名订单分页
export function getSchoolCourseOrderPage(params) { export function getSchoolCourseOrderPage(params) {
return request({ return request({
url: '/drive/school-course-order/page', url: '/drive/school-course-order/page',
method: 'get', method: 'get',
params params
}) })
} }
// 导出驾照报名订单 Excel // 导出驾照报名订单 Excel
export function exportSchoolCourseOrderExcel(params) { export function exportSchoolCourseOrderExcel(params) {
return request({ return request({
url: '/drive/school-course-order/export-excel', url: '/drive/school-course-order/export-excel',
method: 'get', method: 'get',
params, params,
responseType: 'blob' 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"> <div class="app-container">
<!-- 对话框(添加 / 修改) --> <!-- 对话框(添加 / 修改) -->
<el-dialog :title="dialogTitle" :visible.sync="dialogVisible" width="45%" v-dialogDrag append-to-body> <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 ref="formFastAddRef" :model="formData" :rules="formRules" v-loading="formLoading" label-width="100px">
<el-form-item label="订单号" prop="orderNo"> <!-- <el-form-item label="订单号" prop="orderNo">-->
<el-input v-model="formData.orderNo" placeholder="请输入订单号"/> <!-- <el-input v-model="formData.orderNo" placeholder="请输入订单号"/>-->
</el-form-item> <!-- </el-form-item>-->
<el-form-item label="用户姓名" prop="userName"> <el-form-item label="课程选择" prop="cour">
<el-input v-model="formData.userName" placeholder="请输入用户姓名"/> <el-select v-model="formData.courseId" placeholder="请选择课程" @change="handleChange()">
</el-form-item> <el-option v-for="dict in courseList"
<el-form-item label="用户手机号" prop="userPhone"> :key="dict.id" :label="dict.name" :value="dict.id"
<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-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="是否已面签" prop="isSign"> <el-form-item label="教练选择" prop="coachUserId">
<el-select v-model="formData.isSign" placeholder="请选择是否已面签"> <el-select v-model="formData.coachUserId" placeholder="请选择课程" @change="handleCoachChange()">
<el-option label="请选择字典生成" value=""/> <el-option v-for="dict in coachList"
</el-select> :key="dict.id" :label="dict.name" :value="dict.id"
</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-select> </el-select>
</el-form-item> </el-form-item>
@ -81,9 +31,15 @@
<script> <script>
import * as SchoolCourseOrderApi from '@/views/drivingSchool/DriveSchoolPay/api'; 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 { export default {
name: "SchoolCourseOrderForm", name: "SchoolCourseOrderFastAddForm",
components: {}, components: {},
data() { data() {
return { return {
@ -93,6 +49,9 @@ export default {
dialogVisible: false, dialogVisible: false,
// 12 // 12
formLoading: false, formLoading: false,
courseList: [],
coachList: [],
orderId: '',
// //
formData: { formData: {
orderNo: undefined, orderNo: undefined,
@ -114,14 +73,14 @@ export default {
restMoney: undefined, restMoney: undefined,
payType: undefined, payType: undefined,
}, },
ifEndRadio:[ ifEndRadio: [
{ {
label:'是', label: '是',
value:'1' value: '1'
}, },
{ {
label:'否', label: '否',
value:'0' value: '0'
}, },
], ],
// //
@ -130,39 +89,33 @@ export default {
}, },
methods: { methods: {
/** 打开弹窗 */ /** 打开弹窗 */
async open(id) { async open(data) {
this.dialogVisible = true; console.log('当前数据', data)
this.reset(); this.reset();
this.formData = data;
this.formData.coachUserId = data.coachUserId + ''
this.dialogVisible = true;
this.orderId = data.id
// //
if (id) { this.formLoading = true;
this.formLoading = true; //
try { const courseRes = await listDriveSchoolCourse({pageNo: 1, pageSize: 9999})
const res = await SchoolCourseOrderApi.getSchoolCourseOrder(id); this.courseList = courseRes.data.records
this.formData = res.data; //
this.title = "修改驾照报名订单"; const coachRes = await listCoach()
} finally { this.coachList = coachRes.data
this.formLoading = false; this.formLoading = false;
}
}
this.title = "新增驾照报名订单";
}, },
/** 提交按钮 */ /** 提交按钮 */
async submitForm() { async submitForm() {
console.log('当前课程', this.formData.courseId)
// //
await this.$refs["formRef"].validate(); await this.$refs["formFastAddRef"].validate();
this.formLoading = true; this.formLoading = true;
try { try {
const data = this.formData; 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.$modal.msgSuccess("新增成功");
this.dialogVisible = false; this.dialogVisible = false;
this.$emit('success'); this.$emit('success');
@ -170,6 +123,23 @@ export default {
this.formLoading = false; 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() { reset() {
this.formData = { this.formData = {
@ -192,7 +162,7 @@ export default {
restMoney: undefined, restMoney: undefined,
payType: 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"> <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template v-slot="scope"> <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="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> <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)">删除</el-button>
</template> </template>
</el-table-column> </el-table-column>
@ -82,15 +85,24 @@
@pagination="getList"/> @pagination="getList"/>
<!-- 对话框(添加 / 修改) --> <!-- 对话框(添加 / 修改) -->
<SchoolCourseOrderForm ref="formRef" @success="getList" /> <SchoolCourseOrderForm ref="formRef" @success="getList" />
<AssignmentCoach ref="assignmentCoachRef" @success="getList" />
<EndOrder ref="endOrderRef" @success="getList" />
<SchoolCourseOrderFastAddForm ref="formFastAddRef" @success="getList" />
</div> </div>
</template> </template>
<script> <script>
import * as SchoolCourseOrderApi from '@/views/drivingSchool/DriveSchoolPay/api'; import * as SchoolCourseOrderApi from '@/views/drivingSchool/DriveSchoolPay/api';
import SchoolCourseOrderForm from '@/views/drivingSchool/DriveSchoolPay/form/SchoolCourseOrderForm.vue'; 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 { export default {
name: "SchoolCourseOrder", name: "SchoolCourseOrder",
components: { components: {
SchoolCourseOrderFastAddForm,
EndOrder,
AssignmentCoach,
SchoolCourseOrderForm, SchoolCourseOrderForm,
}, },
data() { data() {
@ -152,6 +164,20 @@ export default {
openForm(id) { openForm(id) {
this.$refs["formRef"].open(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) { async handleDelete(row) {
const id = row.id; const id = row.id;

View File

@ -43,3 +43,11 @@ export function exportprocessExcel(params) {
responseType: 'blob' 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
})
}