Commit f906d0be authored by liudong1993's avatar liudong1993
parents 089cb9ed 2f1a10c3
...@@ -96,3 +96,18 @@ export function SetOrderReceiveContract(data) { ...@@ -96,3 +96,18 @@ export function SetOrderReceiveContract(data) {
}) })
} }
/**
* 获取合同配置
*
*/
export function GetStudentInfo(data) {
return request({
url: '/EducationContract/GetStudentInfo',
method: 'post',
data
})
}
<style>
.jobInfo_item {
margin-bottom: 20px;
}
.job_Line {
width: 3px;
height: 11px;
margin-right: 10px;
background-color: #3FC4FF;
display: inline-block;
}
.conTable {
width: 100%;
}
.conTable th {
height: 40px;
}
</style>
<template> <template>
<q-dialog v-model="persistent" content-class="bg-grey-1" persistent transition-show="scale" transition-hide="scale"> <q-dialog v-model="persistent" content-class="bg-grey-1" persistent transition-show="scale" transition-hide="scale">
<q-card style="width: 800px;max-width:900px;"> <q-card style="width: 900px;max-width:1000px;">
<q-card-section> <q-card-section>
<div class="text-h6">{{objOption.Id==0?'新增合同':'修改合同'}}</div> <div class="text-h6">{{objOption.Id==0?'新增合同':'修改合同'}}</div>
</q-card-section> </q-card-section>
<q-card-section class="q-pt-none scroll" style="max-height: 70vh"> <q-card-section class="q-pt-none scroll" style="max-height: 70vh">
<div class="text-caption q-mb-lg q-px-md text-grey-6">基本资料</div> <div class="jobInfo_item">
<span class="job_Line"></span>学员信息
</div>
<div class="row wrap">
<q-input clearable filled class="col-6 q-pr-lg q-pb-lg" v-model="objOption.StudentName" label="学生姓名" />
<q-input clearable filled class="col-6 q-pb-lg" v-model="objOption.StuBirth" label="学生生日" />
<q-input clearable filled class="col-6 q-pr-lg q-pb-lg" v-model="objOption.StuEmail" label="学生邮箱" />
<q-input clearable filled class="col-6 q-pb-lg" v-model="objOption.StuAddress" label="学生地址" />
<q-input clearable filled class="col-6 q-pr-lg q-pb-lg" v-model="objOption.StuTel" label="学生电话" />
<div class="col-6 q-pb-lg">
学生性别:
<q-radio v-model="objOption.StuSex" :val="0" label="男" />
<q-radio v-model="objOption.StuSex" :val="1" label="女" />
</div>
</div>
<div class="jobInfo_item">
<span class="job_Line"></span>家长信息
</div>
<table class="conTable">
<tr>
<th>家长信息</th>
<th>家长</th>
<th>紧急联系人</th>
<th>监护人身份证后4位</th>
</tr>
<tr>
<td>姓名</td>
<td>
<q-input filled v-model="objOption.ParentName" />
</td>
<td>
<q-input filled v-model="objOption.UrgentName" />
</td>
<td rowspan="4" style="vertical-align:top;">
<q-input filled v-model="objOption.GuardianIDCard" />
</td>
</tr>
<tr>
<td>与学员的关系</td>
<td>
<q-input filled v-model="objOption.ParentRelation" />
</td>
<td>
<q-input filled v-model="objOption.UrgentRelation" />
</td>
</tr>
<tr>
<td>联系电话</td>
<td>
<q-input filled v-model="objOption.ParentTel " />
</td>
<td>
<q-input filled v-model="objOption.UrgentTel" />
</td>
</tr>
<tr>
<td>电子邮箱</td>
<td>
<q-input filled v-model="objOption.ParentEmail" />
</td>
<td>
<q-input filled v-model="objOption.UrgentEmail" />
</td>
</tr>
</table>
<div class="jobInfo_item" style="margin-top:20px;">
<span class="job_Line"></span>培训课程信息
</div>
<table class="conTable">
<tr>
<th>培训课程信息</th>
<th></th>
<th>校区信息</th>
<th></th>
<th></th>
<th></th>
</tr>
<tr>
<td>培训课程内容</td>
<td>
<q-input filled v-model="objOption.CourseName" />
</td>
<td>校区名称</td>
<td>
<q-input filled v-model="objOption.SchoolName" />
</td>
<td>校区负责人</td>
<td>
<q-input filled v-model="objOption.SchoolPrincipal" />
</td>
</tr>
<tr>
<td>起始级别</td>
<td>
<q-input filled v-model="objOption.StartLevel" />
</td>
<td>课程顾问</td>
<td>
<q-input filled v-model="objOption.CourseConsultant" />
</td>
<td>收款人</td>
<td>
<q-input filled v-model="objOption.Payee" />
</td>
</tr>
</table>
<div class="jobInfo_item" style="margin-top:20px;">
<span class="job_Line"></span>费用类别
</div>
<table class="conTable">
<tr>
<th style="width:80px;">费用类别</th>
<th>第一期</th>
<th>第二期</th>
<th>第三期</th>
<th>总计</th>
</tr>
<tr>
<td>培训课时数</td>
<td>
<q-input filled @keyup.native="checkPrice(objOption,'FirstClassHours')" @input="getTotalClassHours()"
v-model="objOption.FirstClassHours" />
</td>
<td>
<q-input filled @keyup.native="checkPrice(objOption,'SecondClassHours')" @input="getTotalClassHours()"
v-model="objOption.SecondClassHours" />
</td>
<td>
<q-input filled @keyup.native="checkPrice(objOption,'ThirdClassHours')" @input="getTotalClassHours()"
v-model="objOption.ThirdClassHours" />
</td>
<td>
<q-input disable filled v-model="firstTotal" />
</td>
</tr>
<tr>
<td>培训课程费</td>
<td>
<q-input filled @keyup.native="checkPrice(objOption,'FirstCourseFee')"
@input="getTotalCourseFee(),getFirstFYXJ(),getfirstFeiyongTotal()" v-model="objOption.FirstCourseFee" />
</td>
<td>
<q-input filled @keyup.native="checkPrice(objOption,'SecondCourseFee')"
@input="getTotalCourseFee(),getSecondFYXJ(),getsecondFeiyongTotal()"
v-model="objOption.SecondCourseFee" />
</td>
<td>
<q-input filled @keyup.native="checkPrice(objOption,'ThirdCourseFee')"
@input="getTotalCourseFee(),getthirdFYXJ(),getthirdFeiyongTotal()" v-model="objOption.ThirdCourseFee" />
</td>
<td>
<q-input disable filled v-model="secondTotal" />
</td>
</tr>
<tr>
<td>培训教材费</td>
<td>
<q-input filled @keyup.native="checkPrice(objOption,'FirstBookFee')"
@input="getTotalCommon(),getFirstFYXJ(),getfirstFeiyongTotal()" v-model="objOption.FirstBookFee" />
</td>
<td>
<q-input filled @keyup.native="checkPrice(objOption,'SecondBookFee')"
@input="getTotalCommon(),getSecondFYXJ(),getsecondFeiyongTotal()" v-model="objOption.SecondBookFee" />
</td>
<td>
<q-input filled @keyup.native="checkPrice(objOption,'ThirdBookFee')"
@input="getTotalCommon(),getthirdFYXJ(),getthirdFeiyongTotal()" v-model="objOption.ThirdBookFee" />
</td>
<td>
<q-input disable filled v-model="thirdTotal" />
</td>
</tr>
<tr>
<td>培训课件费</td>
<td>
<q-input filled @keyup.native="checkPrice(objOption,'FirstClassFee')"
@input="getTotalClassFee(),getFirstFYXJ(),getfirstFeiyongTotal()" v-model="objOption.FirstClassFee" />
</td>
<td>
<q-input filled @keyup.native="checkPrice(objOption,'SecondClassFee')"
@input="getTotalClassFee(),getSecondFYXJ(),getsecondFeiyongTotal()"
v-model="objOption.SecondClassFee" />
</td>
<td>
<q-input filled @keyup.native="checkPrice(objOption,'ThirdClassFee')"
@input="getTotalClassFee(),getthirdFYXJ(),getthirdFeiyongTotal()" v-model="objOption.ThirdClassFee" />
</td>
<td>
<q-input disable filled v-model="fourthTotal" />
</td>
</tr>
<tr>
<td>费用小计</td>
<td>
<q-input disable filled v-model="firstFYXJ" />
</td>
<td>
<q-input disable filled v-model="secondFYXJ" />
</td>
<td>
<q-input disable filled v-model="thirdFYXJ" />
</td>
<td>
<q-input disable filled v-model="fyxjTotal" />
</td>
</tr>
<tr>
<td>折让价格</td>
<td>
<q-input filled @keyup.native="checkPrice(objOption,'FirstDiscountMoney')"
@input="getTotalDiscountMoney(),getfirstFeiyongTotal()" v-model="objOption.FirstDiscountMoney" />
</td>
<td>
<q-input filled @keyup.native="checkPrice(objOption,'SecondDiscountMoney')"
@input="getTotalDiscountMoney(),getsecondFeiyongTotal()" v-model="objOption.SecondDiscountMoney" />
</td>
<td>
<q-input filled @keyup.native="checkPrice(objOption,'ThirdDiscountMoney')"
@input="getTotalDiscountMoney(),getthirdFeiyongTotal()" v-model="objOption.ThirdDiscountMoney" />
</td>
<td>
<q-input disable filled v-model="fifthTotal" />
</td>
</tr>
<tr>
<td>
<span style="color:red;">费用总计</span>
</td>
<td>
<q-input disable filled v-model="objOption.FirstMoney" />
</td>
<td>
<q-input disable filled v-model="objOption.SecondMoney" />
</td>
<td>
<q-input disable filled v-model="objOption.ThirdMoney" />
</td>
<td>
<q-input disable filled v-model="sixthTotal" />
</td>
</tr>
<tr>
<td>支付日期</td>
<td>
<q-input filled v-model="objOption.FirstPayDate" class="col-6 q-pb-lg" mask="date">
<template v-slot:append>
<q-icon name="event" class="cursor-pointer">
<q-popup-proxy ref="qDateProxy1" transition-show="scale" transition-hide="scale">
<q-date v-model="objOption.FirstPayDate" @input="() => $refs.qDateProxy1.hide()" />
</q-popup-proxy>
</q-icon>
</template>
</q-input>
</td>
<td>
<q-input filled v-model="objOption.SecondPayDate" class="col-6 q-pb-lg" mask="date">
<template v-slot:append>
<q-icon name="event" class="cursor-pointer">
<q-popup-proxy ref="qDateProxy2" transition-show="scale" transition-hide="scale">
<q-date v-model="objOption.SecondPayDate" @input="() => $refs.qDateProxy2.hide()" />
</q-popup-proxy>
</q-icon>
</template>
</q-input>
</td>
<td>
<q-input filled v-model="objOption.ThirdPayDate" class="col-6 q-pb-lg" mask="date">
<template v-slot:append>
<q-icon name="event" class="cursor-pointer">
<q-popup-proxy ref="qDateProxy3" transition-show="scale" transition-hide="scale">
<q-date v-model="objOption.ThirdPayDate" @input="() => $refs.qDateProxy3.hide()" />
</q-popup-proxy>
</q-icon>
</template>
</q-input>
</td>
<td>
<q-input filled disable class="col-6 q-pb-lg" mask="date">
<template v-slot:append>
<q-icon name="event" class="cursor-pointer">
<q-popup-proxy ref="qDateProxy3" transition-show="scale" transition-hide="scale">
<q-date @input="() => $refs.qDateProxy3.hide()" />
</q-popup-proxy>
</q-icon>
</template>
</q-input>
</td>
</tr>
</table>
<div class="row wrap"> <div class="row wrap">
<div class="col-6 q-pb-lg"> <q-input filled class="col-6 q-pb-lg" v-model="objOption.Exam" label="乙方当前选择考试" />
性别: <div class="col-3" style="margin:10px 0 0 20px;">
<q-radio v-model="objOption.Sex" :val="1" label="男" /> 是否有补充协议
<q-radio v-model="objOption.Sex" :val="2" label="女" /> <q-toggle size="md" label="" color="primary" :false-value="0" :true-value="1"
</div> v-model="objOption.IsSupplement" />
<q-input clearable filled class="col-6 q-pb-lg" </div>
v-model="objOption.IDCard" label="身份证" />
<q-input clearable filled class="col-6 q-pb-lg q-pr-lg"
v-model="objOption.Domicile" label="身份证居住地" />
<q-input clearable filled class="col-6 q-pb-lg"
v-model="objOption.ContactAddress" label="联系地址" />
<q-input clearable filled class="col-6 q-pb-lg q-pr-lg"
v-model="objOption.ContactMobile" label="联系电话" />
<q-input clearable filled class="col-6 q-pb-lg"
v-model="objOption.EmergencyContact" label="紧急联系人" />
<q-input clearable filled class="col-6 q-pb-lg q-pr-lg"
v-model="objOption.EmergencyMobile" label="紧急联系电话" />
<q-select filled stack-label v-if="objOption.Id==0" option-value="Id" option-label="Name" v-model="objOption.CType" ref="CType"
:options="CTypeList" label="类型" :dense="false" class="col-6 q-pb-lg" emit-value map-options
:rules="[val => !!val || '请选择所属校区']" />
<q-select v-else filled stack-label option-value="Id" option-label="Name" v-model="objOption.CType" ref="CType"
:options="CTypeList" label="类型" :dense="false" disable class="col-6 q-pb-lg" emit-value map-options
:rules="[val => !!val || '请选择所属校区']" />
<q-input filled stack-label maxlength="20" :dense="false" v-model="objOption.StudentName" ref="StudentName"
class="col-6 q-pb-lg q-pr-lg" label="学生姓名" :rules="[val => !!val || '请填写学生姓名']" />
<!-- <q-input filled stack-label maxlength="100" :dense="false" v-model="objOption.SchoolName" ref="SchoolName"
class="col-6 q-pr-lg q-pb-lg" label="学校名称" :rules="[val => !!val || '请填写学校名称']" /> -->
<q-input filled stack-label maxlength="100" :dense="false" v-model="objOption.CourseName" ref="CourseName"
class="col-6 q-pb-lg" label="课程名称" :rules="[val => !!val || '请填写课程名称']" />
<q-input filled stack-label maxlength="300" :dense="false" v-model="objOption.CourseContent"
ref="CourseContent" class="col-6 q-pb-lg q-pr-lg" label="课程内容" :rules="[val => !!val || '请填写课程内容']" />
<q-input filled stack-label :dense="false" @keyup.native="checkPrice(objOption,'Money')"
v-model="objOption.Money" ref="Money" class="col-6 q-pb-lg" label="金额"
:rules="[val => !!val || '请填写金额']" />
<q-input filled stack-label :dense="false" v-model="objOption.Exam" ref="Exam" class="col-6 q-pb-lg q-pr-lg"
label="乙方当前选择考试" />
</div> </div>
</q-card-section> </q-card-section>
<q-separator /> <q-separator />
...@@ -58,6 +338,7 @@ ...@@ -58,6 +338,7 @@
<script> <script>
import { import {
SetEducationContractInfo, SetEducationContractInfo,
GetStudentInfo,
GetEducationContractInfo GetEducationContractInfo
} from '../../api/sale/contract' } from '../../api/sale/contract'
export default { export default {
...@@ -72,96 +353,354 @@ ...@@ -72,96 +353,354 @@
persistent: true, persistent: true,
objOption: { objOption: {
Id: 0, Id: 0,
OrderId:0,
GuestId:0,
CType: 1, //类型1培训 2留学 CType: 1, //类型1培训 2留学
StudentName: '', //学生姓名, StudentName: '', //学生姓名
SchoolName: '1', //学校名称 StuBirth: '', //学生生日
CourseName: '', //课程名称 StuSex: 0, //学生性别0男1女
CourseContent: '', //课程内容 StuAddress: '', //学生地址
CNYCaps: '', //人民币大写 StuTel: '', //学生电话
Money: '', //金额 StuEmail: '', //学生邮箱
ParentName: '', //家长姓名
ParentRelation: '', //家长与学员关系
ParentTel: '', //家长电话
ParentEmail: '', //家长邮箱
UrgentName: '', //紧急联系人姓名
UrgentRelation: '', //紧急联系人与学生关系
UrgentTel: '', //紧急联系人电话
UrgentEmail: '', //紧急联系人邮箱
GuardianIDCard: '', //监护人身份证后4位
CourseName: '', //培训课程内容
SchoolName: '', //校区名称
SchoolPrincipal: '', //校区负责人
StartLevel: '', //起始级别
CourseConsultant: '', //课程顾问
Payee: '', //收款人
FirstClassHours: 0, //第一期-培训课时数
FirstCourseFee: '', //第一期-培训课程费
FirstBookFee: '', //第一期-培训教材费
FirstClassFee: '', //第一期-培训课件费
FirstDiscountMoney: '', // 第一期-折让价格
FirstMoney: '', //第一期-费用总计
FirstPayDate: '', //第一期-支付日期
SecondClassHours: 0, //第二期-培训课时数
SecondCourseFee: '', // 第二期-培训课程费
SecondBookFee: '', //第二期-培训教材费
SecondClassFee: '', //第二期-培训课件费
SecondDiscountMoney: '', //第二期-折让价格
SecondMoney: '', //第二期-费用总计
SecondPayDate: '', //第二期-支付日期
ThirdClassHours: 0, //第三期-培训课时数
ThirdCourseFee: '', //第三期-培训课程费
ThirdBookFee: '', //第三期-培训教材费
ThirdClassFee: '', // 第三期-培训课件费
ThirdDiscountMoney: '', //第三期-折让价格
ThirdMoney: '', //第三期-费用总计
ThirdPayDate: '', //第三期-支付日期
Exam: '', //乙方当前选择考试 Exam: '', //乙方当前选择考试
Sex:1, IsSupplement: 1, // 0无 1 有 是否有补充协议
IDCard:'',
Domicile:'',
ContactAddress:'',
ContactMobile:'',
EmergencyContact:'',
EmergencyMobile:''
}, },
//类型下拉 firstTotal: 0, // 培训课时数总计
CTypeList: [{ secondTotal: 0, // 培训课程费总计
Id: 1, thirdTotal: 0, // 培训教材费总计
Name: '培训' fourthTotal: 0, // 培训课件费总计
}, { fifthTotal: 0, // 折让价格
Id: 2, sixthTotal: 0, // 费用总计
Name: '留学'
}], firstFYXJ: 0,
secondFYXJ: 0,
thirdFYXJ: 0,
fyxjTotal: 0,
saveLoading: false, saveLoading: false,
StudentMsg:{
OrderId:0,
GuestId:0
}
} }
}, },
created() {}, created() {},
mounted() { mounted() {
this.initObj() if(this.setingObj){
this.StudentMsg.OrderId = this.setingObj.OrderId;
this.StudentMsg.GuestId = this.setingObj.GuestId;
this.objOption.OrderId = this.setingObj.OrderId;
this.objOption.GuestId = this.setingObj.GuestId;
if(this.setingObj.ContractId>0){
this.getInfoList();
}else{
this.getStudentContract();
}
}
}, },
methods: { methods: {
//保存合同 //计算培训课时数总价
saveContract() { getTotalClassHours() {
this.$refs.StudentName.validate() if (this.objOption.FirstClassHours >= 0 && this.objOption.SecondClassHours >= 0 && this.objOption
this.$refs.CourseName.validate() .ThirdClassHours >= 0) {
this.$refs.CourseContent.validate() this.firstTotal = (parseFloat(this.objOption.FirstClassHours) + parseFloat(this.objOption.SecondClassHours) +
this.$refs.Money.validate() parseFloat(this.objOption.ThirdClassHours)).toFixed(2);
if (!this.$refs.StudentName.hasError &&
!this.$refs.CourseName.hasError &&
!this.$refs.CourseContent.hasError &&
!this.$refs.Money.hasError) {
SetEducationContractInfo(this.objOption).then(res => {
if (res.Code == 1) {
this.$q.notify({
icon: 'iconfont icon-chenggong',
color: 'accent',
timeout: 2000,
message: '修改成功!',
position: 'top'
})
}
this.$emit('success');
})
} }
}, },
initObj() { //计算培训课程费总价
if (this.setingObj && this.setingObj.Id > 0) { getTotalCourseFee() {
GetEducationContractInfo({ let arr = [this.objOption.FirstCourseFee, this.objOption.SecondCourseFee, this.objOption.ThirdCourseFee];
ContractId: this.setingObj.Id this.secondTotal = 0;
}).then(res => { arr.forEach(x => {
if (res.Code == 1) { if (x != '') {
var tempObj = res.Data; (this.secondTotal += parseFloat(x)).toFixed(2);
this.objOption.Id = tempObj.Id; }
this.objOption.CType = tempObj.CType; })
this.objOption.StudentName = tempObj.StudentName; },
this.objOption.SchoolName = tempObj.SchoolName; //计算培训教材费总价
this.objOption.CourseName = tempObj.CourseName; getTotalCommon() {
this.objOption.CourseContent = tempObj.CourseContent; let arr = [this.objOption.FirstBookFee, this.objOption.SecondBookFee, this.objOption.ThirdBookFee];
this.objOption.CNYCaps = tempObj.CNYCaps; this.thirdTotal = 0;
this.objOption.Money = tempObj.Money; arr.forEach(x => {
this.objOption.Exam = tempObj.Exam; if (x != '') {
this.objOption.Sex = tempObj.Sex; (this.thirdTotal += parseFloat(x)).toFixed(2);
this.objOption.IDCard = tempObj.IDCard; }
this.objOption.Domicile = tempObj.Domicile; })
this.objOption.ContactAddress = tempObj.ContactAddress; },
this.objOption.ContactMobile = tempObj.ContactMobile;
this.objOption.EmergencyContact = tempObj.EmergencyContact; //计算培训课件费总价
this.objOption.EmergencyMobile = tempObj.EmergencyMobile; getTotalClassFee() {
} let arr = [this.objOption.FirstClassFee, this.objOption.SecondClassFee, this.objOption.ThirdClassFee];
}) this.fourthTotal = 0;
arr.forEach(x => {
if (x != '') {
(this.fourthTotal += parseFloat(x)).toFixed(2);
}
})
},
//计算折让价格总价
getTotalDiscountMoney() {
let arr = [this.objOption.FirstDiscountMoney, this.objOption.SecondDiscountMoney, this.objOption
.ThirdDiscountMoney
];
this.fifthTotal = 0;
arr.forEach(x => {
if (x != '') {
(this.fifthTotal += parseFloat(x)).toFixed(2);
}
})
},
//计算第一列费用小计
getFirstFYXJ() {
let arr = [this.objOption.FirstCourseFee, this.objOption.FirstBookFee, this.objOption.FirstClassFee];
this.firstFYXJ = 0;
arr.forEach(x => {
if (x != '') {
(this.firstFYXJ += parseFloat(x)).toFixed(2);
}
})
this.getTotalFYXJ();
},
//计算第二列费用小计
getSecondFYXJ() {
let arr = [this.objOption.SecondCourseFee, this.objOption.SecondBookFee, this.objOption.SecondClassFee];
this.secondFYXJ = 0;
arr.forEach(x => {
if (x != '') {
(this.secondFYXJ += parseFloat(x)).toFixed(2);
}
})
this.getTotalFYXJ();
},
//计算第三列费用小计
getthirdFYXJ() {
let arr = [this.objOption.ThirdCourseFee, this.objOption.ThirdBookFee, this.objOption.ThirdClassFee];
this.thirdFYXJ = 0;
arr.forEach(x => {
if (x != '') {
(this.thirdFYXJ += parseFloat(x)).toFixed(2);
}
})
this.getTotalFYXJ();
},
//获取费用小计总计
getTotalFYXJ() {
let arr = [this.firstFYXJ, this.secondFYXJ, this.thirdFYXJ];
this.fyxjTotal = 0;
arr.forEach(x => {
if (x != '') {
(this.fyxjTotal += parseFloat(x)).toFixed(2);
}
})
},
//计算第一列费用总计
getfirstFeiyongTotal() {
if (this.firstFYXJ != '' && this.objOption.FirstDiscountMoney != '') {
this.objOption.FirstMoney = (parseFloat(this.firstFYXJ) - parseFloat(this.objOption.FirstDiscountMoney))
.toFixed(2);
} }
this.getTotal();
},
//计算第二列费用总计
getsecondFeiyongTotal() {
if (this.secondFYXJ != '' && this.objOption.SecondDiscountMoney != '') {
this.objOption.SecondMoney = (parseFloat(this.secondFYXJ) - parseFloat(this.objOption.SecondDiscountMoney))
.toFixed(2);
}
this.getTotal();
},
//计算第三列费用总计
getthirdFeiyongTotal() {
if (this.thirdFYXJ != '' && this.objOption.ThirdDiscountMoney != '') {
this.objOption.ThirdMoney = (parseFloat(this.thirdFYXJ) - parseFloat(this.objOption.ThirdDiscountMoney))
.toFixed(2);
}
this.getTotal();
},
//获取费用总计合计
getTotal() {
let arr = [this.objOption.FirstMoney, this.objOption.SecondMoney, this.objOption.ThirdMoney]
this.sixthTotal = 0;
arr.forEach(x => {
if (x != '') {
(this.sixthTotal += parseFloat(x)).toFixed(2);
}
})
},
//保存合同
saveContract() {
SetEducationContractInfo(this.objOption).then(res => {
if (res.Code == 1) {
this.$q.notify({
icon: 'iconfont icon-chenggong',
color: 'accent',
timeout: 2000,
message: '修改成功!',
position: 'top'
})
}
this.$emit('success');
this.closeSaveForm();
})
}, },
closeSaveForm() { closeSaveForm() {
this.$emit('close') this.$emit('close')
this.persistent = false this.persistent = false
}, },
}, //获取学生信息
watch: { getStudentContract(){
GetStudentInfo(this.StudentMsg).then(res => {
if (res.Code == 1) {
var tempData = res.Data;
this.objOption.StudentName = tempData.StudentName;
this.objOption.StuTel = tempData.StuTel;
this.objOption.StuSex = tempData.StuSex;
this.objOption.StuEmail = tempData.StuEmail;
this.objOption.StuBirth = tempData.StuBirth;
this.objOption.StuAddress = tempData.StuAddress;
this.objOption.StartLevel = tempData.StartLevel;
this.objOption.SchoolPrincipal = tempData.SchoolPrincipal;
this.objOption.SchoolName = tempData.SchoolName;
this.objOption.Payee = tempData.Payee;
this.objOption.Money = tempData.Money;
this.objOption.FirstMoney = tempData.FirstMoney;
this.objOption.FirstDiscountMoney = tempData.FirstDiscountMoney;
this.objOption.FirstCourseFee = tempData.FirstCourseFee;
this.objOption.FirstClassHours = tempData.FirstClassHours;
this.objOption.FirstClassFee = tempData.FirstClassFee;
this.objOption.FirstBookFee = tempData.FirstBookFee;
this.objOption.CourseName = tempData.CourseName;
this.objOption.CourseConsultant = tempData.CourseConsultant;
this.objOption.CNYCaps = tempData.CNYCaps;
this.getTotalClassHours();
this.getTotalCourseFee();
this.getTotalCommon();
this.getTotalClassFee();
this.getTotalDiscountMoney();
this.getFirstFYXJ();
this.getSecondFYXJ();
this.getthirdFYXJ();
this.getTotalFYXJ();
this.getTotal();
}
})
},
//获取详情
getInfoList(){
let msg = {
ContractId:this.setingObj.ContractId
}
GetEducationContractInfo(msg).then(res => {
console.log(res,'详情数据');
if (res.Code == 1) {
var tempData = res.Data;
this.objOption.StudentName = tempData.StudentName;
this.objOption.StuTel = tempData.StuTel;
this.objOption.StuSex = tempData.StuSex;
this.objOption.StuEmail = tempData.StuEmail;
this.objOption.StuBirth = tempData.StuBirth;
this.objOption.StuAddress = tempData.StuAddress;
this.objOption.StartLevel = tempData.StartLevel;
this.objOption.SchoolPrincipal = tempData.SchoolPrincipal;
this.objOption.SchoolName = tempData.SchoolName;
this.objOption.Payee = tempData.Payee;
this.objOption.Money = tempData.Money;
this.objOption.FirstMoney = tempData.FirstMoney;
this.objOption.FirstPayDate = tempData.FirstPayDate;
this.objOption.FirstDiscountMoney = tempData.FirstDiscountMoney;
this.objOption.FirstCourseFee = tempData.FirstCourseFee;
this.objOption.FirstClassHours = tempData.FirstClassHours;
this.objOption.FirstClassFee = tempData.FirstClassFee;
this.objOption.FirstBookFee = tempData.FirstBookFee;
this.objOption.SecondClassHours = tempData.SecondClassHours;
this.objOption.SecondCourseFee = tempData.SecondCourseFee;
this.objOption.SecondBookFee = tempData.SecondBookFee;
this.objOption.SecondClassFee = tempData.SecondClassFee;
this.objOption.SecondDiscountMoney = tempData.SecondDiscountMoney;
this.objOption.SecondMoney = tempData.SecondMoney;
this.objOption.SecondPayDate = tempData.SecondPayDate;
this.objOption.ThirdClassHours = tempData.ThirdClassHours;
this.objOption.ThirdCourseFee = tempData.ThirdCourseFee;
this.objOption.ThirdBookFee = tempData.ThirdBookFee;
this.objOption.ThirdClassFee = tempData.ThirdClassFee;
this.objOption.ThirdDiscountMoney = tempData.ThirdDiscountMoney;
this.objOption.ThirdMoney = tempData.ThirdMoney;
this.objOption.ThirdPayDate = tempData.ThirdPayDate;
this.objOption.CourseName = tempData.CourseName;
this.objOption.CourseConsultant = tempData.CourseConsultant;
this.objOption.CNYCaps = tempData.CNYCaps;
this.objOption.Exam = tempData.Exam;
this.objOption.IsSupplement = tempData.IsSupplement;
this.objOption.ParentName = tempData.ParentName;
this.objOption.ParentRelation = tempData.ParentRelation;
this.objOption.UrgentName = tempData.UrgentName;
this.objOption.GuardianIDCard = tempData.GuardianIDCard;
this.objOption.UrgentRelation = tempData.UrgentRelation;
this.objOption.ParentTel = tempData.ParentTel;
this.objOption.UrgentTel = tempData.UrgentTel;
this.objOption.ParentEmail = tempData.ParentEmail;
this.objOption.UrgentEmail = tempData.UrgentEmail;
this.getTotalClassHours();
this.getTotalCourseFee();
this.getTotalCommon();
this.getTotalClassFee();
this.getTotalDiscountMoney();
this.getFirstFYXJ();
this.getSecondFYXJ();
this.getthirdFYXJ();
this.getTotalFYXJ();
this.getTotal();
}
})
}
}, },
} }
......
...@@ -145,11 +145,11 @@ ...@@ -145,11 +145,11 @@
<span v-for="(x,j) in item.GuestList" :index="j" v-if="x.GuestState==1" <span v-for="(x,j) in item.GuestList" :index="j" v-if="x.GuestState==1"
style="color:#2961FE;margin-right: 5px">{{x.GuestName}} </span> style="color:#2961FE;margin-right: 5px">{{x.GuestName}} </span>
</div> </div>
<div v-if="AuthorityObj.isShowContract&&item.GuestList&&item.GuestList.length>0&&item.ContractList&&item.ContractList.length==0" <!-- <div v-if="AuthorityObj.isShowContract&&item.GuestList&&item.GuestList.length>0&&item.ContractList&&item.ContractList.length==0"
class="takeContract" @click="takeContract(item)">领取合同</div> class="takeContract" @click="takeContract(item)">领取合同</div> -->
<div v-if="AuthorityObj.isShowContract&&item.ContractList&&item.ContractList.length>0" class="takeContract"> <div v-if="AuthorityObj.isShowContract&&item.GuestList&&item.GuestList.length>0" class="takeContract">
查看合同 <span @click="isShowPop=true">查看合同</span>
<q-popup-proxy> <q-popup-proxy v-if="isShowPop">
<q-banner> <q-banner>
<div style="width: 450px;max-height:220px;overflow:auto;"> <div style="width: 450px;max-height:220px;overflow:auto;">
<table class="Contract_Table"> <table class="Contract_Table">
...@@ -159,19 +159,15 @@ ...@@ -159,19 +159,15 @@
<th>状态</th> <th>状态</th>
<th width="110px;">操作</th> <th width="110px;">操作</th>
</tr> </tr>
<tr v-for="subItem in item.ContractList"> <tr v-for="subItem in item.GuestList">
<td>{{subItem.StudentName}}</td> <td>{{subItem.GuestName}}</td>
<td>{{subItem.ContractNo}}</td> <td>{{subItem.ContractNo}}</td>
<td>{{subItem.ContractStatusStr}}</td>
<td> <td>
<span v-if="subItem.Status==0">草稿</span> <q-btn color="accent" v-if="subItem.ContractId==0" size="sm" class="q-mr-md"
<span v-if="subItem.Status==1">提交审核</span>
<span v-if="subItem.Status==2">审核通过</span>
<span v-if="subItem.Status==3">驳回</span>
<span v-if="subItem.Status==4">取消</span>
</td>
<td>
<q-btn color="accent" v-if="subItem.ContractNo==''" size="sm" class="q-mr-md"
@click="takeContractTwo(item,subItem)" label="领取合同" /> @click="takeContractTwo(item,subItem)" label="领取合同" />
<q-btn color="accent" v-else size="sm" class="q-mr-md"
@click="takeContractTwo(item,subItem)" label="修改" />
</td> </td>
</tr> </tr>
</table> </table>
...@@ -553,6 +549,10 @@ ...@@ -553,6 +549,10 @@
<viewquotation-form v-if="isShowviewQuo" :rId="offerId" :isShowCancle="1" @close="closeQuota" <viewquotation-form v-if="isShowviewQuo" :rId="offerId" :isShowCancle="1" @close="closeQuota"
@success="refreshOrder"> @success="refreshOrder">
</viewquotation-form> </viewquotation-form>
<eduinfo-form v-if="isShowEduForm" :seting-obj="eduObj" @close="closeEdudia" @success="refreshPage">
</eduinfo-form>
</div> </div>
</template> </template>
...@@ -567,6 +567,8 @@ ...@@ -567,6 +567,8 @@
import continueclassForm from '../sale/continueclass-form' //续课申请 import continueclassForm from '../sale/continueclass-form' //续课申请
import viewquotationForm from '../sale/viewquotation-form' import viewquotationForm from '../sale/viewquotation-form'
import eduinfoForm from '../sale/eduinfo-form'
import { import {
cancelClassOrder, //取消订单 cancelClassOrder, //取消订单
} from '../../api/sale/sale' } from '../../api/sale/sale'
...@@ -588,7 +590,8 @@ ...@@ -588,7 +590,8 @@
backclassForm, backclassForm,
moneyForm, moneyForm,
continueclassForm, continueclassForm,
viewquotationForm viewquotationForm,
eduinfoForm
}, },
props: { props: {
//正常订单 //正常订单
...@@ -645,8 +648,12 @@ ...@@ -645,8 +648,12 @@
isShowRewardEdit: false, //是否显示修改额外提成按钮 isShowRewardEdit: false, //是否显示修改额外提成按钮
isShowBackClass: false, //是否显示退课按钮 isShowBackClass: false, //是否显示退课按钮
isShowRenewClass: false, //是否显示续课按钮 isShowRenewClass: false, //是否显示续课按钮
isShowContract:false,//是都显示合同 isShowContract:true,//是都显示合同
}, },
isShowEduForm:false,
eduObj:{},
isShowPop:false
} }
}, },
created() { created() {
...@@ -945,6 +952,15 @@ ...@@ -945,6 +952,15 @@
this.CommonType = type; this.CommonType = type;
this.isShowMoney = true; this.isShowMoney = true;
}, },
//关闭弹窗
closeEdudia() {
this.isShowEduForm = false
},
//刷新页面
refreshPage() {
this.refreshOrder();
},
//领取合同 //领取合同
takeContract(item) { takeContract(item) {
let msg = { let msg = {
...@@ -968,26 +984,15 @@ ...@@ -968,26 +984,15 @@
}) })
}, },
takeContractTwo(item, subItem) { takeContractTwo(item, subItem) {
let msg = { let obj = {
OrderId: item.OrderId, OrderId: item.OrderId,
GuestId: subItem.GuestId GuestId: subItem.Id,
ContractId: subItem.ContractId
} }
SetOrderReceiveContract(msg).then(res => { this.eduObj = obj;
if (res.Code == 1) { this.isShowPop=false;
this.$q.notify({ this.isShowEduForm=true;
icon: 'iconfont icon-chenggong', },
color: 'accent',
timeout: 2000,
message: '操作成功',
position: 'top'
})
//调用父页面成功方法
this.$emit('success');
}
}).catch(() => {
})
}
} }
} }
......
...@@ -5,10 +5,11 @@ ...@@ -5,10 +5,11 @@
height: auto; height: auto;
margin: auto; margin: auto;
padding: 20px 0; padding: 20px 0;
border: 1px solid #d1d1d1; /* border: 1px solid #d1d1d1; */
} }
.comTitle { .comTitle {
width: 97%;
border: 2px solid #808080; border: 2px solid #808080;
padding: 5px; padding: 5px;
background-color: #fff; background-color: #fff;
...@@ -48,7 +49,7 @@ ...@@ -48,7 +49,7 @@
.comflex { .comflex {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
margin-bottom: 10px; margin-bottom: 20px;
} }
.contractInput { .contractInput {
...@@ -63,17 +64,48 @@ ...@@ -63,17 +64,48 @@
.comLeftTile { .comLeftTile {
margin-right: 20px; margin-right: 20px;
} }
.conTable td{
height:30px; .conTable td {
height: 30px;
}
.conTable th {
height: 40px;
}
.input2 {
width: 280px;
}
.input3 {
width: 250px;
} }
.conTable th{
height:40px; .conTractInner {
width: 33%;
min-height: 400px;
border: 1px solid #d1d1d1;
padding: 10px;
} }
.input2{
width:280px; .commonTitle1 {
font-size: 16px;
margin-bottom: 10px;
font-weight: bold;
} }
.input3{
width:250px; .commonContent {
font-size: 14px;
line-height: 25px;
margin-bottom: 20px;
}
.conTable th,
.conTable td {
height: 40px;
}
.ConTract_Line .commonContent{
line-height: 35px;
} }
</style> </style>
<template> <template>
...@@ -355,6 +387,92 @@ ...@@ -355,6 +387,92 @@
</tr> </tr>
</table> </table>
<div class="comflex">
<div class="conTractInner">
<div class="commonTitle1">一、声明</div>
<div class="commonContent">
当您签署此协议之前,请确保已清楚了解以下事宜:
</div>
<div class="commonContent">
1、温馨提示:日语学习的过程中,学员的上课到勤率越高,教学成果会更好,学员达成课程学习目标的概率将会较高。
</div>
<div class="commonContent" style="color:red;">
因此,请确保您已经认真了解过该门课程的学习内容、规划与学费事宜;已充分做好了各项学习准备,真正让自己做到上课到勤率达到90%以上,努力达成既定学习目标。
</div>
<div class="commonContent">
2、您有一次在学习的任何阶段申请停课的权利。当您按要求正式办理相关停课手续之日起,12个月内,如无不可抗力事由,您必须从停课之日起按要求提出复课申请。您如未按要求复课,则视作学员主动放弃继续学习的权力,终止本课程协议。
</div>
</div>
<div class="conTractInner">
<div class="commonContent">3、请您牢记全国官方唯一服务号码:028-6199-3633</div>
<div class="commonContent" style="color:red;">
4、请您认真阅读并充分理解本协议内容后签署此协议,一旦签署则视为完全理解并同意该协议内容。
</div>
<div class="commonTitle1">二、总则</div>
<div class="commonContent">
成都市锦江区甲鹤外语培训学校有限公司(以下简称“甲方”)与培训学员(以下简称“乙方”)根据《中华人民共和国合同法》等法律、法规规定,双方在平等、自愿、协商一致的基础上达成此协议。
如乙方有同时学习两门或两门以上不同类别的课程要求,则乙方须分课程类别签订课程协议。
</div>
</div>
<div class="conTractInner">
<div class="commonTitle1">三、课程费用</div>
<div class="commonContent">1、费用总计:以乙方选择课程之时,即时公布的课程收费标准为准。</div>
<div>
人民币(大写):<div class="contractInput" style="width:150px;"></div>
</div>
<div style="margin-top:20px;">
人民币(小写):<div class="contractInput" style="width:150px;"></div>
</div>
<div class="commonContent">
2、支付方式:<span style="color:red;">扫码支付(微信、支付宝)、POS机刷卡支付(信用卡,银行借记卡)、银行汇款/转账。</span>
</div>
<div class="commonContent">
3、支付截止日期提醒:正式确认报名之日起,乙方须在7个工作日内足额缴纳学费(正式确认报名的时间以乙方缴纳定金之日为准,若乙方未缴纳定金的,以正式开课日前七个工作日为准),因课程一旦开始,同班级学员将统一安排课表持续学习,为了不打乱正常的授课计划,乙方应按本协议约定时间内足额缴纳学费,因逾期缴费所造成的课程延误或课程进度缺失,乙方自行承担责任。甲方因乙方逾期缴费而造成的损失,由乙方承担。
</div>
<div class="commonTitle1">四、双方权利与义务</div>
</div>
</div>
<div class="comTitle">
<div class="comTiInner">
<div class="comTLeft">甲鹤日语课程协议</div>
<div class="comTRight"></div>
</div>
</div>
<div class="comflex" style="margin-top:40px;">
<div class="conTractInner ConTract_Line">
<div class="commonContent">1、甲方权利与义务</div>
<div class="commonContent">1.1 甲方权利</div>
<div class="commonContent">1.1.1 甲方按照甲方的教学管理制度规定对乙方实施培训管理。</div>
<div class="commonContent">1.1.2 甲方按本协议约定向乙方收取课程费用。</div>
<div class="commonContent">1.1.3 如有乙方违反甲方的教学管理制度的行为,甲方有权要求乙方在规定时间内进行改正。</div>
<div class="commonContent">1.1.4 为达到更好的教学效果,甲方应根据班级成员状
况、班级教学进度和教学情况,做好合理安排,监督并协助授课老师调整授课方式,必要时有权利为学员更换更适合的教师授课。
</div>
<div class="commonContent">1.1.5 根据班级人数状况以及学员学习进度,甲方应
主动提出更优的班级组成形式的建议,必要时,可适当调整乙方的班级管理 (班级分组、授课形式、授课地点等)。
</div>
<div class="commonContent">1.2 甲方义务</div>
<div class="commonContent">1.2.1 甲方制定规范有效的培训计划,其中包括:教材和资料的确认;在合理期限内,通过完成教学课时,达成教学进度目标;定时测验,随时掌握班级学习情况;严格对教师和学员进行考核;甲方教师应对学员发布作业以及批改作业;甲方老师应按时协助学员安排好国际认证考试计划等。</div>
<div class="commonContent">1.2.2 甲方依据本协议规定,指派任课教师,在合理的期限内完成教学服务。</div>
<div class="commonContent">1.2.3 甲方应当及时且有效的解决乙方通过当面咨询或拨打咨询电话等方式提出的在培训过程中遇到的与培训内容相关的问题。</div>
<div class="commonContent">1.2.4 甲方依据乙方学习的实际情况,在收到乙</div>
</div>
<div class="conTractInner ConTract_Line">
<div class="commonContent">方的正式书面申请之日起,在10个工作日内为乙方开具在读证明或培训证明。</div>
<div class="commonContent">1.2.5 当乙方在修完所报课程,但未通过所报课程相对应级别的考试,且在参加国际认证考试之日起12个月内向甲方提出免费复学申请的,甲方应在收到乙方书面复学申请后1-2个月内安排乙方进行日语水平测试及确认复学课程,或者直接合理安排复学课程。</div>
<div class="commonContent">2、乙方权利与义务</div>
<div class="commonContent">2.1 乙方权利</div>
<div class="commonContent">2.1.1 乙方有权向甲方反应其任课教师情况,如出现甲方老师不按时上课、不按教学计划上课等,乙方有权向甲方反映,经甲方核实后决定是否更换教师或纠正教师的不当行为。</div>
<div class="commonContent">2.1.2 乙方修完所报课程,未通过所报课程相应级别的考试,有权在参加国际认证考试之日起12个月内向甲方书面提出一次免费复学申请。若乙方超出前述时限提出免费复学申请的,甲方有权拒绝。</div>
<div class="commonContent">2.2 乙方义务</div>
<div class="commonContent">2.2.1 为保障乙方学习效果,乙方自愿遵守甲方在本协议内指定的教学培训管理规定。</div>
<div class="commonContent">
2.2.2 为有针对性的给乙方提供更多且有效的升学、留学与就业服务机会,乙方须自愿服从甲方安排并参加相关国际认证考试;且乙方拿到国际认证考试成绩后,自愿将国际认证考试相关证书扫描件提交给甲方存档,并允许荣誉展示,作为学员见证资料。
</div>
</div>
</div>
</div> </div>
</div> </div>
</template> </template>
...@@ -283,12 +283,13 @@ ...@@ -283,12 +283,13 @@
}, },
//跳转至编辑 //跳转至编辑
goContract(item) { goContract(item) {
this.$router.push({    let routeUrl = this.$router.resolve({
path: 'contractEdit',      path: "/contractView",
query: {      query: {
"Id": item.Id
} }
})    });
   window.open(routeUrl.href, '_blank');
}, },
//新增修改合同 //新增修改合同
EditContract(obj) { EditContract(obj) {
......
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