This commit is contained in:
xyc 2025-04-15 17:11:01 +08:00
parent 444dd4ea79
commit 0c119c0095
11 changed files with 481 additions and 145 deletions

View File

@ -252,6 +252,8 @@ export const DICT_TYPE = {
DRIVE_SCHOOL_ORDER_STATUS: 'drive_school_order_status',
//驾校订单支付类型
DRIVE_SCHOOL_PAY_TYPE: 'drive_school_pay_type',
// 维修通知公告
DRIVE_SCHOOL_NOTICE_SERVER: 'jiaxiao',
}

View File

@ -55,15 +55,15 @@
@click="handleDelete"
>删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
>导出</el-button>
</el-col>
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="warning"-->
<!-- plain-->
<!-- icon="el-icon-download"-->
<!-- size="mini"-->
<!-- @click="handleExport"-->
<!-- >导出</el-button>-->
<!-- </el-col>-->
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
@ -74,12 +74,13 @@
<dict-tag :type="DICT_TYPE.Evaluate_type" :value="scope.row.evaluateType"/>
</template>
</el-table-column>
<el-table-column label="驾校名称" align="center" prop="jxName" />
<!-- <el-table-column label="驾校名称" align="center" prop="jxName" />-->
<el-table-column label="用户" align="center" prop="userName" />
<el-table-column label="驾校评价" align="center" prop="content" />
<el-table-column label="教练名称" align="center" prop="jlName" />
<el-table-column label="教练评价" align="center" prop="jlContent" />
<el-table-column label="满意度" align="center" prop="likes" />
<!-- <el-table-column label="驾校评价" align="center" prop="content" />-->
<el-table-column label="教练名称" align="center" prop="coachName" />
<el-table-column label="技术评价" align="center" prop="teachContent" />
<el-table-column label="服务评价" align="center" prop="serviceContent" />
<el-table-column label="满意度" align="center" prop="rate" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<!-- <el-button

View File

@ -16,7 +16,7 @@
<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-group v-model="formData.userSex">
<el-radio v-for="dict in this.getDictDatas(DICT_TYPE.SYSTEM_USER_SEX)"
:key="dict.value" :label="dict.value">{{ dict.label }}
</el-radio>
@ -56,9 +56,14 @@
</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-select v-model="formData.isSign" placeholder="请选择是否已面签">-->
<!-- <el-option label="请选择字典生成" :label="item.label" v-for="item in this.getDictDatas(DICT_TYPE.SYSTEM_USER_SEX)"/>-->
<!-- </el-select>-->
<el-radio-group v-model="formData.isSign">
<el-radio v-for="dict in isSignRadio"
:key="dict.value" :label="dict.value">{{ dict.label }}
</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="尾款" prop="restMoney">
<el-input v-model="formData.restMoney" placeholder="请输入尾款"/>
@ -117,11 +122,21 @@ export default {
ifEndRadio:[
{
label:'是',
value:'1'
value:true
},
{
label:'否',
value:'0'
value:false
},
],
isSignRadio:[
{
label:'是',
value:1
},
{
label:'否',
value:0
},
],
//

View File

@ -0,0 +1,43 @@
<template>
<div class="app-container">
<el-tabs v-model="activeName">
<el-tab-pane v-for="server in serverList" :label="server.name" :name="server.code">
<BaseNotice :server="server.code" :parent-server="parentServer" />
</el-tab-pane>
</el-tabs>
</div>
</template>
<script>
import BaseNotice from "@/views/base/notice/BaseNotice.vue";
import {listCategory} from "@/api/system/category";
import {DICT_TYPE} from "@/utils/dict";
export default {
name: "RepairNotice",
components: {BaseNotice},
data(){
return{
parentServer: DICT_TYPE.DRIVE_SCHOOL_NOTICE_SERVER,
serverList: [],
activeName: null
}
},
created() {
this.getServerList()
},
methods:{
async getServerList(){
const res = await listCategory()
this.serverList = this.handleTree(res.data, 'id', 'pid', 'children', '0')
.find(item => item.code === DICT_TYPE.NOTICE_SERVER).children
.find(item => item.code === DICT_TYPE.DRIVE_SCHOOL_NOTICE_SERVER).children
this.activeName = this.serverList[0].code
},
}
}
</script>
<style scoped lang="scss">
</style>

View File

@ -3,7 +3,7 @@ import request from '@/utils/request'
// 查询预约练车列表
export function listReservationCourse(query) {
return request({
url: '/drivingSchool/system/reservationCourse/pclist',
url: '/reservation-course/page',
method: 'get',
params: query
})

View File

@ -9,9 +9,9 @@
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="预约日期" prop="orderTime">
<el-form-item label="预约日期" prop="reservDay">
<el-date-picker clearable
v-model="queryParams.orderTime"
v-model="queryParams.reservDay"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择预约日期">
@ -31,95 +31,29 @@
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
>新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
>删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
>导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="reservationCourseList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column
type="index"
width="50">
</el-table-column>
<el-table-column label="用户姓名" align="center" prop="userName" />
<el-table-column label="用户手机号" align="center" prop="sysUser.phonenumber" />
<el-table-column label="预约日期" align="center" prop="orderTime" width="180">
<el-table-column label="学员姓名" align="center" prop="userName" />
<el-table-column label="预约科目" align="center" prop="subjectStr" />
<el-table-column label="预约日期" align="center" prop="reservDay" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.orderTime, '{y}-{m}-{d}') }}</span>
<span>{{ parseTime(scope.row.reservDay, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="时间段" align="center" prop="timePeriod" />
<!-- <el-table-column label="教练名字" align="center" prop="coachName" />-->
<el-table-column label="时间段" align="center" prop="reservTime" />
<el-table-column label="教练" align="center" prop="coachName" >
<!-- <template #default="data">-->
<!-- <el-select @change="changeCoachName(data.row)" v-model="data.row.coachName" placeholder="请选择">-->
<!-- <el-option-->
<!-- v-for="item in jlListAll"-->
<!-- :key="item.instructorName"-->
<!-- :label="item.instructorName"-->
<!-- :value="item.instructorName">-->
<!-- </el-option>-->
<!-- </el-select>-->
<!-- </template>-->
</el-table-column>
<!-- <el-table-column label="科目类型" align="center" prop="accountType" />-->
<!-- <el-table-column label="科目类型" align="center" >-->
<!-- <template #default="data">-->
<!-- <div v-if="data.row.accountType.includes('2') ">科目二</div>-->
<!-- <div v-if="data.row.accountType.includes('3') ">科目三</div>-->
<!-- <div v-if="data.row.accountType.includes('5') ">科目五</div>-->
<!-- </template>-->
<!-- </el-table-column>-->
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<!-- <el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
>修改</el-button>-->
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
>删除</el-button>
</template>
</el-table-column>
<el-table-column label="是否通过" align="center" prop="statusStr" />
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:page.sync="queryParams.pageNo"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
@ -130,9 +64,9 @@
<el-form-item label="用户姓名" prop="userName">
<el-input v-model="form.userName" placeholder="请输入用户姓名" />
</el-form-item>
<el-form-item label="预约日期" prop="orderTime">
<el-form-item label="预约日期" prop="reservDay">
<el-date-picker clearable
v-model="form.orderTime"
v-model="form.reservDay"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择预约日期">
@ -196,7 +130,7 @@ export default {
//
queryParams: {
pageNum: 1,
pageNo: 1,
pageSize: 10,
deptId: null,
userId: null,
@ -216,7 +150,7 @@ export default {
},
created() {
this.getList();
this.changeFindJlListAll()
// this.changeFindJlListAll()
},
methods: {
changeCoachName(data) {
@ -265,7 +199,7 @@ export default {
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.queryParams.pageNo = 1;
this.getList();
},
/** 重置按钮操作 */

View File

@ -0,0 +1,44 @@
import request from '@/utils/request'
// 查询驾校-轮播图列表
export function list(query) {
return request({
url: '/address/page',
method: 'get',
params: query
})
}
// 查询驾校-轮播图详细
export function getAddress(id) {
return request({
url: '/address/get/' + id,
method: 'get'
})
}
// 新增驾校-轮播图
export function addAddress(data) {
return request({
url: '/address',
method: 'post',
data: data
})
}
// 修改驾校-轮播图
export function updateAddress(data) {
return request({
url: '/address',
method: 'put',
data: data
})
}
// 删除驾校-轮播图
export function delAddress(id) {
return request({
url: '/address/' + id,
method: 'delete'
})
}

View File

@ -0,0 +1,296 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<!-- <el-form-item label="标题" prop="swiperName">
<el-input
v-model="queryParams.swiperName"
placeholder="请输入标题"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="跳转地址" prop="jumpUrl">
<el-input
v-model="queryParams.jumpUrl"
placeholder="请输入跳转地址"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="排序" prop="listOrder">
<el-input
v-model="queryParams.listOrder"
placeholder="请输入排序"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>-->
<!-- <el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>-->
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
>新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
>删除</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="addressList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column
type="index"
width="50">
</el-table-column>
<!-- <el-table-column label="跳转地址" align="center" prop="jumpUrl" />-->
<el-table-column label="地址" align="center" prop="address" />
<el-table-column label="详细地址" align="center" prop="addressName" />
<el-table-column label="科目" align="center" prop="subjects" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
>删除</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNo"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改驾校-轮播图对话框 -->
<el-dialog :title="title" :visible.sync="open" width="750px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<!-- <el-form-item label="标题" prop="swiperName">
<el-input v-model="form.swiperName" placeholder="请输入标题" />
</el-form-item>-->
<!-- <el-form-item label="跳转地址" prop="jumpUrl">
<el-input v-model="form.jumpUrl" placeholder="请输入跳转地址" />
</el-form-item>-->
<el-form-item label="地址" prop="address">
<el-input v-model="form.address" placeholder="请输入地址" />
</el-form-item>
<el-form-item label="详细地址" prop="addressName">
<el-input v-model="form.addressName" placeholder="请输入详细地址" />
</el-form-item>
<el-form-item label="科目" prop="subjects">
<el-select v-model="form.subjects" placeholder="请选择科目">
<el-option
v-for="item in subjectsList"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</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>
</div>
</template>
<script>
import { list, getAddress, delAddress, addAddress, updateAddress } from "./api/schoolAddress";
export default {
name: "Swiper",
data() {
return {
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
// -
addressList: [],
baseImageUrl: process.env.VUE_APP_FILE_API,
subjectsList: [
{
value: '1',
label: '科目一'
},
{
value: '2',
label: '科目二'
},
{
value: '3',
label: '科目三'
},
{
value: '4',
label: '科目四'
},
],
//
title: "",
//
open: false,
//
queryParams: {
pageNo: 1,
pageSize: 10,
swiperName: null,
swiperPicture: null,
jumpUrl: null,
listOrder: null,
},
//
form: {},
//
rules: {
swiperPicture: [
{ required: true, message: "轮播图片不能为空", trigger: "blur" }
],
listOrder: [
{ required: true, message: "排序不能为空", trigger: "blur" }
],
}
};
},
created() {
this.getList();
},
methods: {
/** 查询驾校-轮播图列表 */
getList() {
this.loading = true;
list(this.queryParams).then(response => {
this.addressList = response.data.records;
this.total = response.data.total;
this.loading = false;
});
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {
id: null,
swiperName: null,
swiperPicture: null,
jumpUrl: null,
listOrder: null,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNo = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.id)
this.single = selection.length!==1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加驾校-轮播图";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id || this.ids
getAddress(id).then(response => {
this.form = response.data;
this.open = true;
this.title = "修改驾校-轮播图";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
updateAddress(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addAddress(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$modal.confirm('是否确认删除驾校-轮播图编号为"' + ids + '"的数据项?').then(function() {
return delAddress(ids);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
this.download('system/swiper/export', {
...this.queryParams
}, `swiper_${new Date().getTime()}.xlsx`)
}
}
};
</script>

View File

@ -201,6 +201,11 @@ export default {
openCoachDraw(){
this.drawerOpen = true
// initCoachListinitCoachList
console.log(this.formData.coachList)
this.initCoachList.map(item => {
item.checkedSubject = item.data.coachList
})
},
handleClose(){

View File

@ -1,52 +1,47 @@
<template>
<div class="app-container">
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-form-item label="驾校名称" prop="schoolName">
<el-input v-model="form.schoolName" placeholder="请输入驾校名称" />
<el-form-item label="驾校名称" prop="corpName" disabled>
<el-input v-model="form.corpName" placeholder="请输入驾校名称" />
</el-form-item>
<el-form-item label="驾校封面图" prop="photo">
<el-form-item label="驾校封面图" prop="photo" disabled>
<image-upload v-model="form.photo"/>
</el-form-item>
<el-form-item label="营业开始时间" prop="businessStartTime">
<el-time-select
placeholder="起始时间"
v-model="form.businessStartTime"
:picker-options="{
start: '08:30',
step: '00:15',
end: '18:30'
}">
</el-time-select>
</el-form-item>
<!-- <el-form-item label="营业开始时间" prop="businessStartTime">-->
<!-- <el-time-select-->
<!-- placeholder="起始时间"-->
<!-- v-model="form.businessStartTime"-->
<!-- :picker-options="{-->
<!-- start: '08:30',-->
<!-- step: '00:15',-->
<!-- end: '18:30'-->
<!-- }">-->
<!-- </el-time-select>-->
<!-- </el-form-item>-->
<el-form-item label="营业结束时间" prop="businessEndTime">
<el-time-select
placeholder="结束时间"
v-model="form.businessEndTime"
:picker-options="{
start: '08:30',
step: '00:15',
end: '18:30',
minTime: businessStartTime
}">
</el-time-select>
<!-- <el-form-item label="营业结束时间" prop="businessEndTime">-->
<!-- <el-time-select-->
<!-- placeholder="结束时间"-->
<!-- v-model="form.businessEndTime"-->
<!-- :picker-options="{-->
<!-- start: '08:30',-->
<!-- step: '00:15',-->
<!-- end: '18:30',-->
<!-- minTime: businessStartTime-->
<!-- }">-->
<!-- </el-time-select>-->
<!-- </el-form-item>-->
<el-form-item label="驾校负责人" prop="legalName" disabled>
<el-input v-model="form.legalName" placeholder="请输入驾校负责人" />
</el-form-item>
<el-form-item label="驾校负责人" prop="leaderName">
<el-input v-model="form.leaderName" placeholder="请输入驾校负责人" />
<el-form-item label="联系方式" prop="mobilePhone" disabled>
<el-input v-model="form.mobilePhone" placeholder="请输入联系方式" />
</el-form-item>
<el-form-item label="联系方式" prop="phone">
<el-input v-model="form.phone" placeholder="请输入联系方式" />
</el-form-item>
<map-componment style="margin-left: 35px" :pform="mapForm" ref="mapRef" @pform="getForm"></map-componment>
<!-- <p>详细地址<el-input v-model="form.address"-->
<!-- placeholder="请输入内容"-->
<!-- style="width: 50%"-->
<!-- @change="getLngLat"-->
<!-- ></el-input></p>-->
<!-- <map-componment style="margin-left: 35px" :pform="mapForm" ref="mapRef" @pform="getForm"></map-componment>-->
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="yesitis"> </el-button>
</div>
<!-- <div slot="footer" class="dialog-footer">-->
<!-- <el-button type="primary" @click="yesitis"> </el-button>-->
<!-- </div>-->
<!-- 添加或修改电梯品牌对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
@ -121,13 +116,13 @@ export default {
},
//
rules: {
schoolName: [
corpName: [
{ required: true, message: "驾校名称不能为空", trigger: "blur" }
],
phone: [
mobilePhone: [
{ required: true, message: "联系方式不能为空", trigger: "blur" },
],
leaderName: [
legalName: [
{ required: true, message: "驾校负责人不能为空", trigger: "blur" }
],
sort: [

View File

@ -63,7 +63,7 @@
<!-- <el-table-column label="标题" align="center" prop="swiperName" />-->
<el-table-column label="轮播图片" align="center" prop="swiperPicture" width="100">
<template slot-scope="scope">
<image-preview :src="scope.row.swiperPicture" :width="50" :height="50"/>
<image-preview :src="baseImageUrl + scope.row.swiperPicture" :width="50" :height="50"/>
</template>
</el-table-column>
<!-- <el-table-column label="跳转地址" align="center" prop="jumpUrl" />-->
@ -139,6 +139,7 @@ export default {
total: 0,
// -
swiperList: [],
baseImageUrl: process.env.VUE_APP_FILE_API,
//
title: "",
//
@ -173,7 +174,7 @@ export default {
getList() {
this.loading = true;
listSwiper(this.queryParams).then(response => {
this.swiperList = response.data;
this.swiperList = response.data.records;
this.loading = false;
});
},