Merge remote-tracking branch 'origin/driver' into driver

This commit is contained in:
Lx 2025-04-28 18:29:55 +08:00
commit 959f232733

View File

@ -1,7 +1,7 @@
<template>
<div class="app-container">
<!-- 对话框(添加 / 修改) -->
<el-dialog :title="dialogTitle" :visible.sync="dialogVisible" width="50%" v-dialogDrag append-to-body>
<el-dialog :title="dialogTitle" :visible.sync="dialogVisible" width="70%" 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">
@ -22,14 +22,16 @@
label="驾证类型"
prop="type">
<el-select v-model="formData.type" placeholder="请选择驾证类型">
<el-option v-for="dict in this.getDictDatas(DICT_TYPE.DRIVE_COURSE_TYPE)" :key="dict.value" :label="dict.label"
:value="dict.value" />
<el-option v-for="dict in this.getDictDatas(DICT_TYPE.DRIVE_COURSE_TYPE)" :key="dict.value"
:label="dict.label"
:value="dict.value"/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="价格" prop="price">
<el-input-number v-model="formData.price" placeholder="请输入价格" :precision="2" :step="0.1" ></el-input-number>
<el-input-number v-model="formData.price" placeholder="请输入价格" :precision="2"
:step="0.1"></el-input-number>
</el-form-item>
</el-col>
</el-row>
@ -37,12 +39,14 @@
<el-row>
<el-col :span="12">
<el-form-item label="订金" prop="reserveMoney">
<el-input-number v-model="formData.reserveMoney" placeholder="请输入订金" :precision="2" :step="0.1" ></el-input-number>
<el-input-number v-model="formData.reserveMoney" placeholder="请输入订金" :precision="2"
:step="0.1"></el-input-number>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="优惠" prop="favour">
<el-input-number v-model="formData.favour" placeholder="请输入订金" :precision="2" :step="0.1" :max="1"></el-input-number>
<el-input-number v-model="formData.favour" placeholder="请输入订金" :precision="2" :step="0.1"
:max="1"></el-input-number>
</el-form-item>
</el-col>
</el-row>
@ -74,19 +78,19 @@
<el-col>
<el-form-item label="教练">
<el-button size="mini" type="primary" @click="openCoachDraw">选择</el-button>
<el-tag type="success" v-if="formData.coachListText !== ''">{{formData.coachListText}}</el-tag>
<el-tag type="success" v-if="formData.coachListText !== ''">{{ formData.coachListText }}</el-tag>
</el-form-item>
</el-col>
</el-row>
<!-- <el-row>-->
<!-- <el-col>-->
<!-- <el-form-item label="课程简介" prop="remark">-->
<!-- <el-input type="textarea" :rows="2" v-model="formData.remark" placeholder="请输入课程简介"/>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<!-- </el-row>-->
<!-- <el-row>-->
<!-- <el-col>-->
<!-- <el-form-item label="课程简介" prop="remark">-->
<!-- <el-input type="textarea" :rows="2" v-model="formData.remark" placeholder="请输入课程简介"/>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<!-- </el-row>-->
<el-row>
<el-col>
@ -96,11 +100,39 @@
</el-col>
</el-row>
<el-row>
<el-col>
<el-form-item label="提成配置" prop="photo">
<el-table
:data="formData.deductList"
style="width: 100%">
<el-table-column
prop="label"
label="科目"
width="180">
<template slot-scope="scope">
{{getLabelByValue(scope.row.courseSubject)}}
</template>
</el-table-column>
<el-table-column
prop="deduct"
label="提成金额"
width="280">
<template slot-scope="scope">
<el-input-number v-model="scope.row.deduct" placeholder="请输入提成金额" :precision="2"
:step="0.1"></el-input-number>
</template>
</el-table-column>
</el-table>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col>
<el-form-item label="课程简介" prop="remark">
<Editor v-model="formData.remark" placeholder="请输入课程简介"></Editor>
<Editor v-model="formData.remark" placeholder="请输入课程简介"></Editor>
</el-form-item>
</el-col>
</el-row>
@ -118,12 +150,13 @@
:before-close="handleClose">
<el-row>
<el-col v-for="(item,index) in initCoachList" :span="8">
<el-card >
<el-card>
<div slot="header" class="clearfix">
<span>{{item.name}}</span>
<span>{{ item.name }}</span>
</div>
<el-checkbox-group v-model="item.checkedSubject" @change="handleCheckedChange($event,index)">
<el-checkbox v-for="subject in subjectList" :label="subject" :key="subject">科目{{subject}}</el-checkbox>
<el-checkbox-group v-model="item.checkedSubject" @change="handleCheckedChange($event,index)">
<el-checkbox v-for="subject in subjectList" :label="subject" :key="subject">科目{{ subject }}
</el-checkbox>
</el-checkbox-group>
</el-card>
</el-col>
@ -137,6 +170,8 @@
import * as DlDriveSchoolCourseApi from '@/views/drivingSchool/schoolCourse/courseApi';
import {listCoach} from "../../drivingSchoolCar/api/car";
import Editor from "@/components/Editor/index.vue";
import {listDeduct} from "@/views/drivingSchool/DriveSchoolDeduct/api/deduct";
export default {
name: "DlDriveSchoolCourseForm",
components: {Editor},
@ -149,7 +184,7 @@ export default {
dialogVisible: false,
// 12
formLoading: false,
chooed:[],
chooed: [],
//
formData: {
tittle: undefined,
@ -162,20 +197,60 @@ export default {
remark: undefined,
reserveMoney: undefined,
favour: undefined,
coachList:[],
coachListText:'',
coachList: [],
coachListText: '',
subject: [
{
label: '科目一',
courseSubject: '1',
deduct: 0
},
{
label: '科目二',
courseSubject: '2',
deduct: 0
},
{
label: '科目三',
courseSubject: '3',
deduct: 0
},
{
label: '科目四',
courseSubject: '4',
deduct: 0
}
],
},
subjectStr: [
{
label: '科目一',
value: '1',
},
{
label: '科目二',
value: '2',
},
{
label: '科目三',
value: '3',
},
{
label: '科目四',
value: '4',
}],
defaultFormData: [],
//
initCoachList:[],
subjectList:['1','2','3','4'],
initCoachList: [],
subjectList: ['1', '2', '3', '4'],
//
formRules: {
type: [{ required: true, message: '驾证类型不能为空', trigger: 'blur' }],
name: [{ required: true, message: '课程名称不能为空', trigger: 'blur' }],
tittle: [{ required: true, message: '小程序标题不能为空', trigger: 'blur' }],
price: [{ required: true, message: '价格不能为空', trigger: 'blur' }],
dayStart: [{ required: true, message: '开始时间不能为空', trigger: 'blur' }],
dayEnd: [{ required: true, message: '结束时间不能为空', trigger: 'blur' }],
type: [{required: true, message: '驾证类型不能为空', trigger: 'blur'}],
name: [{required: true, message: '课程名称不能为空', trigger: 'blur'}],
tittle: [{required: true, message: '小程序标题不能为空', trigger: 'blur'}],
price: [{required: true, message: '价格不能为空', trigger: 'blur'}],
dayStart: [{required: true, message: '开始时间不能为空', trigger: 'blur'}],
dayEnd: [{required: true, message: '结束时间不能为空', trigger: 'blur'}],
},
};
},
@ -185,21 +260,47 @@ export default {
this.dialogVisible = true;
this.reset();
this.getCoachList()
this.formData.deductList = [
{
label: '科目一',
courseSubject: '1',
deduct: 0
},
{
label: '科目二',
courseSubject: '2',
deduct: 0
},
{
label: '科目三',
courseSubject: '3',
deduct: 0
},
{
label: '科目四',
courseSubject: '4',
deduct: 0
}
]
//
if (id) {
this.formLoading = true;
try {
const res = await DlDriveSchoolCourseApi.getDlDriveSchoolCourse(id);
this.formData = res.data;
console.log(this.formData)
this.title = "修改驾校课程分类";
return
} finally {
this.formLoading = false;
}
}
await this.getDeduct()
this.title = "新增驾校课程分类";
console.log(this.formData)
},
openCoachDraw(){
openCoachDraw() {
this.drawerOpen = true
// initCoachListinitCoachList
console.log(this.formData.coachList)
@ -207,8 +308,30 @@ export default {
item.checkedSubject = item.data.coachList
})
},
getLabelByValue( value) {
const subject = this.subjectStr.find(item => item.value === value);
return subject ? subject.label : null;
},
handleClose(){
//
async getDeduct() {
const data = {
pageNum: 1,
pageSize: 1000
}
const res = await listDeduct(data)
// subject
this.formData.deductList.map(item => {
const deduct = res.data.records.find(subject => subject.courseSubject === item.courseSubject)
if (deduct) {
item.deduct = deduct.deduct
} else {
item.deduct = 0
}
})
},
handleClose() {
this.drawerOpen = false
this.formData.coachList = []
this.formData.coachListText = ''
@ -216,7 +339,7 @@ export default {
let coachText = ''
this.initCoachList.map(item => {
if (item.checkedSubject.length > 0) {
coachText = coachText+item.name+'['
coachText = coachText + item.name + '['
item.checkedSubject.forEach(subject => {
const coachInfo = {
coachId: item.userId,
@ -224,7 +347,7 @@ export default {
coachPhone: item.phone,
subject: subject
};
coachText = coachText + '科目'+subject + ' '
coachText = coachText + '科目' + subject + ' '
saveCoachList.push(coachInfo);
});
coachText = coachText + ']'
@ -236,17 +359,17 @@ export default {
console.log(this.formData.coachList)
},
handleCheckedChange(e,index){
handleCheckedChange(e, index) {
this.$forceUpdate()
},
/** 查询教练信息(不分页)*/
getCoachList(){
getCoachList() {
listCoach({}).then(res => {
this.initCoachList = res.data;
this.initCoachList.map((item,index) =>{
item.checkedSubject=[]
this.$set(this.initCoachList,index,item)
this.initCoachList.map((item, index) => {
item.checkedSubject = []
this.$set(this.initCoachList, index, item)
})
})
},
@ -289,6 +412,7 @@ export default {
remark: undefined,
reserveMoney: undefined,
favour: undefined,
deductList: []
};
this.resetForm("formRef");
}