Compare commits
No commits in common. "f3e72ea43c38d93a4e94a4558a189b761f4e40ec" and "53aec3b0765d625db18fb6ea331cf92730c8e860" have entirely different histories.
f3e72ea43c
...
53aec3b076
@ -266,8 +266,7 @@ export default {
|
|||||||
// latitude:"",
|
// latitude:"",
|
||||||
detailedAddress: "",
|
detailedAddress: "",
|
||||||
address: "",
|
address: "",
|
||||||
// apikey: process.env.VUE_APP_AMAP_KEY, // 高德地图 API Key
|
apikey: process.env.VUE_APP_AMAP_KEY, // 确保这里填写正确的高德地图 API Key
|
||||||
apikey: 'd0a6d2fc229e376f6bb20d976b4033ef', // 高德地图 API Key
|
|
||||||
lng: "",
|
lng: "",
|
||||||
lat: "",
|
lat: "",
|
||||||
location: "",
|
location: "",
|
||||||
|
|||||||
@ -90,12 +90,4 @@ export function getSourceUserById(userId) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// 获取课程对应提成方案
|
|
||||||
export function getSchemeListByCourseId(courseId) {
|
|
||||||
return request({
|
|
||||||
url: '/base/dl-drive-school-course/getSchemeList?id=' + courseId,
|
|
||||||
method: 'get'
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -1,43 +0,0 @@
|
|||||||
import request from '@/utils/request'
|
|
||||||
|
|
||||||
// 查询提成方案列表
|
|
||||||
export function getSchemeListByCourseId(courseId) {
|
|
||||||
return request({
|
|
||||||
url: '/base/dl-drive-school-course/getSchemeList?id=' + courseId,
|
|
||||||
method: 'get'
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
// 查询提成方案详情
|
|
||||||
export function getScheme(id) {
|
|
||||||
return request({
|
|
||||||
url: `/courseScheme/get/${id}`,
|
|
||||||
method: 'get'
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
// 新增提成方案
|
|
||||||
export function createScheme(data) {
|
|
||||||
return request({
|
|
||||||
url: '/courseScheme/save',
|
|
||||||
method: 'post',
|
|
||||||
data: data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
// 修改提成方案
|
|
||||||
export function updateScheme(data) {
|
|
||||||
return request({
|
|
||||||
url: '/courseScheme/save',
|
|
||||||
method: 'post',
|
|
||||||
data: data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
// 删除提成方案
|
|
||||||
export function deleteScheme(id) {
|
|
||||||
return request({
|
|
||||||
url: `/courseScheme/delete/${id}`,
|
|
||||||
method: 'delete'
|
|
||||||
})
|
|
||||||
}
|
|
||||||
@ -4,7 +4,7 @@
|
|||||||
<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="formRef" :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="请输入订单号" disabled/>
|
<el-input v-model="formData.orderNo" placeholder="请输入订单号"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="用户姓名" prop="userName">
|
<el-form-item label="用户姓名" prop="userName">
|
||||||
<el-input v-model="formData.userName" placeholder="请输入用户姓名"/>
|
<el-input v-model="formData.userName" placeholder="请输入用户姓名"/>
|
||||||
@ -25,34 +25,26 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item label="课程名字" prop="courseName">
|
<el-form-item label="课程名字" prop="courseName">
|
||||||
<el-input v-model="formData.courseName" placeholder="请输入课程名字" disabled/>
|
<el-input v-model="formData.courseName" placeholder="请输入课程名字"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item label="负责教练" prop="coachUserName">
|
<el-form-item label="负责教练" prop="coachUserName">
|
||||||
<el-input v-model="formData.coachUserName" placeholder="请输入主负责教练姓名" disabled/>
|
<el-input v-model="formData.coachUserName" placeholder="请输入主负责教练姓名"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="订金金额" prop="reserveMoney">
|
<el-form-item label="订金金额" prop="reserveMoney">
|
||||||
<el-input v-model="formData.reserveMoney" placeholder="请输入订金金额"/>
|
<el-input v-model="formData.reserveMoney" placeholder="请输入订金金额"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-row :gutter="20">
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="毕业时间" prop="gradTime">
|
<el-form-item label="毕业时间" prop="gradTime">
|
||||||
<el-date-picker clearable v-model="formData.gradTime" type="date" value-format="timestamp"
|
<el-date-picker clearable v-model="formData.gradTime" type="date" value-format="timestamp"
|
||||||
placeholder="请选择毕业时间"
|
placeholder="请选择毕业时间"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
|
||||||
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="拿证时间" prop="passTime">
|
<el-form-item label="拿证时间" prop="passTime">
|
||||||
<el-date-picker clearable v-model="formData.passTime" type="date" value-format="timestamp"
|
<el-date-picker clearable v-model="formData.passTime" type="date" value-format="timestamp"
|
||||||
placeholder="请选择拿证时间"
|
placeholder="请选择拿证时间"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
|
|
||||||
<el-form-item label="是否终止" prop="ifEnd">
|
<el-form-item label="是否终止" prop="ifEnd">
|
||||||
<el-radio-group v-model="formData.ifEnd">
|
<el-radio-group v-model="formData.ifEnd">
|
||||||
<el-radio v-for="item in ifEndRadio"
|
<el-radio v-for="item in ifEndRadio"
|
||||||
@ -69,9 +61,6 @@
|
|||||||
placeholder="选择终止时间"
|
placeholder="选择终止时间"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-row :gutter="20">
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="订单状态" prop="paymentStatus">
|
<el-form-item label="订单状态" prop="paymentStatus">
|
||||||
<el-select v-model="formData.paymentStatus" placeholder="请选择订单状态">
|
<el-select v-model="formData.paymentStatus" placeholder="请选择订单状态">
|
||||||
<el-option v-for="dict in this.getDictDatas(DICT_TYPE.DRIVE_SCHOOL_ORDER_STATUS)"
|
<el-option v-for="dict in this.getDictDatas(DICT_TYPE.DRIVE_SCHOOL_ORDER_STATUS)"
|
||||||
@ -79,9 +68,6 @@
|
|||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
|
||||||
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="是否已面签" prop="isSign">
|
<el-form-item label="是否已面签" prop="isSign">
|
||||||
<!-- <el-select v-model="formData.isSign" placeholder="请选择是否已面签">-->
|
<!-- <el-select v-model="formData.isSign" placeholder="请选择是否已面签">-->
|
||||||
<!-- <el-option label="请选择字典生成" :label="item.label" v-for="item in this.getDictDatas(DICT_TYPE.SYSTEM_USER_SEX)"/>-->
|
<!-- <el-option label="请选择字典生成" :label="item.label" v-for="item in this.getDictDatas(DICT_TYPE.SYSTEM_USER_SEX)"/>-->
|
||||||
@ -93,108 +79,31 @@
|
|||||||
</el-radio>
|
</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
|
|
||||||
<!-- <el-form-item label="提成方案" prop="schemeId">
|
|
||||||
<el-select v-model="formData.schemeId" placeholder="请选择提成方案">
|
|
||||||
<el-option
|
|
||||||
v-for="item in schemeList"
|
|
||||||
:key="item.id"
|
|
||||||
:label="item.name"
|
|
||||||
:value="item.id"
|
|
||||||
/>
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>-->
|
|
||||||
<div style="display: flex; flex-direction: row; gap: 10px;">
|
|
||||||
<div>
|
|
||||||
<el-form-item label="提成方案" prop="schemeId" >
|
|
||||||
<el-select v-model="formData.schemeId" placeholder="请选择提成方案" style="width: 300px;">
|
|
||||||
<el-option
|
|
||||||
v-for="item in schemeList"
|
|
||||||
:key="item.id"
|
|
||||||
:label="item.name"
|
|
||||||
:value="item.id"
|
|
||||||
>
|
|
||||||
<div style="display: flex; justify-content: space-between; width: 100%">
|
|
||||||
<span>{{ item.name }}</span>
|
|
||||||
<span style="color: #888; margin-left: 20px;">
|
|
||||||
<span style="color: red;">*科1:</span>{{ item.subject1Deduct }}元,
|
|
||||||
<span style="color: red;">*科2:</span>{{ item.subject2Deduct }}元,
|
|
||||||
<span style="color: red;">*科3:</span>{{ item.subject3Deduct }}元,
|
|
||||||
<span style="color: red;">*科4:</span>{{ item.subject4Deduct }}元,
|
|
||||||
<span style="color: red;">*业务经理:</span>{{ item.subject0Deduct }}元
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</el-option>
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<el-button type="primary" icon="el-icon-plus" size="small" @click="openSchemeDialog">添加方案</el-button>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<span style="color: red">(如果没有合适的方案,请添加)</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<el-form-item label="尾款" prop="restMoney">
|
<el-form-item label="尾款" prop="restMoney">
|
||||||
<el-input v-model="formData.restMoney" placeholder="请输入尾款"/>
|
<el-input v-model="formData.restMoney" placeholder="请输入尾款"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-row :gutter="20">
|
|
||||||
<el-col :span="8">
|
|
||||||
<el-form-item label="支付类型" prop="payType">
|
<el-form-item label="支付类型" prop="payType">
|
||||||
<el-select v-model="formData.payType" placeholder="请选择支付类型">
|
<el-select v-model="formData.paymentStatus" placeholder="请选择支付类型">
|
||||||
<el-option v-for="dict in this.getDictDatas(DICT_TYPE.DRIVE_SCHOOL_PAY_TYPE)"
|
<el-option v-for="dict in this.getDictDatas(DICT_TYPE.DRIVE_SCHOOL_PAY_TYPE)"
|
||||||
:key="dict.value" :label="dict.label" :value="dict.value"
|
:key="dict.value" :label="dict.label" :value="dict.value"
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
|
||||||
<el-col :span="8">
|
|
||||||
<el-form-item label="支付渠道" prop="payChannel">
|
|
||||||
<el-select v-model="formData.payChannel" placeholder="请选择支付渠道">
|
|
||||||
<el-option v-for="dict in this.payChannelList"
|
|
||||||
:key="dict.value" :label="dict.label" :value="dict.value"
|
|
||||||
/>
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="8">
|
|
||||||
<el-form-item label="学员是否确认" prop="ifAgree">
|
|
||||||
<el-select v-model="formData.ifAgree" placeholder="请选择学员是否确认">
|
|
||||||
<el-option v-for="dict in this.ifAgreeList"
|
|
||||||
:key="dict.value" :label="dict.label" :value="dict.value"
|
|
||||||
/>
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
|
|
||||||
|
|
||||||
</el-form>
|
</el-form>
|
||||||
<div slot="footer" class="dialog-footer">
|
<div slot="footer" class="dialog-footer">
|
||||||
<el-button type="primary" @click="submitForm" :disabled="formLoading">确 定</el-button>
|
<el-button type="primary" @click="submitForm" :disabled="formLoading">确 定</el-button>
|
||||||
<el-button @click="dialogVisible = false">取 消</el-button>
|
<el-button @click="dialogVisible = false">取 消</el-button>
|
||||||
</div>
|
</div>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
<SchemeForm ref="schemeFormRef" @success="fetchSchemeList" />
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import * as SchoolCourseOrderApi from '@/views/drivingSchool/DriveSchoolPay/api'
|
import * as SchoolCourseOrderApi from '@/views/drivingSchool/DriveSchoolPay/api'
|
||||||
import { getSchemeListByCourseId } from '@/views/drivingSchool/DriveSchoolPay/api'
|
|
||||||
import SchemeForm from '@/views/drivingSchool/schoolCourse/form/schemeForm.vue'
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'SchoolCourseOrderForm',
|
name: 'SchoolCourseOrderForm',
|
||||||
components: {
|
components: {},
|
||||||
SchemeForm
|
|
||||||
},
|
|
||||||
|
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
// 弹出层标题
|
// 弹出层标题
|
||||||
@ -224,8 +133,7 @@ export default {
|
|||||||
restMoney: undefined,
|
restMoney: undefined,
|
||||||
payType: undefined,
|
payType: undefined,
|
||||||
passTime: undefined,
|
passTime: undefined,
|
||||||
gradTime: undefined,
|
gradTime: undefined
|
||||||
schemeId: undefined,
|
|
||||||
},
|
},
|
||||||
ifEndRadio: [
|
ifEndRadio: [
|
||||||
{
|
{
|
||||||
@ -247,37 +155,8 @@ export default {
|
|||||||
value: 0
|
value: 0
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
payChannelList: [
|
|
||||||
{
|
|
||||||
label: '线下支付',
|
|
||||||
value: '2'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: '微信支付',
|
|
||||||
value: '1'
|
|
||||||
}
|
|
||||||
],
|
|
||||||
ifAgreeList: [
|
|
||||||
{
|
|
||||||
label: '未确认',
|
|
||||||
value: '0'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: '已同意',
|
|
||||||
value: '1'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: '未同意',
|
|
||||||
value: '2'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: '非代报名订单',
|
|
||||||
value: null
|
|
||||||
}
|
|
||||||
],
|
|
||||||
// 表单校验
|
// 表单校验
|
||||||
formRules: {},
|
formRules: {}
|
||||||
schemeList: [],
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
@ -292,41 +171,16 @@ export default {
|
|||||||
const res = await SchoolCourseOrderApi.getSchoolCourseOrder(id)
|
const res = await SchoolCourseOrderApi.getSchoolCourseOrder(id)
|
||||||
this.formData = res.data
|
this.formData = res.data
|
||||||
this.title = '修改驾照报名订单'
|
this.title = '修改驾照报名订单'
|
||||||
await this.loadSchemeList(this.formData.courseId);
|
|
||||||
} finally {
|
} finally {
|
||||||
this.formLoading = false
|
this.formLoading = false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
this.title = '新增驾照报名订单'
|
this.title = '新增驾照报名订单'
|
||||||
},
|
},
|
||||||
openSchemeDialog() {
|
|
||||||
this.$refs.schemeFormRef.open(null, this.formData.courseId)
|
|
||||||
},
|
|
||||||
async fetchSchemeList() {
|
|
||||||
// 重新拉取方案列表
|
|
||||||
console.log('courseId', this.formData.courseId)
|
|
||||||
const res = await getSchemeListByCourseId(this.formData.courseId)
|
|
||||||
console.log('res', res)
|
|
||||||
this.schemeList = res.data || []
|
|
||||||
},
|
|
||||||
/** 提交按钮 */
|
/** 提交按钮 */
|
||||||
async submitForm() {
|
async submitForm() {
|
||||||
// 校验主表
|
// 校验主表
|
||||||
await this.$refs['formRef'].validate()
|
await this.$refs['formRef'].validate()
|
||||||
// 检查是否选择了提成方案
|
|
||||||
if (!this.formData.schemeId) {
|
|
||||||
try {
|
|
||||||
await this.$confirm('该订单尚未选择提成方案,是否继续?', '提示', {
|
|
||||||
confirmButtonText: '继续',
|
|
||||||
cancelButtonText: '取消',
|
|
||||||
type: 'warning'
|
|
||||||
})
|
|
||||||
// 用户点击继续,继续执行后续操作
|
|
||||||
} catch (error) {
|
|
||||||
// 用户点击取消,不执行操作
|
|
||||||
return
|
|
||||||
}
|
|
||||||
}
|
|
||||||
this.formLoading = true
|
this.formLoading = true
|
||||||
try {
|
try {
|
||||||
const data = this.formData
|
const data = this.formData
|
||||||
@ -347,23 +201,6 @@ export default {
|
|||||||
this.formLoading = false
|
this.formLoading = false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
async loadSchemeList(courseId) {
|
|
||||||
console.log('courseId', courseId)
|
|
||||||
if (!courseId) return;
|
|
||||||
try {
|
|
||||||
const res = await getSchemeListByCourseId(courseId);
|
|
||||||
console.log('res', res)
|
|
||||||
this.schemeList = res.data || [];
|
|
||||||
} catch (error) {
|
|
||||||
this.$message.error('获取提成方案失败');
|
|
||||||
}
|
|
||||||
},
|
|
||||||
async getSchemeListByCourseId(courseId){
|
|
||||||
await SchoolCourseOrderApi.getSchemeListByCourseId(courseId)
|
|
||||||
.then(res => {
|
|
||||||
this.schemeList = res.data
|
|
||||||
})
|
|
||||||
},
|
|
||||||
/** 表单重置 */
|
/** 表单重置 */
|
||||||
reset() {
|
reset() {
|
||||||
this.formData = {
|
this.formData = {
|
||||||
@ -386,8 +223,7 @@ export default {
|
|||||||
restMoney: undefined,
|
restMoney: undefined,
|
||||||
payType: undefined,
|
payType: undefined,
|
||||||
passTime: undefined,
|
passTime: undefined,
|
||||||
gradTime: undefined,
|
gradTime: undefined
|
||||||
schemeId: undefined,
|
|
||||||
}
|
}
|
||||||
this.resetForm('formRef')
|
this.resetForm('formRef')
|
||||||
}
|
}
|
||||||
|
|||||||
@ -75,7 +75,6 @@
|
|||||||
|
|
||||||
<el-table-column label="报名时间" align="center" prop="createTime" :formatter="formatDate"/>
|
<el-table-column label="报名时间" align="center" prop="createTime" :formatter="formatDate"/>
|
||||||
<el-table-column label="报名方式" align="center" prop="signType" :formatter="formatSignType"/>
|
<el-table-column label="报名方式" align="center" prop="signType" :formatter="formatSignType"/>
|
||||||
<el-table-column label="学员是否确认" align="center" prop="ifAgree" :formatter="formatIfAgree"/>
|
|
||||||
<!-- <el-table-column label="学费到账审核" align="center" prop="receiptReview" :formatter="formatReceiptReview"/>-->
|
<!-- <el-table-column label="学费到账审核" align="center" prop="receiptReview" :formatter="formatReceiptReview"/>-->
|
||||||
<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">
|
||||||
@ -539,19 +538,7 @@ export default {
|
|||||||
},
|
},
|
||||||
formatSignType(row, column, value) {
|
formatSignType(row, column, value) {
|
||||||
const map = {
|
const map = {
|
||||||
'1': '业务经理代报名',
|
'1': '代报名'
|
||||||
'2': '教练代报名',
|
|
||||||
'3': '员工代报名'
|
|
||||||
};
|
|
||||||
return map[value] ?? '-';
|
|
||||||
},
|
|
||||||
formatIfAgree(row, column, value) {
|
|
||||||
const map = {
|
|
||||||
'0': '未确认',
|
|
||||||
'1': '同意',
|
|
||||||
'2': '不同意',
|
|
||||||
null: '非代报名订单',
|
|
||||||
default: '非代报名订单'
|
|
||||||
};
|
};
|
||||||
return map[value] ?? '-';
|
return map[value] ?? '-';
|
||||||
},
|
},
|
||||||
|
|||||||
@ -93,24 +93,3 @@ export function scoreEdit(data) {
|
|||||||
data: data
|
data: data
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// 根据课程id查询相关教练
|
|
||||||
export function getCoachByCourseId(courseId, subject) {
|
|
||||||
return request({
|
|
||||||
url: `/base/dl-drive-school-coach-course/getCoachByCourseIdAndSubject`,
|
|
||||||
method: 'get',
|
|
||||||
params: {
|
|
||||||
courseId,
|
|
||||||
subject
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
// 修改教练
|
|
||||||
export function updateCoach(data) {
|
|
||||||
return request({
|
|
||||||
url: '/process/updateCoach',
|
|
||||||
method: 'get',
|
|
||||||
params: data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|||||||
@ -260,15 +260,6 @@ export default {
|
|||||||
operationType: null,
|
operationType: null,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
watch: {
|
|
||||||
'formData.examStatus': function(newVal) {
|
|
||||||
if (newVal === '1') { // 当考试情况选择"已通过"时
|
|
||||||
this.formData.status = '2'; // 自动将状态设置为"已完成"
|
|
||||||
} else if (newVal === '0') { // 当考试情况选择"未通过"时
|
|
||||||
this.formData.status = '1'; // 自动将状态设置为"训练中"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
methods: {
|
methods: {
|
||||||
/** 打开弹窗 */
|
/** 打开弹窗 */
|
||||||
async open(id, type) {
|
async open(id, type) {
|
||||||
|
|||||||
@ -1,129 +0,0 @@
|
|||||||
<template>
|
|
||||||
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
|
|
||||||
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
|
|
||||||
<el-form-item label="选择教练" prop="coachId">
|
|
||||||
<el-select
|
|
||||||
v-model="form.coachId"
|
|
||||||
placeholder="请选择教练"
|
|
||||||
filterable
|
|
||||||
clearable
|
|
||||||
style="width: 100%"
|
|
||||||
>
|
|
||||||
<el-option
|
|
||||||
v-for="item in coachOptions"
|
|
||||||
:key="item.id"
|
|
||||||
:label="item.name"
|
|
||||||
:value="item.id"
|
|
||||||
/>
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
</el-form>
|
|
||||||
<div slot="footer" class="dialog-footer">
|
|
||||||
<el-button type="primary" @click="submitForm">确 定</el-button>
|
|
||||||
<el-button @click="cancel">取 消</el-button>
|
|
||||||
</div>
|
|
||||||
</el-dialog>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
import { getCoachByCourseId, updateCoach } from '@/views/drivingSchool/StudentScoreInput/api'
|
|
||||||
|
|
||||||
export default {
|
|
||||||
name: "UpdateCoachForm",
|
|
||||||
data() {
|
|
||||||
return {
|
|
||||||
// 是否显示弹出层
|
|
||||||
open: false,
|
|
||||||
// 弹出层标题
|
|
||||||
title: "",
|
|
||||||
// 表单参数
|
|
||||||
form: {
|
|
||||||
id: undefined,
|
|
||||||
coachId: undefined,
|
|
||||||
coachName: ""
|
|
||||||
},
|
|
||||||
// 表单校验
|
|
||||||
rules: {
|
|
||||||
coachId: [
|
|
||||||
{ required: true, message: "请选择教练", trigger: "blur" }
|
|
||||||
]
|
|
||||||
},
|
|
||||||
// 教练选项
|
|
||||||
coachOptions: [],
|
|
||||||
// 当前操作类型
|
|
||||||
type: undefined
|
|
||||||
};
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
// 打开弹窗
|
|
||||||
openDialog(row) {
|
|
||||||
this.reset();
|
|
||||||
this.title = "修改教练";
|
|
||||||
this.open = true;
|
|
||||||
this.form.id = row.id;
|
|
||||||
|
|
||||||
// 获取教练列表
|
|
||||||
this.getCoachList(row.courseId, row.subject).then(() => {
|
|
||||||
// 设置当前教练
|
|
||||||
this.form.coachId = row.coachId;
|
|
||||||
});
|
|
||||||
},
|
|
||||||
// 获取教练列表
|
|
||||||
async getCoachList(courseId, subject) {
|
|
||||||
try {
|
|
||||||
const res = await getCoachByCourseId(courseId, subject);
|
|
||||||
this.coachOptions = res.data.map(item => ({
|
|
||||||
id: parseInt(item.coachId),
|
|
||||||
name: item.coachName
|
|
||||||
}));
|
|
||||||
console.log('this.coachOptions', this.coachOptions)
|
|
||||||
} catch (error) {
|
|
||||||
console.error("获取教练列表失败:", error);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
handleCoachChange(coachId) {
|
|
||||||
const selectedCoach = this.coachOptions.find(item => item.id === coachId);
|
|
||||||
if (selectedCoach) {
|
|
||||||
this.form.coachName = selectedCoach.name; // 同步名字
|
|
||||||
}
|
|
||||||
},
|
|
||||||
// 表单提交
|
|
||||||
submitForm() {
|
|
||||||
this.$refs["form"].validate(async valid => {
|
|
||||||
if (!valid) return;
|
|
||||||
|
|
||||||
// 获取选中的教练名称
|
|
||||||
const selectedCoach = this.coachOptions.find(item => item.id === this.form.coachId);
|
|
||||||
const params = {
|
|
||||||
id: this.form.id,
|
|
||||||
coachId: this.form.coachId,
|
|
||||||
coachName: selectedCoach ? selectedCoach.name : ''
|
|
||||||
};
|
|
||||||
|
|
||||||
try {
|
|
||||||
await updateCoach(params);
|
|
||||||
this.$modal.msgSuccess("修改成功");
|
|
||||||
this.open = false;
|
|
||||||
this.$emit("success");
|
|
||||||
} catch (error) {
|
|
||||||
console.error("修改教练失败:", error);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
},
|
|
||||||
// 取消按钮
|
|
||||||
cancel() {
|
|
||||||
this.open = false;
|
|
||||||
this.reset();
|
|
||||||
},
|
|
||||||
// 表单重置
|
|
||||||
reset() {
|
|
||||||
this.form = {
|
|
||||||
id: undefined,
|
|
||||||
coachId: undefined,
|
|
||||||
coachName: ""
|
|
||||||
};
|
|
||||||
this.resetForm("form");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
</script>
|
|
||||||
@ -69,15 +69,8 @@
|
|||||||
</el-table-column>-->
|
</el-table-column>-->
|
||||||
<el-table-column label="操作" width="120" align="center" class-name="small-padding fixed-width">
|
<el-table-column label="操作" width="120" 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" :disabled="scope.row.status === '2' && scope.row.examStatus === '1'" @click="openForm(scope.row.id, 'input')">成绩录入</el-button>
|
<el-button size="mini" type="text" icon="el-icon-edit" :disabled="scope.row.examScore" @click="openForm(scope.row.id, 'input')">成绩录入</el-button>
|
||||||
<el-button size="mini" type="text" icon="el-icon-edit" :disabled="!(scope.row.status === '2' && scope.row.examStatus === '1')" @click="openForm(scope.row.id, 'edit')">成绩修改</el-button>
|
<el-button size="mini" type="text" icon="el-icon-edit" :disabled="!scope.row.examScore" @click="openForm(scope.row.id, 'edit')">成绩修改</el-button>
|
||||||
<el-button
|
|
||||||
size="mini"
|
|
||||||
type="text"
|
|
||||||
icon="el-icon-user"
|
|
||||||
:disabled="scope.row.examStatus === '1' || scope.row.examStatus === '9'"
|
|
||||||
@click="handleUpdateCoach(scope.row)"
|
|
||||||
>教练修改</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>
|
||||||
@ -86,20 +79,17 @@
|
|||||||
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize" @pagination="getList"/>
|
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize" @pagination="getList"/>
|
||||||
<!-- 对话框(添加 / 修改) -->
|
<!-- 对话框(添加 / 修改) -->
|
||||||
<scoreInputForm ref="formRef" @success="getList" />
|
<scoreInputForm ref="formRef" @success="getList" />
|
||||||
<updateCoachForm ref="updateCoachForm" @success="getList" />
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import * as processApi from '@/views/drivingSchool/StudentScoreInput/api';
|
import * as processApi from '@/views/drivingSchool/StudentScoreInput/api';
|
||||||
import scoreInputForm from '@/views/drivingSchool/StudentScoreInput/form/scoreInputForm.vue'
|
import scoreInputForm from '@/views/drivingSchool/StudentScoreInput/form/scoreInputForm.vue'
|
||||||
import updateCoachForm from '@/views/drivingSchool/StudentScoreInput/form/updateCoachForm.vue'
|
|
||||||
import { DICT_TYPE, getDictDatas } from '@/utils/dict'
|
import { DICT_TYPE, getDictDatas } from '@/utils/dict'
|
||||||
export default {
|
export default {
|
||||||
name: "StudentScoreInput",
|
name: "StudentScoreInput",
|
||||||
components: {
|
components: {
|
||||||
scoreInputForm,
|
scoreInputForm,
|
||||||
updateCoachForm,
|
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
@ -160,10 +150,6 @@ export default {
|
|||||||
openForm(id, type) {
|
openForm(id, type) {
|
||||||
this.$refs["formRef"].open(id, type);
|
this.$refs["formRef"].open(id, type);
|
||||||
},
|
},
|
||||||
/** 教练修改操作 */
|
|
||||||
handleUpdateCoach(row) {
|
|
||||||
this.$refs.updateCoachForm.openDialog(row);
|
|
||||||
},
|
|
||||||
/** 删除按钮操作 */
|
/** 删除按钮操作 */
|
||||||
async handleDelete(row) {
|
async handleDelete(row) {
|
||||||
const id = row.id;
|
const id = row.id;
|
||||||
|
|||||||
@ -59,5 +59,3 @@ export function getAllByUserIdAndCourseId(params) {
|
|||||||
params
|
params
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -6,38 +6,38 @@
|
|||||||
<el-collapse v-model="activeNames">
|
<el-collapse v-model="activeNames">
|
||||||
<el-collapse-item title="学员课程情况" name="1">
|
<el-collapse-item title="学员课程情况" name="1">
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="12">
|
<el-col span="12">
|
||||||
<el-form-item label="课程名称" prop="courseName">
|
<el-form-item label="课程名称" prop="courseName">
|
||||||
<el-input :readonly="readonly" v-model="formData.courseName" disabled/>
|
<el-input :readonly="readonly" v-model="formData.courseName"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
<el-col span="12">
|
||||||
<el-form-item label="教练姓名" prop="coachName">
|
<el-form-item label="教练姓名" prop="coachName">
|
||||||
<el-input :readonly="readonly" v-model="formData.coachName" disabled/>
|
<el-input :readonly="readonly" v-model="formData.coachName"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="12">
|
<el-col span="12">
|
||||||
<el-form-item label="学员姓名" prop="userName">
|
<el-form-item label="学员姓名" prop="userName">
|
||||||
<el-input :readonly="readonly" v-model="formData.userName" disabled/>
|
<el-input :readonly="readonly" v-model="formData.userName"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
<el-col span="12">
|
||||||
<el-form-item label="学员手机号" prop="userMobile">
|
<el-form-item label="学员手机号" prop="userMobile">
|
||||||
<el-input :readonly="readonly" v-model="formData.userMobile" disabled/>
|
<el-input :readonly="readonly" v-model="formData.userMobile"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="12">
|
<el-col span="12">
|
||||||
<el-form-item label="科目" prop="subject">
|
<el-form-item label="科目" prop="subject">
|
||||||
<el-input :readonly="readonly" v-model="formData.subject" disabled/>
|
<el-input :readonly="readonly" v-model="formData.subject"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
<el-col span="12">
|
||||||
<el-form-item label="考试次数" prop="examNum">
|
<el-form-item label="考试次数" prop="examNum">
|
||||||
<el-input :readonly="readonly" v-model="formData.examNum"/>
|
<el-input :readonly="readonly" v-model="formData.examNum"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@ -45,7 +45,7 @@
|
|||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="12">
|
<el-col span="12">
|
||||||
<el-form-item label="当前状态" prop="status">
|
<el-form-item label="当前状态" prop="status">
|
||||||
<el-select :disabled="readonly" v-model="formData.status" placeholder="请选择">
|
<el-select :disabled="readonly" v-model="formData.status" placeholder="请选择">
|
||||||
<el-option
|
<el-option
|
||||||
@ -57,7 +57,7 @@
|
|||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
<el-col span="12">
|
||||||
<el-form-item label="考试情况" prop="examStatus">
|
<el-form-item label="考试情况" prop="examStatus">
|
||||||
<el-select :disabled="readonly" v-model="formData.examStatus" placeholder="请选择">
|
<el-select :disabled="readonly" v-model="formData.examStatus" placeholder="请选择">
|
||||||
<el-option
|
<el-option
|
||||||
@ -72,12 +72,12 @@
|
|||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="12">
|
<el-col span="12">
|
||||||
<el-form-item label="考试分数" prop="examScore">
|
<el-form-item label="考试分数" prop="examScore">
|
||||||
<el-input :readonly="readonly" v-model="formData.examScore"/>
|
<el-input :readonly="readonly" v-model="formData.examScore"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
<el-col span="12">
|
||||||
<el-form-item label="考试时间" prop="examTime">
|
<el-form-item label="考试时间" prop="examTime">
|
||||||
<el-date-picker :readonly="readonly" clearable v-model="formData.examTime" type="date" value-format="timestamp" />
|
<el-date-picker :readonly="readonly" clearable v-model="formData.examTime" type="date" value-format="timestamp" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@ -96,9 +96,6 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-form-item label="报名时间" prop="createTime">
|
|
||||||
<el-date-picker :readonly="readonly" clearable v-model="formData.createTime" type="date" value-format="timestamp" disabled=""/>
|
|
||||||
</el-form-item>
|
|
||||||
</el-collapse-item>
|
</el-collapse-item>
|
||||||
|
|
||||||
<el-collapse-item title="提成信息" name="2">
|
<el-collapse-item title="提成信息" name="2">
|
||||||
|
|||||||
@ -1,43 +0,0 @@
|
|||||||
import request from '@/utils/request'
|
|
||||||
|
|
||||||
// 查询提成方案列表
|
|
||||||
export function getSchemeListByCourseId(courseId) {
|
|
||||||
return request({
|
|
||||||
url: '/base/dl-drive-school-course/getSchemeList?id=' + courseId,
|
|
||||||
method: 'get'
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
// 查询提成方案详情
|
|
||||||
export function getScheme(id) {
|
|
||||||
return request({
|
|
||||||
url: `/courseScheme/get/${id}`,
|
|
||||||
method: 'get'
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
// 新增提成方案
|
|
||||||
export function createScheme(data) {
|
|
||||||
return request({
|
|
||||||
url: '/courseScheme/save',
|
|
||||||
method: 'post',
|
|
||||||
data: data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
// 修改提成方案
|
|
||||||
export function updateScheme(data) {
|
|
||||||
return request({
|
|
||||||
url: '/courseScheme/save',
|
|
||||||
method: 'post',
|
|
||||||
data: data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
// 删除提成方案
|
|
||||||
export function deleteScheme(id) {
|
|
||||||
return request({
|
|
||||||
url: `/courseScheme/delete/${id}`,
|
|
||||||
method: 'delete'
|
|
||||||
})
|
|
||||||
}
|
|
||||||
@ -124,68 +124,9 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
</el-row>-->
|
</el-row>-->
|
||||||
|
|
||||||
<el-row v-if="!formData.id">
|
<el-row>
|
||||||
<el-col>
|
<el-col>
|
||||||
<el-form-item label="提成配置">
|
<el-form-item label="提成配置" prop="photo">
|
||||||
<el-button type="primary" icon="el-icon-plus" size="mini" @click="addScheme">新增提成方案</el-button>
|
|
||||||
<el-tabs v-model="activeSchemeIndex" type="card">
|
|
||||||
<el-tab-pane
|
|
||||||
v-for="(scheme, index) in formData.schemeList"
|
|
||||||
:label="scheme.schemeName || `方案 ${index + 1}`"
|
|
||||||
:name="index.toString()"
|
|
||||||
:key="index"
|
|
||||||
>
|
|
||||||
<!-- 删除按钮 -->
|
|
||||||
<div style="text-align: right; margin-bottom: 10px">
|
|
||||||
<el-button
|
|
||||||
v-if="formData.schemeList.length > 1"
|
|
||||||
type="danger"
|
|
||||||
icon="el-icon-delete"
|
|
||||||
size="mini"
|
|
||||||
@click="removeScheme(index)">
|
|
||||||
删除此方案
|
|
||||||
</el-button>
|
|
||||||
</div>
|
|
||||||
<el-form-item label="方案名称">
|
|
||||||
<el-input v-model="scheme.schemeName" placeholder="请输入方案名称"/>
|
|
||||||
<el-checkbox v-model="scheme.isDefault" style="margin-left: 20px" @change="setOnlyDefault(index)">设为默认方案</el-checkbox>
|
|
||||||
</el-form-item>
|
|
||||||
|
|
||||||
<!-- <el-table :data="scheme.deductList" style="width: 100%">
|
|
||||||
<el-table-column prop="courseSubject" label="科目" width="120">
|
|
||||||
<template slot-scope="scope">
|
|
||||||
{{ getLabelByValue(scope.row.courseSubject) }}
|
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
<el-table-column prop="deduct" label="提成金额" width="180">
|
|
||||||
<template slot-scope="scope">
|
|
||||||
<el-input-number v-model="scope.row.deduct" :precision="2" :step="0.1" placeholder="请输入金额"/>
|
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
</el-table>-->
|
|
||||||
<div style="display: flex; gap: 10px; flex-wrap: wrap">
|
|
||||||
<div
|
|
||||||
v-for="(subject, subIndex) in scheme.deductList"
|
|
||||||
:key="subIndex"
|
|
||||||
style="flex: 1; min-width: 120px"
|
|
||||||
>
|
|
||||||
<el-card shadow="hover">
|
|
||||||
<div style="text-align: center; font-weight: bold">
|
|
||||||
{{ getLabelByValue(subject.courseSubject) }}
|
|
||||||
</div>
|
|
||||||
<el-input-number
|
|
||||||
v-model="subject.deduct"
|
|
||||||
:precision="2"
|
|
||||||
:step="0.1"
|
|
||||||
style="width: 100%; margin-top: 10px"
|
|
||||||
/>
|
|
||||||
</el-card>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</el-tab-pane>
|
|
||||||
</el-tabs>
|
|
||||||
</el-form-item>
|
|
||||||
<!-- <el-form-item label="提成配置" prop="photo">
|
|
||||||
<el-table
|
<el-table
|
||||||
:data="formData.deductList"
|
:data="formData.deductList"
|
||||||
style="width: 100%">
|
style="width: 100%">
|
||||||
@ -207,7 +148,7 @@
|
|||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
</el-form-item>-->
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
@ -285,7 +226,6 @@ export default {
|
|||||||
coachList: [],
|
coachList: [],
|
||||||
coachListText: '',
|
coachListText: '',
|
||||||
ageGroup: undefined,
|
ageGroup: undefined,
|
||||||
schemeList: [],
|
|
||||||
subject: [
|
subject: [
|
||||||
{
|
{
|
||||||
label: '科目一',
|
label: '科目一',
|
||||||
@ -309,8 +249,6 @@ export default {
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
// 当前激活的方案 tab 索引
|
|
||||||
activeSchemeIndex: "0",
|
|
||||||
subjectStr: [
|
subjectStr: [
|
||||||
{
|
{
|
||||||
label: '科目一',
|
label: '科目一',
|
||||||
@ -350,8 +288,6 @@ export default {
|
|||||||
this.dialogVisible = true;
|
this.dialogVisible = true;
|
||||||
this.reset();
|
this.reset();
|
||||||
this.getCoachList()
|
this.getCoachList()
|
||||||
this.formData.schemeList = [];
|
|
||||||
this.addScheme();
|
|
||||||
this.formData.deductList = [
|
this.formData.deductList = [
|
||||||
{
|
{
|
||||||
label: '科目一',
|
label: '科目一',
|
||||||
@ -392,19 +328,6 @@ export default {
|
|||||||
console.log(this.formData)
|
console.log(this.formData)
|
||||||
},
|
},
|
||||||
|
|
||||||
addScheme() {
|
|
||||||
const defaultSubjects = ["0", "1", "2", "3", "4"];
|
|
||||||
const newScheme = {
|
|
||||||
schemeName: '',
|
|
||||||
isDefault: this.formData.schemeList.length === 0, // 第一个默认设为 true
|
|
||||||
deductList: defaultSubjects.map(subject => ({
|
|
||||||
courseSubject: subject,
|
|
||||||
deduct: 0
|
|
||||||
}))
|
|
||||||
};
|
|
||||||
this.formData.schemeList.push(newScheme);
|
|
||||||
this.activeSchemeIndex = (this.formData.schemeList.length - 1).toString();
|
|
||||||
},
|
|
||||||
openCoachDraw() {
|
openCoachDraw() {
|
||||||
this.drawerOpen = true
|
this.drawerOpen = true
|
||||||
// 将initCoachList的initCoachList回显
|
// 将initCoachList的initCoachList回显
|
||||||
@ -413,35 +336,13 @@ export default {
|
|||||||
item.checkedSubject = item.data.coachList
|
item.checkedSubject = item.data.coachList
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
setOnlyDefault(index) {
|
getLabelByValue( value) {
|
||||||
this.formData.schemeList.forEach((item, i) => {
|
|
||||||
item.isDefault = i === index;
|
|
||||||
});
|
|
||||||
},
|
|
||||||
removeScheme(index) {
|
|
||||||
this.formData.schemeList.splice(index, 1);
|
|
||||||
// 如果删的是当前 tab,则激活前一个;否则不变
|
|
||||||
if (this.activeSchemeIndex === index.toString()) {
|
|
||||||
this.activeSchemeIndex = Math.max(0, index - 1).toString();
|
|
||||||
}
|
|
||||||
},
|
|
||||||
/* getLabelByValue( value) {
|
|
||||||
const subject = this.subjectStr.find(item => item.value === value);
|
const subject = this.subjectStr.find(item => item.value === value);
|
||||||
return subject ? subject.label : null;
|
return subject ? subject.label : null;
|
||||||
}, */
|
|
||||||
getLabelByValue(value) {
|
|
||||||
const map = {
|
|
||||||
"0": "业务经理",
|
|
||||||
"1": "科目一",
|
|
||||||
"2": "科目二",
|
|
||||||
"3": "科目三",
|
|
||||||
"4": "科目四"
|
|
||||||
};
|
|
||||||
return map[value] || `科目${value}`;
|
|
||||||
},
|
},
|
||||||
|
|
||||||
// 查询默认提成配置
|
// 查询默认提成配置
|
||||||
/* async getDeduct() {
|
async getDeduct() {
|
||||||
const data = {
|
const data = {
|
||||||
pageNum: 1,
|
pageNum: 1,
|
||||||
pageSize: 1000
|
pageSize: 1000
|
||||||
@ -456,21 +357,6 @@ export default {
|
|||||||
item.deduct = 0
|
item.deduct = 0
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}, */
|
|
||||||
async getDeduct() {
|
|
||||||
const res = await listDeduct({ pageNum: 1, pageSize: 1000 });
|
|
||||||
const deductMap = {};
|
|
||||||
res.data.records.forEach(item => {
|
|
||||||
deductMap[item.courseSubject] = item.deduct;
|
|
||||||
});
|
|
||||||
|
|
||||||
// 给第一个方案的默认提成填充(可自行选择是否全部填充)
|
|
||||||
if (this.formData.schemeList.length > 0) {
|
|
||||||
const deductList = this.formData.schemeList[0].deductList;
|
|
||||||
deductList.forEach(item => {
|
|
||||||
item.deduct = deductMap[item.courseSubject] || 0;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
|
|
||||||
handleClose() {
|
handleClose() {
|
||||||
@ -557,7 +443,6 @@ export default {
|
|||||||
deductList: [],
|
deductList: [],
|
||||||
ifDisplay: undefined,
|
ifDisplay: undefined,
|
||||||
ageGroup: undefined,
|
ageGroup: undefined,
|
||||||
schemeList: [],
|
|
||||||
};
|
};
|
||||||
this.resetForm("formRef");
|
this.resetForm("formRef");
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,262 +0,0 @@
|
|||||||
<template>
|
|
||||||
<el-dialog
|
|
||||||
:title="dialogTitle"
|
|
||||||
:visible.sync="dialogVisible"
|
|
||||||
width="600px"
|
|
||||||
:close-on-click-modal="false"
|
|
||||||
>
|
|
||||||
<el-form
|
|
||||||
ref="formRef"
|
|
||||||
:model="formData"
|
|
||||||
:rules="formRules"
|
|
||||||
label-width="120px"
|
|
||||||
label-position="right"
|
|
||||||
>
|
|
||||||
<el-form-item label="方案名称" prop="name">
|
|
||||||
<el-input
|
|
||||||
v-model="formData.name"
|
|
||||||
placeholder="请输入方案名称"
|
|
||||||
clearable
|
|
||||||
maxlength="30"
|
|
||||||
show-word-limit
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
|
|
||||||
<el-divider content-position="left">提成配置</el-divider>
|
|
||||||
|
|
||||||
<el-form-item label="科目一提成" prop="subject1Deduct">
|
|
||||||
<el-input-number
|
|
||||||
v-model="formData.subject1Deduct"
|
|
||||||
:precision="2"
|
|
||||||
:min="0"
|
|
||||||
:max="10000"
|
|
||||||
:step="100"
|
|
||||||
controls-position="right"
|
|
||||||
/>
|
|
||||||
<span class="unit">元</span>
|
|
||||||
</el-form-item>
|
|
||||||
|
|
||||||
<el-form-item label="科目二提成" prop="subject2Deduct">
|
|
||||||
<el-input-number
|
|
||||||
v-model="formData.subject2Deduct"
|
|
||||||
:precision="2"
|
|
||||||
:min="0"
|
|
||||||
:max="10000"
|
|
||||||
:step="100"
|
|
||||||
controls-position="right"
|
|
||||||
/>
|
|
||||||
<span class="unit">元</span>
|
|
||||||
</el-form-item>
|
|
||||||
|
|
||||||
<el-form-item label="科目三提成" prop="subject3Deduct">
|
|
||||||
<el-input-number
|
|
||||||
v-model="formData.subject3Deduct"
|
|
||||||
:precision="2"
|
|
||||||
:min="0"
|
|
||||||
:max="10000"
|
|
||||||
:step="100"
|
|
||||||
controls-position="right"
|
|
||||||
/>
|
|
||||||
<span class="unit">元</span>
|
|
||||||
</el-form-item>
|
|
||||||
|
|
||||||
<el-form-item label="科目四提成" prop="subject4Deduct">
|
|
||||||
<el-input-number
|
|
||||||
v-model="formData.subject4Deduct"
|
|
||||||
:precision="2"
|
|
||||||
:min="0"
|
|
||||||
:max="10000"
|
|
||||||
:step="100"
|
|
||||||
controls-position="right"
|
|
||||||
/>
|
|
||||||
<span class="unit">元</span>
|
|
||||||
</el-form-item>
|
|
||||||
|
|
||||||
<el-form-item label="业务经理提成" prop="subject0Deduct">
|
|
||||||
<el-input-number
|
|
||||||
v-model="formData.subject0Deduct"
|
|
||||||
:precision="2"
|
|
||||||
:min="0"
|
|
||||||
:max="10000"
|
|
||||||
:step="100"
|
|
||||||
controls-position="right"
|
|
||||||
/>
|
|
||||||
<span class="unit">元</span>
|
|
||||||
</el-form-item>
|
|
||||||
|
|
||||||
<el-form-item label="是否默认方案" prop="isDefault">
|
|
||||||
<el-switch
|
|
||||||
v-model="formData.isDefault"
|
|
||||||
active-color="#13ce66"
|
|
||||||
inactive-color="#ff4949"
|
|
||||||
active-text="默认方案"
|
|
||||||
inactive-text="非默认方案"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
</el-form>
|
|
||||||
|
|
||||||
<div slot="footer" class="dialog-footer">
|
|
||||||
<el-button @click="dialogVisible = false">取 消</el-button>
|
|
||||||
<el-button type="primary" @click="handleSubmit" :loading="submitLoading">确 定</el-button>
|
|
||||||
</div>
|
|
||||||
</el-dialog>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
// import * as SchemeApi from '@/views/drivingSchool/schoolCourse/schemeApi';
|
|
||||||
|
|
||||||
import * as SchemeApi from '@/views/drivingSchool/schoolCourse/api/schemeApi'
|
|
||||||
|
|
||||||
export default {
|
|
||||||
name: "SchemeForm",
|
|
||||||
data() {
|
|
||||||
const validateDeduct = (rule, value, callback) => {
|
|
||||||
if (value === null || value === undefined) {
|
|
||||||
return callback(new Error('请输入提成金额'));
|
|
||||||
}
|
|
||||||
if (value < 0) {
|
|
||||||
return callback(new Error('提成金额不能为负数'));
|
|
||||||
}
|
|
||||||
callback();
|
|
||||||
};
|
|
||||||
|
|
||||||
return {
|
|
||||||
dialogVisible: false,
|
|
||||||
dialogTitle: "",
|
|
||||||
submitLoading: false,
|
|
||||||
formData: {
|
|
||||||
id: undefined,
|
|
||||||
courseId: undefined,
|
|
||||||
name: "",
|
|
||||||
subject0Deduct: 0,
|
|
||||||
subject1Deduct: 0,
|
|
||||||
subject2Deduct: 0,
|
|
||||||
subject3Deduct: 0,
|
|
||||||
subject4Deduct: 0,
|
|
||||||
isDefault: false
|
|
||||||
},
|
|
||||||
formRules: {
|
|
||||||
name: [
|
|
||||||
{ required: true, message: "请输入方案名称", trigger: "blur" },
|
|
||||||
{ min: 2, max: 30, message: "长度在 2 到 30 个字符", trigger: "blur" }
|
|
||||||
],
|
|
||||||
|
|
||||||
subject1Deduct: [
|
|
||||||
{ required: true, validator: validateDeduct, trigger: "blur" }
|
|
||||||
],
|
|
||||||
subject2Deduct: [
|
|
||||||
{ required: true, validator: validateDeduct, trigger: "blur" }
|
|
||||||
],
|
|
||||||
subject3Deduct: [
|
|
||||||
{ required: true, validator: validateDeduct, trigger: "blur" }
|
|
||||||
],
|
|
||||||
subject4Deduct: [
|
|
||||||
{ required: true, validator: validateDeduct, trigger: "blur" }
|
|
||||||
]
|
|
||||||
}
|
|
||||||
};
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
open(schemeId, courseId) {
|
|
||||||
this.dialogVisible = true;
|
|
||||||
this.resetForm();
|
|
||||||
this.formData.courseId = courseId;
|
|
||||||
|
|
||||||
if (schemeId) {
|
|
||||||
this.dialogTitle = "修改提成方案";
|
|
||||||
this.fetchSchemeData(schemeId);
|
|
||||||
} else {
|
|
||||||
this.dialogTitle = "新增提成方案";
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
async fetchSchemeData(id) {
|
|
||||||
try {
|
|
||||||
this.submitLoading = true;
|
|
||||||
const res = await SchemeApi.getScheme(id);
|
|
||||||
this.formData = {
|
|
||||||
...res.data,
|
|
||||||
// 确保数字类型字段不为null
|
|
||||||
subject0Deduct: res.data.subject0Deduct || 0,
|
|
||||||
subject1Deduct: res.data.subject1Deduct || 0,
|
|
||||||
subject2Deduct: res.data.subject2Deduct || 0,
|
|
||||||
subject3Deduct: res.data.subject3Deduct || 0,
|
|
||||||
subject4Deduct: res.data.subject4Deduct || 0
|
|
||||||
};
|
|
||||||
} catch (error) {
|
|
||||||
console.error("获取提成方案数据失败:", error);
|
|
||||||
this.$modal.msgError("获取数据失败,请重试");
|
|
||||||
this.dialogVisible = false;
|
|
||||||
} finally {
|
|
||||||
this.submitLoading = false;
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
handleSubmit() {
|
|
||||||
this.$refs.formRef.validate(async valid => {
|
|
||||||
if (!valid) return;
|
|
||||||
|
|
||||||
try {
|
|
||||||
this.submitLoading = true;
|
|
||||||
const isEdit = !!this.formData.id;
|
|
||||||
|
|
||||||
if (isEdit) {
|
|
||||||
await SchemeApi.updateScheme(this.formData);
|
|
||||||
this.$modal.msgSuccess("修改成功");
|
|
||||||
} else {
|
|
||||||
await SchemeApi.createScheme(this.formData);
|
|
||||||
this.$modal.msgSuccess("新增成功");
|
|
||||||
}
|
|
||||||
|
|
||||||
this.dialogVisible = false;
|
|
||||||
this.$emit("success");
|
|
||||||
} catch (error) {
|
|
||||||
console.error("提交失败:", error);
|
|
||||||
this.$modal.msgError(isEdit ? "修改失败" : "新增失败");
|
|
||||||
} finally {
|
|
||||||
this.submitLoading = false;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
},
|
|
||||||
|
|
||||||
resetForm() {
|
|
||||||
this.formData = {
|
|
||||||
id: undefined,
|
|
||||||
courseId: undefined,
|
|
||||||
name: "",
|
|
||||||
subject0Deduct: 0,
|
|
||||||
subject1Deduct: 0,
|
|
||||||
subject2Deduct: 0,
|
|
||||||
subject3Deduct: 0,
|
|
||||||
subject4Deduct: 0,
|
|
||||||
isDefault: false
|
|
||||||
};
|
|
||||||
this.$nextTick(() => {
|
|
||||||
if (this.$refs.formRef) {
|
|
||||||
this.$refs.formRef.clearValidate();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<style scoped>
|
|
||||||
.unit {
|
|
||||||
margin-left: 10px;
|
|
||||||
color: #888;
|
|
||||||
font-size: 14px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.el-divider {
|
|
||||||
margin: 15px 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.el-input-number {
|
|
||||||
width: 200px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.el-select {
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
@ -26,7 +26,7 @@
|
|||||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
<el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true" @expand-change="handleExpandChange">
|
<el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true">
|
||||||
<el-table-column label="课程名字" align="center" prop="name" />
|
<el-table-column label="课程名字" align="center" prop="name" />
|
||||||
<el-table-column label="驾照类型" align="center" prop="type">
|
<el-table-column label="驾照类型" align="center" prop="type">
|
||||||
<template v-slot="scope">
|
<template v-slot="scope">
|
||||||
@ -44,78 +44,6 @@
|
|||||||
{{ scope.row.ifDisplay === '0' ? '开启' : '未开启' }}
|
{{ scope.row.ifDisplay === '0' ? '开启' : '未开启' }}
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<!-- 展开列 -->
|
|
||||||
<el-table-column label="提成方案" align="center" type="expand" width="190px">
|
|
||||||
<template #default="{row}">
|
|
||||||
<div v-loading="schemeLoading[row.id]" style="padding: 0 50px;">
|
|
||||||
<div style="display: flex; flex-direction: row; align-items: center; ">
|
|
||||||
<div style="margin: 10px 0; font-weight: bold">提成方案列表</div>
|
|
||||||
<div style="margin-left: 20px">
|
|
||||||
<el-button
|
|
||||||
type="primary"
|
|
||||||
size="mini"
|
|
||||||
icon="el-icon-plus"
|
|
||||||
@click="openSchemeForm(undefined, row.id)"
|
|
||||||
>新增提成方案</el-button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<el-table :data="row.schemeList" border style="width: calc(100% - 60px);">
|
|
||||||
<el-table-column label="方案名称" prop="name" align="center"/>
|
|
||||||
<el-table-column label="科目一提成" >
|
|
||||||
<template #default="{row}">
|
|
||||||
{{ row.subject1Deduct || 0 }} 元
|
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
<el-table-column label="科目二提成" >
|
|
||||||
<template #default="{row}">
|
|
||||||
{{ row.subject2Deduct || 0 }} 元
|
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
<el-table-column label="科目三提成" >
|
|
||||||
<template #default="{row}">
|
|
||||||
{{ row.subject3Deduct || 0 }} 元
|
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
<el-table-column label="科目四提成" >
|
|
||||||
<template #default="{row}">
|
|
||||||
{{ row.subject4Deduct || 0 }} 元
|
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
<el-table-column label="业务经理提成" >
|
|
||||||
<template #default="{row}">
|
|
||||||
{{ row.subject0Deduct || 0 }} 元
|
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
<el-table-column label="是否为默认方案" >
|
|
||||||
<template #default="{row}">
|
|
||||||
<el-tag :type="row.isDefault ? 'success' : 'info'">
|
|
||||||
{{ row.isDefault ? '是' : '否' }}
|
|
||||||
</el-tag>
|
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
<el-table-column label="操作" fixed="right">
|
|
||||||
<template #default="{row}">
|
|
||||||
<el-button
|
|
||||||
size="mini"
|
|
||||||
type="text"
|
|
||||||
icon="el-icon-edit"
|
|
||||||
@click="openSchemeForm(row.id, row.courseId)"
|
|
||||||
>修改</el-button>
|
|
||||||
<el-button
|
|
||||||
size="mini"
|
|
||||||
type="text"
|
|
||||||
icon="el-icon-delete"
|
|
||||||
:disabled="row.isDefault"
|
|
||||||
@click="handleDeleteScheme(row.id, row.courseId)"
|
|
||||||
>删除</el-button>
|
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
</el-table>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
<!-- <el-table-column label="限制年龄段" align="center" prop="ageGroup" >
|
<!-- <el-table-column label="限制年龄段" align="center" prop="ageGroup" >
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
{{ formatDictLabel(scope.row.ageGroup) }}
|
{{ formatDictLabel(scope.row.ageGroup) }}
|
||||||
@ -133,7 +61,6 @@
|
|||||||
@pagination="getList"/>
|
@pagination="getList"/>
|
||||||
<!-- 对话框(添加 / 修改) -->
|
<!-- 对话框(添加 / 修改) -->
|
||||||
<DlDriveSchoolCourseForm ref="formRef" @success="getList" />
|
<DlDriveSchoolCourseForm ref="formRef" @success="getList" />
|
||||||
<SchemeForm ref="schemeFormRef" @success="handleSchemeSuccess" />
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@ -141,12 +68,9 @@
|
|||||||
import * as DlDriveSchoolCourseApi from '@/views/drivingSchool/schoolCourse/courseApi';
|
import * as DlDriveSchoolCourseApi from '@/views/drivingSchool/schoolCourse/courseApi';
|
||||||
import DlDriveSchoolCourseForm from '@/views/drivingSchool/schoolCourse/form/DlDriveSchoolCourseForm.vue';
|
import DlDriveSchoolCourseForm from '@/views/drivingSchool/schoolCourse/form/DlDriveSchoolCourseForm.vue';
|
||||||
import { getDictDatas } from '@/utils/dict'
|
import { getDictDatas } from '@/utils/dict'
|
||||||
import * as SchemeApi from '@/views/drivingSchool/schoolCourse/api/schemeApi'
|
|
||||||
import SchemeForm from '@/views/drivingSchool/schoolCourse/form/schemeForm.vue'
|
|
||||||
export default {
|
export default {
|
||||||
name: "DlDriveSchoolCourse",
|
name: "DlDriveSchoolCourse",
|
||||||
components: {
|
components: {
|
||||||
SchemeForm,
|
|
||||||
DlDriveSchoolCourseForm,
|
DlDriveSchoolCourseForm,
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
@ -175,10 +99,6 @@ export default {
|
|||||||
name: null,
|
name: null,
|
||||||
},
|
},
|
||||||
ageGroupList: getDictDatas("drive_school_age_group"),
|
ageGroupList: getDictDatas("drive_school_age_group"),
|
||||||
// 用于记录每个课程的提成方案加载状态
|
|
||||||
schemeLoading: {},
|
|
||||||
// 记录当前展开的行
|
|
||||||
expandedRows: []
|
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
@ -236,67 +156,6 @@ export default {
|
|||||||
this.exportLoading = false;
|
this.exportLoading = false;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
async handleExpandChange(row, expandedRows) {
|
|
||||||
this.expandedRows = expandedRows.map(r => r.id);
|
|
||||||
if (expandedRows.includes(row)) {
|
|
||||||
// 展开时加载提成方案数据
|
|
||||||
try {
|
|
||||||
this.$set(this.schemeLoading, row.id, true);
|
|
||||||
const res = await SchemeApi.getSchemeListByCourseId(row.id);
|
|
||||||
row.schemeList = res.data;
|
|
||||||
} finally {
|
|
||||||
this.$set(this.schemeLoading, row.id, false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
/** 打开提成方案表单 */
|
|
||||||
openSchemeForm(schemeId, courseId) {
|
|
||||||
this.$refs.schemeFormRef.open(schemeId, courseId);
|
|
||||||
},
|
|
||||||
|
|
||||||
/** 提成方案操作成功回调 */
|
|
||||||
async handleSchemeSuccess() {
|
|
||||||
// 重新加载当前展开的课程的提成方案
|
|
||||||
for (const row of this.list) {
|
|
||||||
if (this.expandedRows.includes(row.id)) {
|
|
||||||
try {
|
|
||||||
this.$set(this.schemeLoading, row.id, true);
|
|
||||||
const res = await SchemeApi.getSchemeListByCourseId(row.id);
|
|
||||||
row.schemeList = res.data;
|
|
||||||
} finally {
|
|
||||||
this.$set(this.schemeLoading, row.id, false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
/** 删除提成方案 */
|
|
||||||
async handleDeleteScheme(schemeId, courseId) {
|
|
||||||
await this.$modal.confirm('确认删除该提成方案吗?');
|
|
||||||
try {
|
|
||||||
await SchemeApi.deleteScheme(schemeId);
|
|
||||||
this.$modal.msgSuccess("删除成功");
|
|
||||||
// 重新加载该课程的提成方案
|
|
||||||
const row = this.list.find(item => item.id === courseId);
|
|
||||||
if (row && this.expandedRows.includes(courseId)) {
|
|
||||||
try {
|
|
||||||
this.$set(this.schemeLoading, row.id, true);
|
|
||||||
const res = await SchemeApi.getSchemeListByCourseId(courseId);
|
|
||||||
row.schemeList = res.data;
|
|
||||||
} finally {
|
|
||||||
this.$set(this.schemeLoading, row.id, false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch {}
|
|
||||||
},
|
|
||||||
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
<style scoped>
|
|
||||||
.el-table__expanded-cell {
|
|
||||||
padding: 20px 50px !important;
|
|
||||||
background-color: #fafafa;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|||||||
@ -52,24 +52,17 @@
|
|||||||
<el-dialog :title="title" :visible.sync="open" width="800px" append-to-body>
|
<el-dialog :title="title" :visible.sync="open" width="800px" append-to-body>
|
||||||
<el-form ref="form" :model="form" :rules="rules" label-width="100px">
|
<el-form ref="form" :model="form" :rules="rules" label-width="100px">
|
||||||
<el-row>
|
<el-row>
|
||||||
<!-- <el-col :span="24">-->
|
<!-- <el-col :span="24">-->
|
||||||
<!-- <el-form-item label="上级菜单">-->
|
<!-- <el-form-item label="上级菜单">-->
|
||||||
<!-- <treeselect v-model="form.pid" :options="menuOptions" :normalizer="normalizer" :show-count="true"-->
|
<!-- <treeselect v-model="form.pid" :options="menuOptions" :normalizer="normalizer" :show-count="true"-->
|
||||||
<!-- placeholder="选择上级菜单"/>-->
|
<!-- placeholder="选择上级菜单"/>-->
|
||||||
<!-- </el-form-item>-->
|
<!-- </el-form-item>-->
|
||||||
<!-- </el-col>-->
|
<!-- </el-col>-->
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="名称" prop="name">
|
<el-form-item label="名称" prop="name">
|
||||||
<el-input v-model="form.name" placeholder="请输入名称"/>
|
<el-input v-model="form.name" placeholder="请输入名称"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12" v-if="form.pid != 0">
|
|
||||||
<el-form-item label="人员" prop="postId">
|
|
||||||
<el-select multiple filterable v-model="form.userIdList" placeholder="请选择人员">
|
|
||||||
<el-option v-for="item in staffList" :key="item.id" :label="item.nickname" :value="item.id"/>
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
</el-row>
|
||||||
</el-form>
|
</el-form>
|
||||||
<div slot="footer" class="dialog-footer">
|
<div slot="footer" class="dialog-footer">
|
||||||
@ -96,7 +89,6 @@ import {
|
|||||||
listBusiness,
|
listBusiness,
|
||||||
updateBusiness
|
updateBusiness
|
||||||
} from "@/views/inspection/businessChannel/api";
|
} from "@/views/inspection/businessChannel/api";
|
||||||
import {listUser} from "@/views/inspection/staff/api/staff";
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "BusinessChannel",
|
name: "BusinessChannel",
|
||||||
@ -109,7 +101,6 @@ export default {
|
|||||||
showSearch: true,
|
showSearch: true,
|
||||||
// 菜单表格树数据
|
// 菜单表格树数据
|
||||||
menuList: [],
|
menuList: [],
|
||||||
staffList: [],
|
|
||||||
// 菜单树选项
|
// 菜单树选项
|
||||||
menuOptions: [],
|
menuOptions: [],
|
||||||
// 弹出层标题
|
// 弹出层标题
|
||||||
@ -153,7 +144,6 @@ export default {
|
|||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
this.getList();
|
this.getList();
|
||||||
this.getStaff();
|
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
// 选择图标
|
// 选择图标
|
||||||
@ -168,15 +158,6 @@ export default {
|
|||||||
this.loading = false;
|
this.loading = false;
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
getStaff() {
|
|
||||||
const params = {
|
|
||||||
pageNo: 1,
|
|
||||||
pageSize: 99999
|
|
||||||
}
|
|
||||||
listUser(params).then(response => {
|
|
||||||
this.staffList = response.data.records;
|
|
||||||
});
|
|
||||||
},
|
|
||||||
/** 转换菜单数据结构 */
|
/** 转换菜单数据结构 */
|
||||||
normalizer(node) {
|
normalizer(node) {
|
||||||
if (node.children && !node.children.length) {
|
if (node.children && !node.children.length) {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user