Commit 1233bd36 authored by zhengke's avatar zhengke

增加页面

parent b8283557
<style>
.apply_List {
width: 100%;
height: 44px;
background-color: #f7f7f7;
line-height: 44px;
margin-bottom: 10px;
}
.apply_List span {
display: inline-block;
text-align: center;
font-size: 14px;
color: #000000;
}
.guest_Status span {
cursor: pointer;
color: #2961fe;
}
._font_size12 {
font-size: 12px !important;
}
.apply_List {
width: 100%;
height: 44px;
background-color: #f7f7f7;
line-height: 44px;
margin-bottom: 10px;
}
._addUpload_box {
display: block;
margin-top: 15px;
}
.apply_List span {
display: inline-block;
text-align: center;
font-size: 14px;
color: #000000;
}
._addUpload_box img {
width: 100%;
}
.guest_Status span {
cursor: pointer;
color: #2961fe;
}
._addUpload_box > div {
float: left;
width: 138px;
height: 92px;
border: 1px dashed rgba(210, 210, 210, 1);
border-radius: 2px;
cursor: pointer;
margin-bottom: 10px;
padding: 5px;
margin-right: 10px;
position: relative;
}
._font_size12 {
font-size: 12px !important;
}
._addUpload_box > div:hover {
background-color: #f5f5f5;
}
._addUpload_box {
display: block;
margin-top: 15px;
}
._addFile_name {
padding-left: 15px;
max-width: 450px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
._addUpload_box img {
width: 100%;
}
._addUpload_box .icon-guanbi1 {
font-size: 12px;
color: white;
display: inline-block;
margin-left: 15px;
position: absolute;
right: -6px;
top: -9px;
background-color: #f56c6c;
border-radius: 50%;
height: 20px;
width: 20px;
text-align: center;
line-height: 20px;
}
._addUpload_box>div {
float: left;
width: 138px;
height: 92px;
border: 1px dashed rgba(210, 210, 210, 1);
border-radius: 2px;
cursor: pointer;
margin-bottom: 10px;
padding: 5px;
margin-right: 10px;
position: relative;
}
._addUpload_box .icon-guanbi1:hover {
font-size: 12px;
color: #c94052;
}
._addUpload_box>div:hover {
background-color: #f5f5f5;
}
._addUpload_box .icon-excel,
._addUpload_box .icon-pdf,
._addUpload_box .icon-txt,
._addUpload_box .icon-wenjian,
._addUpload_box .icon-yasuobao,
._addUpload_box .icon-shipin,
._addUpload_box .icon-word {
text-align: center;
font-size: 38px;
color: green;
line-height: 75px;
}
._addUpload_box .icon-yasuobao {
color: gray;
}
._addFile_name {
padding-left: 15px;
max-width: 450px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
._show_img_box {
position: fixed;
background: rgba(0, 0, 0, 0.6);
left: 0;
top: 0;
width: 100vw !important;
height: 100vh;
z-index: 999;
text-align: center;
}
._addUpload_box .icon-guanbi1 {
font-size: 12px;
color: white;
display: inline-block;
margin-left: 15px;
position: absolute;
right: -6px;
top: -9px;
background-color: #f56c6c;
border-radius: 50%;
height: 20px;
width: 20px;
text-align: center;
line-height: 20px;
}
._addUpload_tips {
font-size: 12px;
color: #999999;
}
._addUpload_box .icon-guanbi1:hover {
font-size: 12px;
color: #c94052;
}
._jump_page {
cursor: pointer;
text-decoration: underline;
}
._addUpload_box .icon-excel,
._addUpload_box .icon-pdf,
._addUpload_box .icon-txt,
._addUpload_box .icon-wenjian,
._addUpload_box .icon-yasuobao,
._addUpload_box .icon-shipin,
._addUpload_box .icon-word {
text-align: center;
font-size: 38px;
color: green;
line-height: 75px;
}
._addUpload_box .icon-yasuobao {
color: gray;
}
._show_img_box {
position: fixed;
background: rgba(0, 0, 0, 0.6);
left: 0;
top: 0;
width: 100vw !important;
height: 100vh;
z-index: 999;
text-align: center;
}
._addUpload_tips {
font-size: 12px;
color: #999999;
}
._jump_page {
cursor: pointer;
text-decoration: underline;
}
._jump_page:hover {
color: #c94052;
}
.stop .el-upload-dragger {
font-size: 28px;
color: #8c939d;
width: 126px;
height: 80px;
line-height: 41px;
text-align: center;
}
._jump_page:hover {
color: #c94052;
}
.stop .el-upload-dragger {
font-size: 28px;
color: #8c939d;
width: 126px;
height: 80px;
line-height: 41px;
text-align: center;
}
</style>
<!--退课申请-->
<template>
<q-dialog
v-model="IsShowBackClassDialog"
content-class="bg-grey-1"
persistent
transition-show="scale"
transition-hide="scale"
>
<q-dialog v-model="IsShowBackClassDialog" content-class="bg-grey-1" persistent transition-show="scale"
transition-hide="scale">
<q-card style="width: 800px; max-width: 900px" class="stop">
<q-card-section>
<div class="text-h6">退课申请</div>
</q-card-section>
<div style="margin: 20px">
<div>
<div
class="apply_List"
v-for="(item, index) in studentList"
v-if="item.IsShow"
>
<div class="apply_List" v-for="(item, index) in studentList" :key="index" v-if="item.IsShow">
<span style="width:10% white-space: nowrap;">{{
item.GuestName
}}</span>
......@@ -151,45 +148,33 @@
<span style="width: 10%">{{ item.Age }}</span>
<span style="width: 20%">{{ item.Mobile }}</span>
<span style="width: 10%">
<template v-if="item.ClassHours"
>已学:{{ item.ClassHours }}课时
<template v-if="item.ClassHours">已学:{{ item.ClassHours }}课时
</template>
</span>
<span style="width: 10%">{{ item.GuestStateStr }}</span>
<span style="width: 20%" class="guest_Status">
<span v-if="item.GuestState == 1" @click="clickItem(item, 1)"
>申请</span
>
<span
style="margin-left: 10px"
v-if="item.GuestState == 4"
@click="clickItem(item, 2)"
>重新申请</span
>
<span
style="margin-left: 10px"
v-if="chooseItem && chooseItem.Id == item.Id"
@click="cancelApply"
>取消申请</span
>
<span v-if="item.GuestState == 1" @click="clickItem(item, 1)">申请</span>
<span style="margin-left: 10px" v-if="item.GuestState == 4" @click="clickItem(item, 2)">重新申请</span>
<span style="margin-left: 10px" v-if="chooseItem && chooseItem.Id == item.Id"
@click="cancelApply">取消申请</span>
</span>
</div>
</div>
<q-input
filled
stack-label
:dense="false"
v-model="applyReason"
style="margin-top: 20px"
type="textarea"
class="col-12"
label="申请理由"
/>
<div class="row" style="margin-top:20px;display:none;">
<div class="col-6 q-pr-lg">
<q-input filled v-model="BackAccountName" label="退还账户名"></q-input>
</div>
<div class="col-6">
<q-input filled v-model="BackAccount" label="退还账号"></q-input>
</div>
</div>
<q-input filled stack-label :dense="false" v-model="applyReason" style="margin-top: 20px" type="textarea"
class="col-12" label="申请理由" />
<q-input filled stack-label :dense="false" v-model="StateMent" style="margin-top: 20px;display:none" type="textarea"
class="col-12" label="协议申明" />
<div class="row">
<div class="col-12 q-mt-md text-grey-6">
上传附件:<span class="fj-tip" style="font-size: 10px; color: #f00"
>*单文件限制5M内</span
>
上传附件:<span class="fj-tip" style="font-size: 10px; color: #f00">*单文件限制5M内</span>
</div>
<div>
<!-- <p>{{$t('fnc.scfujian')}}<span class="_addUpload_tips">{{$t('tips.wjdxbncgsz')}}</span></p> -->
......@@ -197,20 +182,12 @@
<template v-for="(file, fIndex) in saveMsg">
<div v-if="file.Type == 3">
<div style="width: 100%; height: 100%; overflow: hidden">
<img
:src="file.Url ? file.Url : file.Content"
@click="showUpLoadFile(file)"
/>
<img :src="file.Url ? file.Url : file.Content" @click="showUpLoadFile(file)" />
</div>
<span
class="iconfont icon-guanbi1"
@click="deleteUploadFile(fIndex)"
></span>
<span class="iconfont icon-guanbi1" @click="deleteUploadFile(fIndex)"></span>
</div>
<div v-if="file.Type == 1">
<div
class="iconfont"
:class="
<div class="iconfont" :class="
file.Content.substring(
file.Content.lastIndexOf('.') + 1,
file.Content.length
......@@ -231,53 +208,24 @@
).toUpperCase() == 'DOC'
? 'icon-word'
: 'icon-excel'
"
@click="showUpLoadFile(file)"
></div>
<span
class="iconfont icon-guanbi1"
@click="deleteUploadFile(fIndex)"
></span>
" @click="showUpLoadFile(file)"></div>
<span class="iconfont icon-guanbi1" @click="deleteUploadFile(fIndex)"></span>
</div>
<div v-if="file.Type == 2">
<div
class="iconfont icon-wenjian"
@click="showUpLoadFile(file)"
></div>
<span
class="iconfont icon-guanbi1"
@click="deleteUploadFile(fIndex)"
></span>
<div class="iconfont icon-wenjian" @click="showUpLoadFile(file)"></div>
<span class="iconfont icon-guanbi1" @click="deleteUploadFile(fIndex)"></span>
</div>
<div v-if="file.Type == 4">
<div
class="iconfont icon-yasuobao"
@click="showUpLoadFile(file)"
></div>
<span
class="iconfont icon-guanbi1"
@click="deleteUploadFile(fIndex)"
></span>
<div class="iconfont icon-yasuobao" @click="showUpLoadFile(file)"></div>
<span class="iconfont icon-guanbi1" @click="deleteUploadFile(fIndex)"></span>
</div>
<div v-if="file.Type == 5">
<div
class="iconfont icon-shipin"
@click="showUpLoadFile(file)"
></div>
<span
class="iconfont icon-guanbi1"
@click="deleteUploadFile(fIndex)"
></span>
<div class="iconfont icon-shipin" @click="showUpLoadFile(file)"></div>
<span class="iconfont icon-guanbi1" @click="deleteUploadFile(fIndex)"></span>
</div>
</template>
<div class="_pic_upload">
<el-upload
drag
:http-request="uploadFileBtn"
:multiple="true"
:show-file-list="false"
action=""
>
<el-upload drag :http-request="uploadFileBtn" :multiple="true" :show-file-list="false" action="">
<i class="el-icon-plus avatar-uploader-icon"></i>
<div class="el-upload__text">
{{ $t("active.ld_djscwj") }}
......@@ -290,28 +238,12 @@
<q-separator />
</div>
<q-card-actions align="right" class="bg-white">
<q-btn
label="取消"
flat
color="grey-10"
style="font-weight: 400 !important"
@click="closeBackClassForm"
/>
<q-btn
label="确认申请"
color="accent"
class="q-px-md"
style="font-weight: 400 !important"
@click="saveOrderBackClass"
/>
<q-btn label="取消" flat color="grey-10" style="font-weight: 400 !important" @click="closeBackClassForm" />
<q-btn label="确认申请" color="accent" class="q-px-md" style="font-weight: 400 !important"
@click="saveOrderBackClass" />
</q-card-actions>
<div
v-if="picIsShow"
class="_show_img_box"
@click="(picIsShow = false), (picObj = [])"
>
<div
style="
<div v-if="picIsShow" class="_show_img_box" @click="(picIsShow = false), (picObj = [])">
<div style="
position: absolute;
width: 800px;
height: 600px;
......@@ -319,19 +251,9 @@
top: 50%;
margin-left: -400px;
margin-top: -300px;
"
>
<el-carousel
:initial-index="initialIndex"
height="600px"
:interval="5000"
trigger="click"
>
<el-carousel-item
style="height: 600px; overflow: auto"
v-for="(item, index) in picObj"
:key="index"
>
">
<el-carousel :initial-index="initialIndex" height="600px" :interval="5000" trigger="click">
<el-carousel-item style="height: 600px; overflow: auto" v-for="(item, index) in picObj" :key="index">
<img :src="item" style="" />
</el-carousel-item>
</el-carousel>
......@@ -341,254 +263,264 @@
</q-dialog>
</template>
<script>
import { getOrderGuestPageList, SetBackClassApply } from "../../api/sale/sale";
import { UploadSelfFile } from "../../api/common/common";
export default {
name: "backclass-form",
props: {
saveObj: {
type: Object,
default: null,
},
},
data() {
return {
IsShowBackClassDialog: true,
backClassMsg: {
OrderId: 0,
ClassId: 0,
pageIndex: 1,
pageSize: 1000,
import {
getOrderGuestPageList,
SetBackClassApply
} from "../../api/sale/sale";
import {
UploadSelfFile
} from "../../api/common/common";
export default {
name: "backclass-form",
props: {
saveObj: {
type: Object,
default: null,
},
applyReason: "", //申请理由
loading: false,
columns: [
{
name: "GuestName",
label: "姓名",
field: "GuestName",
align: "left",
},
{
name: "SexStr",
label: "性别",
field: "SexStr",
align: "left",
},
{
name: "Age",
label: "年龄",
field: "Age",
align: "left",
},
{
name: "Mobile",
label: "联系电话",
align: "left",
field: "Mobile",
},
{
name: "ClassHours",
label: "已上课时",
field: "ClassHours",
align: "left",
},
{
name: "GuestStateStr",
label: "状态",
field: "GuestStateStr",
align: "left",
},
{
name: "optioned",
label: "操作",
field: "Id",
},
],
studentList: [], //学员列表
chooseItem: {}, //当前选择项
saveMsg: [],
ReceiptFileList: [],
picIsShow: false,
picObj: [],
initialIndex: 0,
};
},
created() {
this.backClassMsg.OrderId = this.saveObj.OrderId;
this.backClassMsg.ClassId = this.saveObj.ClassId;
this.getStudentList();
},
methods: {
//取消申请
cancelApply() {
this.chooseItem = {};
if (this.studentList && this.studentList.length > 0) {
this.studentList.forEach((item) => {
item.IsShow = true;
});
}
},
//当前点击项
clickItem(item, type) {
if (this.studentList && this.studentList.length > 0) {
this.studentList.forEach((item) => {
item.IsShow = false;
});
}
item.IsShow = true;
this.chooseItem = item;
data() {
return {
IsShowBackClassDialog: true,
backClassMsg: {
OrderId: 0,
ClassId: 0,
pageIndex: 1,
pageSize: 1000,
},
applyReason: "", //申请理由
loading: false,
columns: [{
name: "GuestName",
label: "姓名",
field: "GuestName",
align: "left",
},
{
name: "SexStr",
label: "性别",
field: "SexStr",
align: "left",
},
{
name: "Age",
label: "年龄",
field: "Age",
align: "left",
},
{
name: "Mobile",
label: "联系电话",
align: "left",
field: "Mobile",
},
{
name: "ClassHours",
label: "已上课时",
field: "ClassHours",
align: "left",
},
{
name: "GuestStateStr",
label: "状态",
field: "GuestStateStr",
align: "left",
},
{
name: "optioned",
label: "操作",
field: "Id",
},
],
studentList: [], //学员列表
chooseItem: {}, //当前选择项
saveMsg: [],
ReceiptFileList: [],
picIsShow: false,
picObj: [],
initialIndex: 0,
BackAccountName: '工行', //退还户名
BackAccount: '123', //退还账户
StateMent:'我是协议' //协议申明
};
},
//关闭弹窗
closeBackClassForm() {
this.IsShowBackClassDialog = false;
this.applyReason = "";
this.backClassMsg.OrderId = 0;
this.backClassMsg.ClassId = 0;
this.chooseItem = {};
this.$emit("close");
created() {
this.backClassMsg.OrderId = this.saveObj.OrderId;
this.backClassMsg.ClassId = this.saveObj.ClassId;
this.getStudentList();
},
//获取订单学员列表
getStudentList() {
this.studentList = [];
getOrderGuestPageList(this.backClassMsg).then((res) => {
if (res.Code == 1) {
this.studentList = res.Data.PageData;
methods: {
//取消申请
cancelApply() {
this.chooseItem = {};
if (this.studentList && this.studentList.length > 0) {
this.studentList.forEach((item) => {
item.IsShow = true;
});
}
});
},
//获取学员退课申请
saveOrderBackClass() {
if (!this.chooseItem) {
this.$q.notify({
type: "negative",
position: "top",
message: `请选择要申请的学员`,
});
return;
}
var applyMsg = {
GuestId: this.chooseItem.Id,
OrderId: this.chooseItem.OrderId,
applyReason: this.applyReason,
ReceiptFileList: this.ReceiptFileList,
};
if (!applyMsg.GuestId) {
this.$q.notify({
type: "negative",
position: "top",
message: `请选择要申请的学员`,
});
return;
}
if (applyMsg.ReceiptFileList.length === 0) {
this.$q.notify({
type: "negative",
position: "top",
message: `请上传附件`,
},
//当前点击项
clickItem(item, type) {
if (this.studentList && this.studentList.length > 0) {
this.studentList.forEach((item) => {
item.IsShow = false;
});
}
item.IsShow = true;
this.chooseItem = item;
},
//关闭弹窗
closeBackClassForm() {
this.IsShowBackClassDialog = false;
this.applyReason = "";
this.backClassMsg.OrderId = 0;
this.backClassMsg.ClassId = 0;
this.chooseItem = {};
this.$emit("close");
},
//获取订单学员列表
getStudentList() {
this.studentList = [];
getOrderGuestPageList(this.backClassMsg).then((res) => {
if (res.Code == 1) {
this.studentList = res.Data.PageData;
}
});
return;
}
SetBackClassApply(applyMsg).then((res) => {
if (res.Code == 1) {
},
//获取学员退课申请
saveOrderBackClass() {
if (!this.chooseItem) {
this.$q.notify({
icon: "iconfont icon-chenggong",
color: "accent",
timeout: 2000,
message: "修改成功!",
type: "negative",
position: "top",
message: `请选择要申请的学员`,
});
//调用父页面成功方法
this.$emit("success");
this.$emit('close');
return;
}
});
},
showUpLoadFile(i) {
// 预览上传文件
if (i.Type == 3) {
this.picObj.push(i.Url);
// this.imgList.push(i.Url)
this.picIsShow = true;
} else {
if (
i.Content.substring(
i.Content.lastIndexOf(".") + 1,
i.Content.length
).toUpperCase() == "PDF" ||
i.Content.substring(
i.Content.lastIndexOf(".") + 1,
i.Content.length
).toUpperCase() == "TXT"
) {
this.previewPDF(i.Url);
} else {
window.open(
"https://view.officeapps.live.com/op/view.aspx?src=" + i.Url
);
var applyMsg = {
GuestId: this.chooseItem.Id,
OrderId: this.chooseItem.OrderId,
applyReason: this.applyReason,
ReceiptFileList: this.ReceiptFileList,
BackAccountName: this.BackAccountName,
BackAccount: this.BackAccount,
StateMent: this.StateMent
};
if (!applyMsg.GuestId) {
this.$q.notify({
type: "negative",
position: "top",
message: `请选择要申请的学员`,
});
return;
}
}
},
deleteUploadFile(i) {
// 删除上传文件
this.saveMsg.splice(i, 1);
this.ReceiptFileList.splice(i, 1);
},
uploadFileBtn(file) {
//上传
if (file.file.size > 1024 * 1024 * 5) {
this.$message.warning("文件大小不能超过5M");
return;
}
// 1 文档 2 数据 3 图片
let typeArr = [
{
stringArr: "GIF|JPG|JPEG|PNG|BMP|WEBP",
type: 3,
},
{
stringArr: "DOCX|DOC|XLSX|XLS|PPT|PPTX|PDF|TXT",
type: 1,
},
{
stringArr: "ZIP|RAR|7Z|TAR",
type: 4,
},
{
stringArr: "MP4|3GP|AVI|MOV|WMV|RMVB|MKV|M4V|FLV",
type: 5,
},
];
let ft = file.file.name
.substring(file.file.name.lastIndexOf(".") + 1, file.file.name.length)
.toUpperCase();
let fileTypeNumber = 2;
typeArr.forEach((x) => {
if (x.stringArr.indexOf(ft) != "-1") {
fileTypeNumber = x.type;
if (applyMsg.ReceiptFileList.length === 0) {
this.$q.notify({
type: "negative",
position: "top",
message: `请上传附件`,
});
return;
}
});
let newArr = [];
newArr.push(file.file);
this.$message.info(this.$t("tips.shangchuanzhong"));
UploadSelfFile(
"Temporary",
file.file,
(x) => {
if (x.Code == 1) {
this.saveMsg.push({
Content: x.FileUrl,
ID: 0,
Type: fileTypeNumber,
Url: x.FileUrl,
SetBackClassApply(applyMsg).then((res) => {
if (res.Code == 1) {
this.$q.notify({
icon: "iconfont icon-chenggong",
color: "accent",
timeout: 2000,
message: "修改成功!",
position: "top",
});
this.ReceiptFileList.push(x.FileUrl);
this.$message.success(this.$t("tips.scchenggong"));
//调用父页面成功方法
this.$emit("success");
this.$emit('close');
}
},
1
);
});
},
showUpLoadFile(i) {
// 预览上传文件
if (i.Type == 3) {
this.picObj.push(i.Url);
// this.imgList.push(i.Url)
this.picIsShow = true;
} else {
if (
i.Content.substring(
i.Content.lastIndexOf(".") + 1,
i.Content.length
).toUpperCase() == "PDF" ||
i.Content.substring(
i.Content.lastIndexOf(".") + 1,
i.Content.length
).toUpperCase() == "TXT"
) {
this.previewPDF(i.Url);
} else {
window.open(
"https://view.officeapps.live.com/op/view.aspx?src=" + i.Url
);
}
}
},
deleteUploadFile(i) {
// 删除上传文件
this.saveMsg.splice(i, 1);
this.ReceiptFileList.splice(i, 1);
},
uploadFileBtn(file) {
//上传
if (file.file.size > 1024 * 1024 * 5) {
this.$message.warning("文件大小不能超过5M");
return;
}
// 1 文档 2 数据 3 图片
let typeArr = [{
stringArr: "GIF|JPG|JPEG|PNG|BMP|WEBP",
type: 3,
},
{
stringArr: "DOCX|DOC|XLSX|XLS|PPT|PPTX|PDF|TXT",
type: 1,
},
{
stringArr: "ZIP|RAR|7Z|TAR",
type: 4,
},
{
stringArr: "MP4|3GP|AVI|MOV|WMV|RMVB|MKV|M4V|FLV",
type: 5,
},
];
let ft = file.file.name
.substring(file.file.name.lastIndexOf(".") + 1, file.file.name.length)
.toUpperCase();
let fileTypeNumber = 2;
typeArr.forEach((x) => {
if (x.stringArr.indexOf(ft) != "-1") {
fileTypeNumber = x.type;
}
});
let newArr = [];
newArr.push(file.file);
this.$message.info(this.$t("tips.shangchuanzhong"));
UploadSelfFile(
"Temporary",
file.file,
(x) => {
if (x.Code == 1) {
this.saveMsg.push({
Content: x.FileUrl,
ID: 0,
Type: fileTypeNumber,
Url: x.FileUrl,
});
this.ReceiptFileList.push(x.FileUrl);
this.$message.success(this.$t("tips.scchenggong"));
}
},
1
);
},
},
},
};
};
</script>
<template>
<div>
退学协议管理
</div>
</template>
\ No newline at end of file
<template>
<div>报名合同管理</div>
</template>
\ No newline at end of file
<style>
.TuitractView {
width: 930px;
min-height: 500px;
height: auto;
margin: auto;
padding: 20px 0;
color: #000;
}
.firstPage {
margin: 30px;
}
.operationAgree {
font-size: 40px;
letter-spacing: 10px;
text-align: center;
margin: 20px 0;
}
.operationTitle {
display: flex;
align-items: baseline;
justify-content: center;
position: relative;
}
.TuiContract {
position: absolute;
bottom: 28px;
right: 130px;
}
.Tui_Jiafang{
display:flex;
font-size:20px;
margin-bottom:20px;
}
.Tui_Inner{
text-indent: 40px;
font-size:20px;
line-height: 35px;
margin-bottom:10px;
}
.TuitractInput {
border: 0;
display: inline-block;
border-bottom: 1px solid #c0c0c0;
width: 200px;
font-size: 20px;
text-align: center;
text-indent: 0;
}
.Tui_SignZhang{
display: flex;
font-size:20px;
justify-content: space-between;
margin-bottom:20px;
}
</style>
<template>
<div class="TuitractView">
<div class="firstPage">
<div class="operationTitle">
<div class="operationAgree">培训课程退款协议</div>
<div class="TuiContract">合约编号:123</div>
</div>
<div class="Tui_Jiafang">
<div style="margin-right:100px;">甲方:</div>
<div>(家长/监护人):</div>
</div>
<div class="Tui_Jiafang">
<div style="margin-right:150px;">乙方:</div>
<div>法定代表人:</div>
</div>
<div class="Tui_Inner">
甲乙双方经平等友好协商就 <div class="TuitractInput" style="width: 90px;">1988</div>
<div class="TuitractInput" style="width: 80px;">12</div><div class="TuitractInput" style="width: 80px;">12</div>
签订的《培训课程协议》解除合作关系。
</div>
<div class="Tui_Inner">第一条:原协议内容</div>
<div class="Tui_Inner">
原协议报名人员:<div class="TuitractInput" style="width: 300px;">1988</div>
</div>
<div class="Tui_Inner">
原报名项目:<div class="TuitractInput" style="width: 300px;">1988</div>
</div>
<div class="Tui_Inner">
原报名项目原价:<div class="TuitractInput" style="width: 100px;">1988</div>
折后(优惠)价:<div class="TuitractInput" style="width: 100px;">1988</div>
</div>
<div class="Tui_Inner">
原协议已收学费:<div class="TuitractInput" style="width: 300px;text-align:left;">
大写:
</div>
(¥<div class="TuitractInput" style="width: 100px;">12</div>元整)。
</div>
<div class="Tui_Inner">
原收据编号:<div class="TuitractInput" style="width: 150px;"></div>
</div>
<div class="Tui_Inner">
原收款人:<div class="TuitractInput" style="width: 150px;"></div>
</div>
<div class="Tui_Inner">
第二条:乙方共计课时<div class="TuitractInput" style="width: 80px;"></div>节;已销课时
<div class="TuitractInput" style="width: 80px;"></div>节:剩余课时
<div class="TuitractInput" style="width: 80px;"></div>
</div>
<div class="Tui_Inner">
甲方应退还乙方未上课时费用<div class="TuitractInput" style="width: 200px;">五千六百八十元整</div>
(¥<div class="TuitractInput" style="width: 80px;"></div>元整),原协
议自动终止、收据自动失效。退还帐户名<div class="TuitractInput" style="width: 200px;"></div>,退还帐号:<div class="TuitractInput" style="width: 300px;"></div>
退还学费=乙方已缴总学费-已上课程学费-(乙方已缴学费-已上课程学费)*10%,其中“(乙方已缴课程学费)*10%”为违约金。
</div>
<div class="Tui_Inner">
第三条:乙方应将原协议和收据原件交还甲方,若原件无法交还,请乙方<br/>在此声明:
<div class="TuitractInput" style="width: 300px;"></div>
</div>
<div class="Tui_Inner">
第四条:本协议自签订之日起正式生效。
</div>
<div class="Tui_SignZhang">
<div>甲方(家长/监护人)签字(盖章): </div>
<div>甲方(家长/监护人)签字(盖章): </div>
</div>
<div class="Tui_SignZhang">
<div>签署日期:</div>
<div>签署日期:</div>
</div>
</div>
</div>
</template>
......@@ -383,6 +383,9 @@ export default {
this.getList();
},
methods: {
onItemClick(){
},
//获取校区列表
getList() {
this.loading = true;
......
......@@ -669,6 +669,16 @@ const routes = [{
component: () =>
import("pages/administration/outWorkApproval.vue")
},
{
path: "/administration/registContractManage", //报名合同管理
component: () =>
import("pages/administration/registContractManage.vue")
},
{
path: "/administration/dropSchoolManage", //退学协议管理
component: () =>
import("pages/administration/dropSchoolManage.vue")
},
{
path: "/sale/japaneseTrain", //日语培训列表
component: () =>
......@@ -1140,6 +1150,11 @@ const routes = [{
component: () =>
import("pages/contractView.vue")
},
{
path: "/courseRefund",
component: () =>
import("pages/courseRefund.vue")
},
{
path: "/financial/financalDocument/PrintPage", //财务单据打印
component: () =>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment