Commit 8f2d2ccb authored by 黄奎's avatar 黄奎

新增页面

parent 4629790c
......@@ -397,12 +397,9 @@
} else{
this.OrderMsg.PreferPrice = Number(guestNum * unit_price).toFixed(2) - this.OrderMsg.LessPrice;
}
}
//留学就业订单
if (this.OrderMsg.OrderType == 2) {
console.log("我进来了2");
this.OrderMsg.OldPreferPrice = Number(guestNum * unit_price).toFixed(2);
}
},
......@@ -413,7 +410,6 @@
}).then(res => {
if (res.Code == 1) {
var tempData = res.Data.OrderInfo;
console.log("tempData",tempData);
this.OrderMsg.ClassId = tempData.ClassId;
this.OrderMsg.GuestNum = tempData.GuestNum;
this.OrderMsg.Unit_Price = tempData.Unit_Price;
......
......@@ -17,7 +17,7 @@
<template v-slot:body-cell-Demand="props">
<q-td>
<template>
<div v-html="props.row.Demand"></div>
<div v-html="props.row.Demand"></div>
</template>
</q-td>
</template>
......@@ -208,7 +208,6 @@
},
//编辑试听
editVisitor(obj) {
console.log("reserveObj",obj);
this.reserveObj = obj
this.isShowReserve = true;
},
......@@ -219,8 +218,6 @@
refreshPage() {
this.$emit('success');
},
//删除试听
DeleteVisitorReserve(Id) {
let that = this;
......
......@@ -527,7 +527,6 @@
this.getStudentDorpDown();
this.getGetNeedsList();
this.queryStuTelType();
console.log("this.StudentType",this.StudentType);
if (this.saveObj) {
if (this.saveObj.StuId > 0) {
this.customMsg.StuId = this.saveObj.StuId;
......
......@@ -12,19 +12,13 @@
<div class="row q-mb-md">
<div class="col-10 flex">
<div v-for="(item, index) in stuData.StuList">
<q-chip icon="person" class="primary"
>{{ item.StuName }}
<q-chip icon="person" class="primary">{{ item.StuName }}
<span v-if="item.IsRenewGuest === 1">(续费)</span>
</q-chip>
</div>
</div>
<div class="col-2" v-if="mode == 1">
<q-toggle
v-model="OrderMsg.IsChaBan"
:true-value="1"
:false-value="0"
label="插班报入"
/>
<q-toggle v-model="OrderMsg.IsChaBan" :true-value="1" :false-value="0" label="插班报入" />
</div>
</div>
<!-- 多个约课 -->
......@@ -34,168 +28,50 @@
<span class="q-ml-md text-primary">课程:</span>{{item.CourseName}}
</div>
<div class="col row wrap q-mr-lg q-ml-lg q-col-gutter-md">
<q-input
filled
stack-label
maxlength="3"
:dense="false"
v-model="item.GuestNum"
label="人数"
:rules="[val => !!val || '请填写人数']"
disable
class="col-6 q-py-sm"
/>
<q-input
filled
stack-label
:dense="false"
v-model="item.Class_Price"
:disable="true"
class="col-6 q-py-sm"
label="单价(课程售价)"
style="display:none;"
/>
<q-input filled stack-label maxlength="3" :dense="false" v-model="item.GuestNum" label="人数"
:rules="[val => !!val || '请填写人数']" disable class="col-6 q-py-sm" />
<q-input filled stack-label :dense="false" v-model="item.Class_Price" :disable="true" class="col-6 q-py-sm"
label="单价(课程售价)" style="display:none;" />
<template v-if="modityOrderType == 1">
<q-input
filled
stack-label
:dense="false"
v-model="item.Unit_Price"
:disable="IsShowUpPrice == true ? false : true"
class="col-6 q-py-sm"
label="成交单价"
:rules="[val => !!val || '请填成交单价']"
/>
<q-toggle
v-model="IsShowUpPrice"
label="高于定价收生"
class="q-mb-md"
style="display:none;"
/>
<q-input filled stack-label :dense="false" v-model="item.Unit_Price"
:disable="IsShowUpPrice == true ? false : true" class="col-6 q-py-sm" label="成交单价"
:rules="[val => !!val || '请填成交单价']" />
<q-toggle v-model="IsShowUpPrice" label="高于定价收生" class="q-mb-md" style="display:none;" />
</template>
<template v-if="modityOrderType == 2">
<q-input
filled
stack-label
:dense="false"
v-model="item.Unit_Price"
:disable="true"
class="col-6 q-py-sm"
label="成交单价"
:rules="[val => !!val || '请填成交单价']"
/>
<q-input filled stack-label :dense="false" v-model="item.Unit_Price" :disable="true" class="col-6 q-py-sm"
label="成交单价" :rules="[val => !!val || '请填成交单价']" />
</template>
<q-input
v-if="false"
filled
stack-label
:dense="false"
v-model="item.DiscountMoney"
:disable="true"
class="col-6 q-py-sm"
label="优惠金额"
/>
<q-input v-if="false" filled stack-label :dense="false" v-model="item.DiscountMoney" :disable="true"
class="col-6 q-py-sm" label="优惠金额" />
<template v-if="item.Unit_PriceType==2">
<q-input
filled
stack-label
:dense="false"
type="number"
:min="1"
@input="totalCourseFee(1)"
v-model="item.TotalClassHours"
class="col-6 q-py-sm"
label="总课时数"
/>
<q-input filled stack-label :dense="false" type="number" :min="1" @input="totalCourseFee(1)"
v-model="item.TotalClassHours" class="col-6 q-py-sm" label="总课时数" />
</template>
<q-input
filled
stack-label
:dense="false"
type="number"
:min="0"
@input="totalCourseFee(0)"
v-model="item.TextbookFee"
class="col-6 q-py-sm"
label="课件费"
/>
<q-input
filled
stack-label
:dense="false"
type="number"
:min="0"
@input="totalCourseFee(0)"
v-model="item.CoursewareFee"
class="col-6 q-py-sm"
label="教材费"
/>
<q-input filled stack-label :dense="false" type="number" :min="0" @input="totalCourseFee(0)"
v-model="item.TextbookFee" class="col-6 q-py-sm" label="课件费" />
<q-input filled stack-label :dense="false" type="number" :min="0" @input="totalCourseFee(0)"
v-model="item.CoursewareFee" class="col-6 q-py-sm" label="教材费" />
<template v-if="modityOrderType == 3">
<q-input
filled
min
stack-label
:dense="false"
v-model="item.Unit_Price"
class="col-6 q-py-sm"
label="成交单价"
:rules="[val => !!val || '请填成交单价']"
/>
<q-input filled min stack-label :dense="false" v-model="item.Unit_Price" class="col-6 q-py-sm" label="成交单价"
:rules="[val => !!val || '请填成交单价']" />
</template>
<q-input
filled
stack-label
:disable="modityOrderType != 3"
:dense="false"
maxlength="10"
v-model="item.PreferPrice"
class="col-6 q-py-sm"
label="应收"
/>
<q-select
v-if="mode == 2"
standout="bg-primary text-white"
option-value="SId"
option-label="SName"
v-model="item.ScrollSchoolId"
:options="newSchoolList"
emit-value
map-options
class="col-6 q-py-sm"
label="校区"
/>
<q-select style="display:none;"
:disable="modityOrderType == 2"
standout="bg-primary text-white"
option-value="Id"
option-label="Name"
v-model="item.OrderSource"
:options="SourceEnumList"
emit-value
map-options
class="col-6 q-py-sm"
label="客人来源"
/>
<q-select v-if="false"
:disable="
<q-input filled stack-label :disable="modityOrderType != 3" :dense="false" maxlength="10"
v-model="item.PreferPrice" class="col-6 q-py-sm" label="应收" />
<q-select v-if="mode == 2" standout="bg-primary text-white" option-value="SId" option-label="SName"
v-model="item.ScrollSchoolId" :options="newSchoolList" emit-value map-options class="col-6 q-py-sm"
label="校区" />
<q-select style="display:none;" :disable="modityOrderType == 2" standout="bg-primary text-white"
option-value="Id" option-label="Name" v-model="item.OrderSource" :options="SourceEnumList" emit-value
map-options class="col-6 q-py-sm" label="客人来源" />
<q-select v-if="false" :disable="
modityOrderType == 2 ||
item.JoinType == 3 ||
CourseConsultantDisable
"
v-model="item.CourseConsultantId"
:options="EmployeeList2"
filled
use-input
label="课程顾问"
option-label="EmployeeName"
option-value="Id"
ref="EmployeeName2"
class="col-6 q-py-sm"
emit-value
map-options
@filter="filterFn2"
>
" v-model="item.CourseConsultantId" :options="EmployeeList2" filled use-input label="课程顾问"
option-label="EmployeeName" option-value="Id" ref="EmployeeName2" class="col-6 q-py-sm" emit-value
map-options @filter="filterFn2">
<template v-slot:no-option>
<q-item>
<q-item-section class="text-grey">
......@@ -204,310 +80,102 @@
</q-item>
</template>
</q-select>
<q-input
:disable="modityOrderType == 2"
v-if="item.OrderSource == 3"
filled
stack-label
:dense="false"
maxlength="50"
v-model="item.GeneralOccupation"
class="col-6 q-py-sm"
label="一般同行"
/>
<q-input
:disable="modityOrderType == 2"
v-if="item.OrderSource == 7"
filled
stack-label
:dense="false"
maxlength="50"
v-model="item.EduOccupation"
class="col-6 q-py-sm"
label="教育同行"
/>
<q-input
:disable="modityOrderType == 2"
v-if="item.IsLessPrice == 1"
maxlength="10"
filled
stack-label
:dense="false"
v-model="item.PerLessMoney"
class="col-6 q-py-sm"
label="少价金额(每人)"
:hint="'总少价金额:' + item.PerLessMoney * item.GuestNum"
/>
<q-input
disable
v-if="item.EnterId > 0"
filled
stack-label
v-model="EnterName"
class="col-6 q-py-sm"
label="市场人员"
/>
<q-input
v-if="OrderMsg.HelpEnterId>0"
filled
stack-label
disable
:dense="false"
maxlength="10"
v-model="AssistName"
class="col-6 q-py-sm"
label="协助老师"
/>
<q-input
filled
stack-label
:dense="false"
v-model="item.SaleRemark"
type="textarea"
class="col-12 q-py-sm"
label="备注"
/>
<q-input :disable="modityOrderType == 2" v-if="item.OrderSource == 3" filled stack-label :dense="false"
maxlength="50" v-model="item.GeneralOccupation" class="col-6 q-py-sm" label="一般同行" />
<q-input :disable="modityOrderType == 2" v-if="item.OrderSource == 7" filled stack-label :dense="false"
maxlength="50" v-model="item.EduOccupation" class="col-6 q-py-sm" label="教育同行" />
<q-input :disable="modityOrderType == 2" v-if="item.IsLessPrice == 1" maxlength="10" filled stack-label
:dense="false" v-model="item.PerLessMoney" class="col-6 q-py-sm" label="少价金额(每人)"
:hint="'总少价金额:' + item.PerLessMoney * item.GuestNum" />
<q-input disable v-if="item.EnterId > 0" filled stack-label v-model="EnterName" class="col-6 q-py-sm"
label="市场人员" />
<q-input v-if="OrderMsg.HelpEnterId>0" filled stack-label disable :dense="false" maxlength="10"
v-model="AssistName" class="col-6 q-py-sm" label="协助老师" />
<q-input filled stack-label :dense="false" v-model="item.SaleRemark" type="textarea" class="col-12 q-py-sm"
label="备注" />
</div>
</div>
</div>
<!-- 一个约课、班课 -->
<div v-else class="column items-center">
<div class="col row wrap q-mr-lg q-col-gutter-md">
<q-input
filled
stack-label
maxlength="3"
:dense="false"
@keyup.native="checkInteger(OrderMsg, 'GuestNum')"
v-model="OrderMsg.GuestNum"
@input="calcPrice()"
label="人数"
:rules="[val => !!val || '请填写人数']"
disable
class="col-6 q-py-sm"
/>
<q-input filled stack-label maxlength="3" :dense="false" @keyup.native="checkInteger(OrderMsg, 'GuestNum')"
v-model="OrderMsg.GuestNum" @input="calcPrice()" label="人数" :rules="[val => !!val || '请填写人数']" disable
class="col-6 q-py-sm" />
<template v-if="OrderMsg.IsChaBan == 1">
<q-select
filled
option-value="CourseId"
:disable="modityOrderType == 2"
option-label="CourseName"
ref="CourseId"
v-model="OrderMsg.CourseId"
:options="CourseList"
emit-value
map-options
class="col-6 q-py-sm"
:rules="[val => !!val || '请选择课程']"
label="选择课程"
@input="calcPrice()"
/>
<q-input
filled
stack-label
:dense="false"
v-model="OrderMsg.StartClassHours"
:disable="modityOrderType == 2"
@keyup.native="checkInteger(OrderMsg, 'StartClassHours')"
ref="StartClassHours"
@input="calcPrice()"
class="col-6 q-py-sm"
label="起始课时"
/>
<q-input
filled
v-model="OrderMsg.EffectTime"
ref="EffectTime"
:rules="[val => !!val || '请填生效时间']"
class="col-6 q-py-sm"
:disable="modityOrderType == 2"
mask="date"
label="生效时间"
>
<q-select filled option-value="CourseId" :disable="modityOrderType == 2" option-label="CourseName"
ref="CourseId" v-model="OrderMsg.CourseId" :options="CourseList" emit-value map-options
class="col-6 q-py-sm" :rules="[val => !!val || '请选择课程']" label="选择课程" @input="calcPrice()" />
<q-input filled stack-label :dense="false" v-model="OrderMsg.StartClassHours" :disable="modityOrderType == 2"
@keyup.native="checkInteger(OrderMsg, 'StartClassHours')" ref="StartClassHours" @input="calcPrice()"
class="col-6 q-py-sm" label="起始课时" />
<q-input filled v-model="OrderMsg.EffectTime" ref="EffectTime" :rules="[val => !!val || '请填生效时间']"
class="col-6 q-py-sm" :disable="modityOrderType == 2" mask="date" label="生效时间">
<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="OrderMsg.EffectTime"
@input="() => $refs.qDateProxy1.hide()"
/>
<q-popup-proxy ref="qDateProxy1" transition-show="scale" transition-hide="scale">
<q-date v-model="OrderMsg.EffectTime" @input="() => $refs.qDateProxy1.hide()" />
</q-popup-proxy>
</q-icon>
</template>
</q-input>
<q-select
filled
option-value="OrderId"
option-label="CourseName"
class="col-6 q-py-sm"
:disable="modityOrderType == 2"
v-model="OrderMsg.UpOrderId"
:options="beforeOrderList"
emit-value
map-options
label="前置订单"
>
<template
v-slot:option="{
<q-select filled option-value="OrderId" option-label="CourseName" class="col-6 q-py-sm"
:disable="modityOrderType == 2" v-model="OrderMsg.UpOrderId" :options="beforeOrderList" emit-value
map-options label="前置订单">
<template v-slot:option="{
itemProps,
itemEvents,
opt,
selected,
toggleOption
}"
>
}">
<q-item v-bind="itemProps" v-on="itemEvents">
<q-item-section>
<q-item-label
><span style="color:blue">{{ opt.OrderId }}</span>
<q-item-label><span style="color:blue">{{ opt.OrderId }}</span>
{{ opt.CourseName }} {{ opt.ClassName }}
{{ getStudent(opt.GuestList) }}</q-item-label
>
{{ getStudent(opt.GuestList) }}</q-item-label>
</q-item-section>
</q-item>
</template>
</q-select>
</template>
<q-input
filled
stack-label
:dense="false"
v-model="OrderMsg.Class_Price"
:disable="true"
class="col-6 q-py-sm"
label="单价(课程售价)"
style="display:none;"
/>
<q-input filled stack-label :dense="false" v-model="OrderMsg.Class_Price" :disable="true" class="col-6 q-py-sm"
label="单价(课程售价)" style="display:none;" />
<template v-if="modityOrderType == 1">
<q-input
filled
stack-label
:dense="false"
v-model="OrderMsg.Unit_Price"
:disable="IsShowUpPrice == true ? false : true"
@blur="calcPrice()"
class="col-6 q-py-sm"
label="成交单价"
:rules="[val => !!val || '请填成交单价']"
/>
<q-toggle
v-model="IsShowUpPrice"
label="高于定价收生"
class="q-mb-md"
style="display:none;"
/>
<q-input filled stack-label :dense="false" v-model="OrderMsg.Unit_Price"
:disable="IsShowUpPrice == true ? false : true" @blur="calcPrice()" class="col-6 q-py-sm" label="成交单价"
:rules="[val => !!val || '请填成交单价']" />
<q-toggle v-model="IsShowUpPrice" label="高于定价收生" class="q-mb-md" style="display:none;" />
</template>
<template v-if="modityOrderType == 2">
<q-input
filled
stack-label
:dense="false"
v-model="OrderMsg.Unit_Price"
:disable="true"
@input="calcPrice()"
class="col-6 q-py-sm"
label="成交单价"
:rules="[val => !!val || '请填成交单价']"
/>
<q-input filled stack-label :dense="false" v-model="OrderMsg.Unit_Price" :disable="true" @input="calcPrice()"
class="col-6 q-py-sm" label="成交单价" :rules="[val => !!val || '请填成交单价']" />
</template>
<q-input
v-if="false"
filled
stack-label
:dense="false"
v-model="OrderMsg.DiscountMoney"
:disable="true"
class="col-6 q-py-sm"
label="优惠金额"
/>
<q-input v-if="false" filled stack-label :dense="false" v-model="OrderMsg.DiscountMoney" :disable="true"
class="col-6 q-py-sm" label="优惠金额" />
<template v-if="OrderMsg.Unit_PriceType==2">
<q-input
filled
stack-label
:dense="false"
type="number"
:min="1"
@input="oneTotalCourseFee(1)"
v-model="OrderMsg.TotalClassHours"
class="col-6 q-py-sm"
label="总课时数"
/>
<q-input filled stack-label :dense="false" type="number" :min="1" @input="oneTotalCourseFee(1)"
v-model="OrderMsg.TotalClassHours" class="col-6 q-py-sm" label="总课时数" />
</template>
<q-input
filled
stack-label
:dense="false"
type="number"
:min="0"
@input="oneTotalCourseFee(0)"
v-model="OrderMsg.TextbookFee"
class="col-6 q-py-sm"
label="课件费"
/>
<q-input
filled
stack-label
:dense="false"
type="number"
:min="0"
@input="oneTotalCourseFee(0)"
v-model="OrderMsg.CoursewareFee"
class="col-6 q-py-sm"
label="教材费"
/>
<q-input filled stack-label :dense="false" type="number" :min="0" @input="oneTotalCourseFee(0)"
v-model="OrderMsg.TextbookFee" class="col-6 q-py-sm" label="课件费" />
<q-input filled stack-label :dense="false" type="number" :min="0" @input="oneTotalCourseFee(0)"
v-model="OrderMsg.CoursewareFee" class="col-6 q-py-sm" label="教材费" />
<!-- <q-input filled stack-label :dense="false" v-model="OrderMsg.PerDiscountMoney" :disable="true"
class="col-6 q-py-sm" label="优惠金额(每人)" :hint="'总优惠金额:'+(OrderMsg.PerDiscountMoney*OrderMsg.GuestNum)" /> -->
<template v-if="modityOrderType == 3">
<q-input
filled
stack-label
:dense="false"
v-model="OrderMsg.Unit_Price"
@input="calcPrice()"
class="col-6 q-py-sm"
label="成交单价"
:rules="[val => !!val || '请填成交单价']"
/>
<q-input filled stack-label :dense="false" v-model="OrderMsg.Unit_Price" @input="calcPrice()"
class="col-6 q-py-sm" label="成交单价" :rules="[val => !!val || '请填成交单价']" />
</template>
<q-input
filled
stack-label
:disable="modityOrderType != 3"
:dense="false"
maxlength="10"
@keyup.native="checkPrice(OrderMsg, 'PreferPrice')"
v-model="OrderMsg.PreferPrice"
class="col-6 q-py-sm"
label="应收"
/>
<q-select
v-if="mode == 2"
standout="bg-primary text-white"
option-value="SId"
option-label="SName"
v-model="OrderMsg.ScrollSchoolId"
:options="newSchoolList"
emit-value
map-options
class="col-6 q-py-sm"
label="校区"
/>
<q-select style="display:none;"
:disable="modityOrderType == 2"
standout="bg-primary text-white"
option-value="Id"
option-label="Name"
v-model="OrderMsg.OrderSource"
:options="SourceEnumList"
emit-value
map-options
class="col-6 q-py-sm"
label="客人来源"
/>
<q-input filled stack-label :disable="modityOrderType != 3" :dense="false" maxlength="10"
@keyup.native="checkPrice(OrderMsg, 'PreferPrice')" v-model="OrderMsg.PreferPrice" class="col-6 q-py-sm"
label="应收" />
<q-select v-if="mode == 2" standout="bg-primary text-white" option-value="SId" option-label="SName"
v-model="OrderMsg.ScrollSchoolId" :options="newSchoolList" emit-value map-options class="col-6 q-py-sm"
label="校区" />
<q-select style="display:none;" :disable="modityOrderType == 2" standout="bg-primary text-white"
option-value="Id" option-label="Name" v-model="OrderMsg.OrderSource" :options="SourceEnumList" emit-value
map-options class="col-6 q-py-sm" label="客人来源" />
<!-- <q-select
:disable="
modityOrderType == 2 || OrderMsg.JoinType == 3 || HelpEnterDisable
......@@ -533,25 +201,13 @@
</q-item>
</template>
</q-select> -->
<q-select v-if="false"
:disable="
<q-select v-if="false" :disable="
modityOrderType == 2 ||
OrderMsg.JoinType == 3 ||
CourseConsultantDisable
"
v-model="OrderMsg.CourseConsultantId"
:options="EmployeeList2"
filled
use-input
label="课程顾问"
option-label="EmployeeName"
option-value="Id"
ref="EmployeeName2"
class="col-6 q-py-sm"
emit-value
map-options
@filter="filterFn2"
>
" v-model="OrderMsg.CourseConsultantId" :options="EmployeeList2" filled use-input label="课程顾问"
option-label="EmployeeName" option-value="Id" ref="EmployeeName2" class="col-6 q-py-sm" emit-value map-options
@filter="filterFn2">
<template v-slot:no-option>
<q-item>
<q-item-section class="text-grey">
......@@ -560,81 +216,27 @@
</q-item>
</template>
</q-select>
<q-input
:disable="modityOrderType == 2"
v-if="OrderMsg.OrderSource == 3"
filled
stack-label
:dense="false"
maxlength="50"
v-model="OrderMsg.GeneralOccupation"
class="col-6 q-py-sm"
label="一般同行"
/>
<q-input
:disable="modityOrderType == 2"
v-if="OrderMsg.OrderSource == 7"
filled
stack-label
:dense="false"
maxlength="50"
v-model="OrderMsg.EduOccupation"
class="col-6 q-py-sm"
label="教育同行"
/>
<q-input :disable="modityOrderType == 2" v-if="OrderMsg.OrderSource == 3" filled stack-label :dense="false"
maxlength="50" v-model="OrderMsg.GeneralOccupation" class="col-6 q-py-sm" label="一般同行" />
<q-input :disable="modityOrderType == 2" v-if="OrderMsg.OrderSource == 7" filled stack-label :dense="false"
maxlength="50" v-model="OrderMsg.EduOccupation" class="col-6 q-py-sm" label="教育同行" />
<!-- <q-toggle :disable="(modityOrderType==2)" v-model="OrderMsg.IsLessPrice" :false-value="0" :true-value="1"
label="是否少价" class="q-mb-md" /> -->
<q-input
:disable="modityOrderType == 2"
v-if="OrderMsg.IsLessPrice == 1"
@input="calcPrice()"
@keyup.native="checkPrice(OrderMsg, 'PerLessMoney')"
maxlength="10"
filled
stack-label
:dense="false"
v-model="OrderMsg.PerLessMoney"
class="col-6 q-py-sm"
label="少价金额(每人)"
:hint="'总少价金额:' + OrderMsg.PerLessMoney * OrderMsg.GuestNum"
/>
<q-input
disable
v-if="OrderMsg.EnterId > 0"
filled
stack-label
v-model="EnterName"
class="col-6 q-py-sm"
label="市场人员"
/>
<q-input
v-if="OrderMsg.HelpEnterId>0"
filled
stack-label
disable
:dense="false"
maxlength="10"
v-model="AssistName"
class="col-6 q-py-sm"
label="协助老师"
/>
<q-input
filled
stack-label
:dense="false"
v-model="OrderMsg.SaleRemark"
type="textarea"
class="col-12 q-py-sm"
label="备注"
/>
<q-input :disable="modityOrderType == 2" v-if="OrderMsg.IsLessPrice == 1" @input="calcPrice()"
@keyup.native="checkPrice(OrderMsg, 'PerLessMoney')" maxlength="10" filled stack-label :dense="false"
v-model="OrderMsg.PerLessMoney" class="col-6 q-py-sm" label="少价金额(每人)"
:hint="'总少价金额:' + OrderMsg.PerLessMoney * OrderMsg.GuestNum" />
<q-input disable v-if="OrderMsg.EnterId > 0" filled stack-label v-model="EnterName" class="col-6 q-py-sm"
label="市场人员" />
<q-input v-if="OrderMsg.HelpEnterId>0" filled stack-label disable :dense="false" maxlength="10"
v-model="AssistName" class="col-6 q-py-sm" label="协助老师" />
<q-input filled stack-label :dense="false" v-model="OrderMsg.SaleRemark" type="textarea" class="col-12 q-py-sm"
label="备注" />
</div>
</div>
<div
class="dialog-out-close"
@click="closeEditOrder"
style="height:40px !important;border-top-left-radius: 4px !important;border-bottom-left-radius: 4px !important;"
>
<div class="dialog-out-close" @click="closeEditOrder"
style="height:40px !important;border-top-left-radius: 4px !important;border-bottom-left-radius: 4px !important;">
<q-icon name="iconfont icon-jujue1" size="26px" />
</div>
<q-dialog v-model="inception">
......@@ -649,171 +251,70 @@
<q-card-actions align="right" class="text-primary">
<q-btn flat label="取消" size="sm" v-close-popup />
<q-btn
label="立即查看"
size="sm"
color="accent q-px-md"
style="font-weight:400 !important"
@click="goorder"
/>
<q-btn label="立即查看" size="sm" color="accent q-px-md" style="font-weight:400 !important" @click="goorder" />
</q-card-actions>
</q-card>
</q-dialog>
</div>
</template>
<script>
import {
getClassOrderInfo, //获取订单操作日志列表
getOrderSourceEnumList, //获取订单来源 枚举
setClassOrder, //修改订单
SetClassOrderBatch, //多个约课订单
queryChaClassInfo,
GetSelectClassOrderList //获取前置下拉
} from "../../../../api/sale/sale";
import { GetStudentAssistList } from "../../../../api/sale/sale"; //获取协助人员
import { queryEmployee } from "../../../../api/users/user"; //获取员工
export default {
props: {
saveObj: {
type: Object,
default: null
},
mode: {
type: Number, //1:约课,2:班课
default: 1
},
//订单类型
orderType: {
type: Number,
default: 1
},
//修改订单类型
modityOrderType: {
type: Number,
default: 0 //1-销售修改,2-OP修改,3-总经理修改
},
stuData: {
//学生是否续费
type: Object,
default: null
},
schoolList: {
type: Array,
default: () => []
},
// 已选的多选课程
selectedCourseList: {
type: Array,
default: () => []
}
},
data() {
return {
courseInformationList:[],//存储多个课程
AssistName:"",//协助老师名称
IsShowEditOrder: true,
OrderMsg: {
ClassId: 0, //班级编号
GuestNum: 0, //人数
B2CRatio: 0,
B2CReNewRatio: 0,
Unit_Price: 0,
PreferPrice: 0, //应收
OrderSource: 0,
SaleRemark: "",
Class_Price: 0, //单价
Unit_PriceType:1,//价格类型:1-总课时费,2-课时单价 2024-08-26 add by:W
TotalClassHours:0,//总课时数 2024-08-26 add by:W
CoursewareFee:0,//教材费
TextbookFee:0,//课件费
OrderId: 0,
OrderType: 0, //订单类型(1-班级课程订单,2-留学就业订单)
SourceId: 0, //来源编号
HelpEnterId: 0, //协助老师编号
GeneralOccupation: "", //一般同行
EduOccupation: "", //教育同行
IsLessPrice: 0, //是否少价 0 不少 1 少
LessPrice: 0, //少价金额
PerLessMoney: 0, //每人少价金额
OrderNature: 1, //订单性质
OldPreferPrice: 0, //原实际应收
IsChaBan: 0, //是否插班报入(1-是)
CourseId: "", //课程编号
StartClassHours: 0, //已上课时
EffectTime: "", //生效时间
UpOrderId: 0, //前置订单编号
JoinType: 1, //订单报入类型
DiscountMoney: 0, //优惠金额
PerDiscountMoney: 0, //每人优惠金额
CourseConsultantId: 0, //课程顾问
CustomerId: 0, //同行
OrderIdentify: 2, //标识参数, 1产品下单 2客户转订单
StuIds: "",
EnterId: 0, //市场人员
// NormalCommission:'',//正常返佣金额
// RenewCommission:"",// 预计返佣金额
ScrollSchoolId: -1,
import {
getClassOrderInfo, //获取订单操作日志列表
getOrderSourceEnumList, //获取订单来源 枚举
setClassOrder, //修改订单
SetClassOrderBatch, //多个约课订单
queryChaClassInfo,
GetSelectClassOrderList //获取前置下拉
} from "../../../../api/sale/sale";
import {
GetStudentAssistList
} from "../../../../api/sale/sale"; //获取协助人员
import {
queryEmployee
} from "../../../../api/users/user"; //获取员工
export default {
props: {
saveObj: {
type: Object,
default: null
},
newSchoolList: [],
EnterName: "", //市场人员
Unit_PriceRemark: "", //单价规则
IsShowUpPrice: false, //是否显示高于定价
UnitPrice: 0,
SourceEnumList: [], //订单来源
EmployeeList: [], //教师列表
AllemployeeList: [], //所有教师列表
EmployeeList2: [], //课程顾问列表
AllemployeeList2: [], //所有课程顾问列表
CourseList: [], //课程列表
courseObj: {}, //选择的课程
beforeOrderList: [], //前置订单数据
HelpEnterDisable: false, //是否可选择协助教师
CourseConsultantDisable: false, //是否可选择课程顾问
inception: false,
inceptionData: null
};
},
computed: {
},
watch: {
},
created() {
if (this.saveObj && this.saveObj.CourseId) {
this.OrderMsg.CourseId = this.saveObj.CourseId;
}
this.getOrderSEList();
this.getEmployee(0);
this.getEmployee(2);
this.initConfig();
this.getSelectClass();
},
mounted() {
this.newSchoolList = [];
this.newSchoolList = JSON.parse(JSON.stringify(this.schoolList));
this.newSchoolList.unshift({
SName: "不限",
SId: -1
});
this.initData();
this.getAssistList();
this.OrderMsg.EnterId = this.stuData.EnterId;
this.EnterName = this.stuData.EnterName;
// 判断是否续费协助老师赋值
if (this.stuData.StuList[0].IsRenewGuest!=1){
this.OrderMsg.HelpEnterId = this.stuData.StuList[0].STTeacherId;
this.AssistName = this.stuData.StuList[0].STTeacherName
}
console.log("this.selectedCourseList",this.selectedCourseList);
if(this.selectedCourseList.length>1){
this.selectedCourseList.forEach(item => {
let dataObj = {
CourseName: "",//课程名称
mode: {
type: Number, //1:约课,2:班课
default: 1
},
//订单类型
orderType: {
type: Number,
default: 1
},
//修改订单类型
modityOrderType: {
type: Number,
default: 0 //1-销售修改,2-OP修改,3-总经理修改
},
stuData: {
//学生是否续费
type: Object,
default: null
},
schoolList: {
type: Array,
default: () => []
},
// 已选的多选课程
selectedCourseList: {
type: Array,
default: () => []
}
},
data() {
return {
courseInformationList: [], //存储多个课程
AssistName: "", //协助老师名称
IsShowEditOrder: true,
OrderMsg: {
ClassId: 0, //班级编号
GuestNum: 1, //人数
GuestNum: 0, //人数
B2CRatio: 0,
B2CReNewRatio: 0,
Unit_Price: 0,
......@@ -821,10 +322,10 @@ export default {
OrderSource: 0,
SaleRemark: "",
Class_Price: 0, //单价
Unit_PriceType:1,//价格类型:1-总课时费,2-课时单价 2024-08-26 add by:W
TotalClassHours:0,//总课时数 2024-08-26 add by:W
CoursewareFee:0,//教材费
TextbookFee:0,//课件费
Unit_PriceType: 1, //价格类型:1-总课时费,2-课时单价 2024-08-26 add by:W
TotalClassHours: 0, //总课时数 2024-08-26 add by:W
CoursewareFee: 0, //教材费
TextbookFee: 0, //课件费
OrderId: 0,
OrderType: 0, //订单类型(1-班级课程订单,2-留学就业订单)
SourceId: 0, //来源编号
......@@ -852,597 +353,700 @@ export default {
// NormalCommission:'',//正常返佣金额
// RenewCommission:"",// 预计返佣金额
ScrollSchoolId: -1,
OrderType:1
},
newSchoolList: [],
EnterName: "", //市场人员
Unit_PriceRemark: "", //单价规则
IsShowUpPrice: false, //是否显示高于定价
UnitPrice: 0,
SourceEnumList: [], //订单来源
EmployeeList: [], //教师列表
AllemployeeList: [], //所有教师列表
EmployeeList2: [], //课程顾问列表
AllemployeeList2: [], //所有课程顾问列表
CourseList: [], //课程列表
courseObj: {}, //选择的课程
beforeOrderList: [], //前置订单数据
HelpEnterDisable: false, //是否可选择协助教师
CourseConsultantDisable: false, //是否可选择课程顾问
inception: false,
inceptionData: null
};
},
computed: {
},
watch: {
},
created() {
if (this.saveObj && this.saveObj.CourseId) {
this.OrderMsg.CourseId = this.saveObj.CourseId;
}
if(item.CourseName){
dataObj.CourseName = item.CourseName
}
if (item.ClassId) {
dataObj.ClassId = item.ClassId;
}
if (item.SellPrice) {
dataObj.Unit_Price = item.SellPrice;
dataObj.Class_Price = item.SellPrice;
}
if (item.SellPriceType) {
dataObj.Unit_PriceType = item.SellPriceType;
}
if (item.TotalClassHours) {
dataObj.TotalClassHours = item.TotalClassHours;
}
if (item.CoursewareFee) {
dataObj.CoursewareFee = item.CoursewareFee;
}
if (item.TextbookFee) {
dataObj.TextbookFee = item.TextbookFee;
}
if (item.SourceId) {
dataObj.SourceId = item.SourceId;
}
if (item.CourseId) {
dataObj.CourseId = item.CourseId;
} else {
dataObj.CourseId = "";
}
if (item.B2CRatio) {
dataObj.B2CRatio = item.B2CRatio;
}
if (item.B2CReNewRatio) {
dataObj.B2CReNewRatio = item.B2CReNewRatio;
}
if (this.stuData.RenewNum > 0) {
dataObj.SaleRemark = `首次报名优惠比例${item.B2CRatio ??
0}%;续费优惠比例${item.B2CReNewRatio ?? 0}%`;
} else {
dataObj.SaleRemark = `首次报名优惠比例${item.B2CRatio ??
0}%`;
}
this.courseInformationList.push(dataObj)
this.getOrderSEList();
this.getEmployee(0);
this.getEmployee(2);
this.initConfig();
this.getSelectClass();
},
mounted() {
this.newSchoolList = [];
this.newSchoolList = JSON.parse(JSON.stringify(this.schoolList));
this.newSchoolList.unshift({
SName: "不限",
SId: -1
});
this.totalCourseFee(1)
}
},
methods: {
this.initData();
this.getAssistList();
this.OrderMsg.EnterId = this.stuData.EnterId;
this.EnterName = this.stuData.EnterName;
//单个课程计算
oneTotalCourseFee(type){
if(this.OrderMsg.Unit_PriceType==2){
if(type==1){
this.OrderMsg.TextbookFee=Number((this.OrderMsg.TotalClassHours*this.OrderMsg.Unit_Price*this.OrderMsg.GuestNum)*(20/100)).toFixed(2);
// 判断是否续费协助老师赋值
if (this.stuData.StuList[0].IsRenewGuest != 1) {
this.OrderMsg.HelpEnterId = this.stuData.StuList[0].STTeacherId;
this.AssistName = this.stuData.StuList[0].STTeacherName
}
this.OrderMsg.PreferPrice = this.OrderMsg.GuestNum*this.OrderMsg.Unit_Price*this.OrderMsg.TotalClassHours+Number(this.OrderMsg.TextbookFee)+Number(this.OrderMsg.CoursewareFee)
if (this.selectedCourseList.length > 1) {
this.selectedCourseList.forEach(item => {
let dataObj = {
CourseName: "", //课程名称
ClassId: 0, //班级编号
GuestNum: 1, //人数
B2CRatio: 0,
B2CReNewRatio: 0,
Unit_Price: 0,
PreferPrice: 0, //应收
OrderSource: 0,
SaleRemark: "",
Class_Price: 0, //单价
Unit_PriceType: 1, //价格类型:1-总课时费,2-课时单价 2024-08-26 add by:W
TotalClassHours: 0, //总课时数 2024-08-26 add by:W
CoursewareFee: 0, //教材费
TextbookFee: 0, //课件费
OrderId: 0,
OrderType: 0, //订单类型(1-班级课程订单,2-留学就业订单)
SourceId: 0, //来源编号
HelpEnterId: 0, //协助老师编号
GeneralOccupation: "", //一般同行
EduOccupation: "", //教育同行
IsLessPrice: 0, //是否少价 0 不少 1 少
LessPrice: 0, //少价金额
PerLessMoney: 0, //每人少价金额
OrderNature: 1, //订单性质
OldPreferPrice: 0, //原实际应收
IsChaBan: 0, //是否插班报入(1-是)
CourseId: "", //课程编号
StartClassHours: 0, //已上课时
EffectTime: "", //生效时间
UpOrderId: 0, //前置订单编号
JoinType: 1, //订单报入类型
DiscountMoney: 0, //优惠金额
PerDiscountMoney: 0, //每人优惠金额
CourseConsultantId: 0, //课程顾问
CustomerId: 0, //同行
OrderIdentify: 2, //标识参数, 1产品下单 2客户转订单
StuIds: "",
EnterId: 0, //市场人员
// NormalCommission:'',//正常返佣金额
// RenewCommission:"",// 预计返佣金额
ScrollSchoolId: -1,
OrderType: 1
}
},
// 多个课程计算
totalCourseFee(type){
this.courseInformationList.forEach((item)=>{
if(this.stuData.StuList[0].IsRenewGuest==1){
item.DiscountMoney = this.accAdd(
item.DiscountMoney,
this.accMul(
item.Class_Price,
item.B2CReNewRatio / 100
)
);
if(item.Unit_PriceType==1){
item.PreferPrice = item.GuestNum*item.Unit_Price
if (item.CourseName) {
dataObj.CourseName = item.CourseName
}
else if(item.Unit_PriceType==2){
if(type==1){
item.TextbookFee=Number((item.TotalClassHours*item.Unit_Price*item.GuestNum)*(20/100)).toFixed(2);
}
item.PreferPrice = (item.GuestNum*item.Unit_Price*item.TotalClassHours)+Number(item.TextbookFee)+Number(item.CoursewareFee)
if (item.ClassId) {
dataObj.ClassId = item.ClassId;
}
}else{
item.DiscountMoney = this.accAdd(
item.DiscountMoney,
this.accMul(item.Class_Price, item.B2CRatio / 100)
);
if(item.Unit_PriceType==1){
item.PreferPrice = item.GuestNum*item.Unit_Price
if (item.SellPrice) {
dataObj.Unit_Price = item.SellPrice;
dataObj.Class_Price = item.SellPrice;
}
else if(item.Unit_PriceType==2){
item.TextbookFee=Number((item.TotalClassHours*item.Unit_Price*item.GuestNum)*(20/100)).toFixed(2);
item.PreferPrice = item.GuestNum*item.Unit_Price*item.TotalClassHours+Number(item.TextbookFee)+Number(item.CoursewareFee)
if (item.SellPriceType) {
dataObj.Unit_PriceType = item.SellPriceType;
}
//item.PreferPrice = item.GuestNum*item.Unit_Price
}
})
if (item.TotalClassHours) {
dataObj.TotalClassHours = item.TotalClassHours;
}
if (item.CoursewareFee) {
dataObj.CoursewareFee = item.CoursewareFee;
}
if (item.TextbookFee) {
dataObj.TextbookFee = item.TextbookFee;
}
if (item.SourceId) {
dataObj.SourceId = item.SourceId;
}
if (item.CourseId) {
dataObj.CourseId = item.CourseId;
} else {
dataObj.CourseId = "";
}
if (item.B2CRatio) {
dataObj.B2CRatio = item.B2CRatio;
}
if (item.B2CReNewRatio) {
dataObj.B2CReNewRatio = item.B2CReNewRatio;
}
if (this.stuData.RenewNum > 0) {
dataObj.SaleRemark = `首次报名优惠比例${item.B2CRatio ??
0}%;续费优惠比例${item.B2CReNewRatio ?? 0}%`;
} else {
dataObj.SaleRemark = `首次报名优惠比例${item.B2CRatio ??
0}%`;
}
this.courseInformationList.push(dataObj)
});
this.totalCourseFee(1)
}
},
//获取协助人员
getAssistList() {
const ids = this.stuData.StuList.map(e => e.StuId).toString();
GetStudentAssistList({ StuId: ids }).then(res => {
if (res.Code == 1) {
res.Data.map(e => {
if (e.AssistType == 4) {
if(this.stuData.StuList[0].IsRenewGuest==1){
this.OrderMsg.HelpEnterId = e.AssistId;
this.AssistName = e.AssistName
}
this.HelpEnterDisable = true;
}
if (e.AssistType == 2) {
this.OrderMsg.CourseConsultantId = e.AssistId;
this.CourseConsultantDisable = true;
if(this.selectedCourseList.length>1){
this.courseInformationList.forEach(item=>{
return item.CourseConsultantId = e.AssistId
})
methods: {
//单个课程计算
oneTotalCourseFee(type) {
if (this.OrderMsg.Unit_PriceType == 2) {
if (type == 1) {
this.OrderMsg.TextbookFee = Number((this.OrderMsg.TotalClassHours * this.OrderMsg.Unit_Price * this.OrderMsg
.GuestNum) * (20 / 100)).toFixed(2);
}
this.OrderMsg.PreferPrice = this.OrderMsg.GuestNum * this.OrderMsg.Unit_Price * this.OrderMsg
.TotalClassHours + Number(this.OrderMsg.TextbookFee) + Number(this.OrderMsg.CoursewareFee)
}
},
// 多个课程计算
totalCourseFee(type) {
this.courseInformationList.forEach((item) => {
if (this.stuData.StuList[0].IsRenewGuest == 1) {
item.DiscountMoney = this.accAdd(
item.DiscountMoney,
this.accMul(
item.Class_Price,
item.B2CReNewRatio / 100
)
);
if (item.Unit_PriceType == 1) {
item.PreferPrice = item.GuestNum * item.Unit_Price
} else if (item.Unit_PriceType == 2) {
if (type == 1) {
item.TextbookFee = Number((item.TotalClassHours * item.Unit_Price * item.GuestNum) * (20 / 100))
.toFixed(2);
}
item.PreferPrice = (item.GuestNum * item.Unit_Price * item.TotalClassHours) + Number(item
.TextbookFee) + Number(item.CoursewareFee)
}
});
}
});
},
//获取班级课程信息
initConfig() {
var qMsg = {
ClassId: 0
};
if (this.saveObj.ClassId) {
qMsg.ClassId = this.saveObj.ClassId;
}
queryChaClassInfo(qMsg).then(res => {
if (res.Code == 1) {
this.CourseList = res.Data.otherCourse;
if (this.saveObj && this.saveObj.OrderId > 0) {
} else {
this.OrderMsg.StartClassHours = res.Data.finishHours;
}
if (this.OrderMsg && this.OrderMsg.CourseId) {
this.courseObj = this.CourseList.find(
x => x.CourseId == this.OrderMsg.CourseId
item.DiscountMoney = this.accAdd(
item.DiscountMoney,
this.accMul(item.Class_Price, item.B2CRatio / 100)
);
if (item.Unit_PriceType == 1) {
item.PreferPrice = item.GuestNum * item.Unit_Price
} else if (item.Unit_PriceType == 2) {
item.TextbookFee = Number((item.TotalClassHours * item.Unit_Price * item.GuestNum) * (20 / 100))
.toFixed(2);
item.PreferPrice = item.GuestNum * item.Unit_Price * item.TotalClassHours + Number(item.TextbookFee) +
Number(item.CoursewareFee)
}
//item.PreferPrice = item.GuestNum*item.Unit_Price
}
this.calcPrice();
})
},
//获取协助人员
getAssistList() {
const ids = this.stuData.StuList.map(e => e.StuId).toString();
GetStudentAssistList({
StuId: ids
}).then(res => {
if (res.Code == 1) {
res.Data.map(e => {
if (e.AssistType == 4) {
if (this.stuData.StuList[0].IsRenewGuest == 1) {
this.OrderMsg.HelpEnterId = e.AssistId;
this.AssistName = e.AssistName
}
this.HelpEnterDisable = true;
}
if (e.AssistType == 2) {
this.OrderMsg.CourseConsultantId = e.AssistId;
this.CourseConsultantDisable = true;
if (this.selectedCourseList.length > 1) {
this.courseInformationList.forEach(item => {
return item.CourseConsultantId = e.AssistId
})
}
}
});
}
});
},
//获取班级课程信息
initConfig() {
var qMsg = {
ClassId: 0
};
if (this.saveObj.ClassId) {
qMsg.ClassId = this.saveObj.ClassId;
}
});
},
//计算课程单价和应收金额
calcPrice() {
var guestNum = 0;
queryChaClassInfo(qMsg).then(res => {
if (res.Code == 1) {
this.CourseList = res.Data.otherCourse;
if (this.saveObj && this.saveObj.OrderId > 0) {} else {
this.OrderMsg.StartClassHours = res.Data.finishHours;
}
if (this.OrderMsg && this.OrderMsg.CourseId) {
this.courseObj = this.CourseList.find(
x => x.CourseId == this.OrderMsg.CourseId
);
}
this.calcPrice();
}
});
},
//计算课程单价和应收金额
calcPrice() {
var guestNum = 0;
if (this.OrderMsg.GuestNum && this.OrderMsg.GuestNum > 0) {
guestNum = Number(this.OrderMsg.GuestNum);
}
if(this.saveObj.SellPriceType==2){
this.OrderMsg.TextbookFee=((Number(this.OrderMsg.TotalClassHours) * Number(this.OrderMsg.Unit_Price) * Number(this.OrderMsg.GuestNum)) * (20/100)).toFixed(2);
if (this.OrderMsg.GuestNum && this.OrderMsg.GuestNum > 0) {
guestNum = Number(this.OrderMsg.GuestNum);
}
if (this.saveObj.SellPriceType == 2) {
this.OrderMsg.TextbookFee = ((Number(this.OrderMsg.TotalClassHours) * Number(this.OrderMsg.Unit_Price) *
Number(this.OrderMsg.GuestNum)) * (20 / 100)).toFixed(2);
}
let temp = this.CourseList.find(
x => x.CourseId == this.OrderMsg.CourseId
);
if (temp) {
this.courseObj = temp;
var tempDiscountMoney = 0; //优惠金额
// var tempSaleRemark = `直客首次报名优惠比例${temp.B2CRatio ?? 0}%`; //备注
//插班课时单价
var classHourPrice = temp.SellPrice / this.courseObj.ClassHours;
var chaBanPrice = Number(
classHourPrice *
let temp = this.CourseList.find(
x => x.CourseId == this.OrderMsg.CourseId
);
if (temp) {
this.courseObj = temp;
var tempDiscountMoney = 0; //优惠金额
// var tempSaleRemark = `直客首次报名优惠比例${temp.B2CRatio ?? 0}%`; //备注
//插班课时单价
var classHourPrice = temp.SellPrice / this.courseObj.ClassHours;
var chaBanPrice = Number(
classHourPrice *
(this.courseObj.ClassHours - this.OrderMsg.StartClassHours)
).toFixed(2);
if (guestNum == 1) {
if (temp.CoursePriceList && temp.CoursePriceList.length > 0) {
if (temp.CoursePriceList[0].PriceType == 0) {
if (this.OrderMsg.IsChaBan == 1) {
tempDiscountMoney =
(chaBanPrice * temp.CoursePriceList[0].PriceMoney) / 100;
).toFixed(2);
if (guestNum == 1) {
if (temp.CoursePriceList && temp.CoursePriceList.length > 0) {
if (temp.CoursePriceList[0].PriceType == 0) {
if (this.OrderMsg.IsChaBan == 1) {
tempDiscountMoney =
(chaBanPrice * temp.CoursePriceList[0].PriceMoney) / 100;
} else {
tempDiscountMoney =
(temp.SellPrice * temp.CoursePriceList[0].PriceMoney) / 100;
}
// tempSaleRemark = "单人报名优惠" + temp.CoursePriceList[0].PriceMoney + "%";
} else {
tempDiscountMoney =
(temp.SellPrice * temp.CoursePriceList[0].PriceMoney) / 100;
tempDiscountMoney = item.CoursePriceList[0].PriceMoney;
// tempSaleRemark = "单人报名优惠" + temp.CoursePriceList[0].PriceMoney;
}
// tempSaleRemark = "单人报名优惠" + temp.CoursePriceList[0].PriceMoney + "%";
} else {
tempDiscountMoney = item.CoursePriceList[0].PriceMoney;
// tempSaleRemark = "单人报名优惠" + temp.CoursePriceList[0].PriceMoney;
}
}
}
if (guestNum > 1) {
if (temp.CoursePriceList && temp.CoursePriceList.length > 0) {
if (temp.CoursePriceList[1].PriceType == 0) {
// tempSaleRemark = "双人报名优惠" + temp.CoursePriceList[1].PriceMoney + "%";
if (this.OrderMsg.IsChaBan == 1) {
tempDiscountMoney =
(chaBanPrice * temp.CoursePriceList[1].PriceMoney) / 100;
if (guestNum > 1) {
if (temp.CoursePriceList && temp.CoursePriceList.length > 0) {
if (temp.CoursePriceList[1].PriceType == 0) {
// tempSaleRemark = "双人报名优惠" + temp.CoursePriceList[1].PriceMoney + "%";
if (this.OrderMsg.IsChaBan == 1) {
tempDiscountMoney =
(chaBanPrice * temp.CoursePriceList[1].PriceMoney) / 100;
} else {
tempDiscountMoney =
(temp.SellPrice * temp.CoursePriceList[1].PriceMoney) / 100;
}
} else {
tempDiscountMoney =
(temp.SellPrice * temp.CoursePriceList[1].PriceMoney) / 100;
tempDiscountMoney = item.CoursePriceList[1].PriceMoney;
// tempSaleRemark = "双人报名优惠" + temp.CoursePriceList[1].PriceMoney;
}
} else {
tempDiscountMoney = item.CoursePriceList[1].PriceMoney;
// tempSaleRemark = "双人报名优惠" + temp.CoursePriceList[1].PriceMoney;
}
}
var perDiscountMoney = Number(tempDiscountMoney).toFixed(2);
this.OrderMsg.PerDiscountMoney = perDiscountMoney;
//计算每人优惠和总优惠
// if (this.OrderMsg.IsChaBan == 1) {
// this.OrderMsg.Unit_Price = chaBanPrice;
// this.UnitPrice = chaBanPrice;
// } else {
// this.OrderMsg.Unit_Price = temp.SellPrice;
// this.UnitPrice = temp.SellPrice;
// }
// this.OrderMsg.SaleRemark = tempSaleRemark;
} else {
if (this.saveObj.ClassId) {
this.OrderMsg.ClassId = this.saveObj.ClassId;
}
if (this.saveObj.Unit_Price) {
this.OrderMsg.Unit_Price = this.saveObj.Unit_Price;
this.UnitPrice = this.saveObj.Unit_Price;
}
if (this.saveObj.SourceId) {
this.OrderMsg.SourceId = this.saveObj.SourceId;
}
this.courseObj = {};
}
var perDiscountMoney = Number(tempDiscountMoney).toFixed(2);
this.OrderMsg.PerDiscountMoney = perDiscountMoney;
//计算每人优惠和总优惠
// if (this.OrderMsg.IsChaBan == 1) {
// this.OrderMsg.Unit_Price = chaBanPrice;
// this.UnitPrice = chaBanPrice;
// } else {
// this.OrderMsg.Unit_Price = temp.SellPrice;
// this.UnitPrice = temp.SellPrice;
// }
// this.OrderMsg.SaleRemark = tempSaleRemark;
} else {
if (this.saveObj.ClassId) {
this.OrderMsg.ClassId = this.saveObj.ClassId;
}
if (this.saveObj.Unit_Price) {
this.OrderMsg.Unit_Price = this.saveObj.Unit_Price;
this.UnitPrice = this.saveObj.Unit_Price;
/**计算少价---开始*/
var tempPerLessMoney = 0;
if (this.OrderMsg.PerLessMoney && this.OrderMsg.PerLessMoney > 0) {
tempPerLessMoney = this.OrderMsg.PerLessMoney;
}
if (this.saveObj.SourceId) {
this.OrderMsg.SourceId = this.saveObj.SourceId;
this.OrderMsg.LessPrice = tempPerLessMoney * guestNum;
/**计算少价----结束*/
var unit_price = 0;
if (this.OrderMsg.Unit_Price && this.OrderMsg.Unit_Price > 0) {
unit_price = Number(this.OrderMsg.Unit_Price);
}
this.courseObj = {};
}
/**计算少价---开始*/
var tempPerLessMoney = 0;
if (this.OrderMsg.PerLessMoney && this.OrderMsg.PerLessMoney > 0) {
tempPerLessMoney = this.OrderMsg.PerLessMoney;
}
this.OrderMsg.LessPrice = tempPerLessMoney * guestNum;
/**计算少价----结束*/
var unit_price = 0;
if (this.OrderMsg.Unit_Price && this.OrderMsg.Unit_Price > 0) {
unit_price = Number(this.OrderMsg.Unit_Price);
}
var str = "";
//计算应收价格
if (this.OrderMsg.IsChaBan == 1) {
var newPreferPrice = 0;
if (
this.courseObj &&
this.courseObj.CourseId &&
this.courseObj.CourseId > 0
) {
if(this.OrderMsg.Unit_PriceType==1){
newPreferPrice= chaBanPrice * guestNum
var str = "";
//计算应收价格
if (this.OrderMsg.IsChaBan == 1) {
var newPreferPrice = 0;
if (
this.courseObj &&
this.courseObj.CourseId &&
this.courseObj.CourseId > 0
) {
if (this.OrderMsg.Unit_PriceType == 1) {
newPreferPrice = chaBanPrice * guestNum
} else if (this.OrderMsg.Unit_PriceType == 2) {
newPreferPrice = chaBanPrice * guestNum * this.OrderMsg.TotalClassHours
}
}
else if(this.OrderMsg.Unit_PriceType==2){
newPreferPrice = chaBanPrice * guestNum*this.OrderMsg.TotalClassHours
this.OrderMsg.PreferPrice =
Number(newPreferPrice).toFixed(2) - this.OrderMsg.LessPrice;
} else {
if (this.OrderMsg.Unit_PriceType == 1) {
this.OrderMsg.PreferPrice =
Number(guestNum * unit_price).toFixed(2) - this.OrderMsg.LessPrice;
} else if (this.OrderMsg.Unit_PriceType == 2) {
this.OrderMsg.PreferPrice =
Number((guestNum * unit_price * this.OrderMsg.TotalClassHours) + Number(this.OrderMsg.TextbookFee) +
Number(this.OrderMsg.CoursewareFee)).toFixed(2) - this.OrderMsg.LessPrice;
}
}
this.OrderMsg.PreferPrice =
Number(newPreferPrice).toFixed(2) - this.OrderMsg.LessPrice;
} else {
//留学就业订单
if (this.OrderMsg.OrderType == 2) {
this.OrderMsg.OldPreferPrice = Number(guestNum * unit_price).toFixed(2);
}
if(this.OrderMsg.Unit_PriceType==1){
this.OrderMsg.PreferPrice =
Number(guestNum * unit_price).toFixed(2) - this.OrderMsg.LessPrice ;
this.OrderMsg.GuestNum = this.stuData.StuList.length;
this.OrderMsg.DiscountMoney = 0;
this.stuData.StuList.map(e => {
if (e.IsRenewGuest == 0) {
this.OrderMsg.DiscountMoney = this.accAdd(
this.OrderMsg.DiscountMoney,
this.accMul(this.OrderMsg.Class_Price, this.OrderMsg.B2CRatio / 100)
);
} else {
this.OrderMsg.DiscountMoney = this.accAdd(
this.OrderMsg.DiscountMoney,
this.accMul(
this.OrderMsg.Class_Price,
this.OrderMsg.B2CReNewRatio / 100
)
);
}
else if(this.OrderMsg.Unit_PriceType==2){
this.OrderMsg.PreferPrice =
Number((guestNum * unit_price*this.OrderMsg.TotalClassHours)+Number(this.OrderMsg.TextbookFee)+Number(this.OrderMsg.CoursewareFee)).toFixed(2) - this.OrderMsg.LessPrice;
});
},
// 初始化
initData() {
this.OrderMsg.HelpEnterId = 0;
this.OrderMsg.GeneralOccupation = "";
this.OrderMsg.EduOccupation = "";
this.OrderMsg.IsLessPrice = 0;
this.OrderMsg.LessPrice = 0;
this.OrderMsg.PerLessMoney = 0;
this.OrderMsg.OrderNature = 0;
this.OrderMsg.OldPreferPrice = 0;
this.OrderMsg.StartClassHours = 0;
this.OrderMsg.IsChaBan = 0;
this.OrderMsg.EffectTime = "";
this.OrderMsg.UpOrderId = 0;
this.OrderMsg.JoinType = 1;
this.OrderMsg.DiscountMoney = 0;
this.OrderMsg.PerDiscountMoney = 0;
this.OrderMsg.OrderType = this.orderType;
this.OrderMsg.B2CRatio = 0;
this.OrderMsg.B2CReNewRatio = 0;
this.OrderMsg.CustomerId = 0;
this.OrderMsg.CourseConsultantId = 0;
this.OrderMsg.TotalClassHours = 0;
this.OrderMsg.Unit_PriceType = 1;
if (this.OrderMsg.OrderType == 2) {
this.OrderMsg.OrderNature = 1;
}
if (this.saveObj) {
if (this.saveObj.ClassId) {
this.OrderMsg.ClassId = this.saveObj.ClassId;
}
if (this.saveObj.Unit_Price) {
this.OrderMsg.Unit_Price = this.saveObj.Unit_Price;
this.OrderMsg.Class_Price = this.saveObj.Unit_Price;
this.UnitPrice = this.saveObj.Unit_Price;
}
if (this.saveObj.SourceId) {
this.OrderMsg.SourceId = this.saveObj.SourceId;
}
if (this.saveObj.SellPriceType) {
this.OrderMsg.Unit_PriceType = this.saveObj.SellPriceType;
}
if (this.saveObj.TotalClassHours) {
this.OrderMsg.TotalClassHours = this.saveObj.TotalClassHours;
}
}
//留学就业订单
if (this.OrderMsg.OrderType == 2) {
this.OrderMsg.OldPreferPrice = Number(guestNum * unit_price).toFixed(2);
}
this.OrderMsg.GuestNum = this.stuData.StuList.length;
this.OrderMsg.DiscountMoney = 0;
if (this.saveObj.TextbookFee) {
this.OrderMsg.TextbookFee = this.saveObj.TextbookFee;
}
if (this.saveObj.CoursewareFee) {
this.OrderMsg.CoursewareFee = this.saveObj.CoursewareFee;
}
if (this.saveObj.CourseId) {
this.OrderMsg.CourseId = this.saveObj.CourseId;
} else {
this.OrderMsg.CourseId = "";
}
if (this.saveObj.B2CRatio) {
this.OrderMsg.B2CRatio = this.saveObj.B2CRatio;
}
if (this.saveObj.B2CReNewRatio) {
this.OrderMsg.B2CReNewRatio = this.saveObj.B2CReNewRatio;
}
if (this.selectedCourseList.length > 1) {
return
this.stuData.StuList.map(e => {
if (e.IsRenewGuest == 0) {
this.OrderMsg.DiscountMoney = this.accAdd(
this.OrderMsg.DiscountMoney,
this.accMul(this.OrderMsg.Class_Price, this.OrderMsg.B2CRatio / 100)
);
} else {
this.OrderMsg.DiscountMoney = this.accAdd(
this.OrderMsg.DiscountMoney,
this.accMul(
this.OrderMsg.Class_Price,
this.OrderMsg.B2CReNewRatio / 100
)
);
}
});
},
// 初始化
initData() {
this.OrderMsg.HelpEnterId = 0;
this.OrderMsg.GeneralOccupation = "";
this.OrderMsg.EduOccupation = "";
this.OrderMsg.IsLessPrice = 0;
this.OrderMsg.LessPrice = 0;
this.OrderMsg.PerLessMoney = 0;
this.OrderMsg.OrderNature = 0;
this.OrderMsg.OldPreferPrice = 0;
this.OrderMsg.StartClassHours = 0;
this.OrderMsg.IsChaBan = 0;
this.OrderMsg.EffectTime = "";
this.OrderMsg.UpOrderId = 0;
this.OrderMsg.JoinType = 1;
this.OrderMsg.DiscountMoney = 0;
this.OrderMsg.PerDiscountMoney = 0;
this.OrderMsg.OrderType = this.orderType;
this.OrderMsg.B2CRatio = 0;
this.OrderMsg.B2CReNewRatio = 0;
this.OrderMsg.CustomerId = 0;
this.OrderMsg.CourseConsultantId = 0;
this.OrderMsg.TotalClassHours = 0;
this.OrderMsg.Unit_PriceType = 1;
if (this.OrderMsg.OrderType == 2) {
this.OrderMsg.OrderNature = 1;
}
console.log("saveObj",this.saveObj);
if (this.saveObj) {
if (this.saveObj.ClassId) {
this.OrderMsg.ClassId = this.saveObj.ClassId;
}
if (this.saveObj.Unit_Price) {
this.OrderMsg.Unit_Price = this.saveObj.Unit_Price;
this.OrderMsg.Class_Price = this.saveObj.Unit_Price;
this.UnitPrice = this.saveObj.Unit_Price;
}
if (this.saveObj.SourceId) {
this.OrderMsg.SourceId = this.saveObj.SourceId;
}
if (this.saveObj.SellPriceType) {
this.OrderMsg.Unit_PriceType = this.saveObj.SellPriceType;
}
if (this.saveObj.TotalClassHours) {
this.OrderMsg.TotalClassHours = this.saveObj.TotalClassHours;
}
if (this.saveObj.TextbookFee) {
this.OrderMsg.TextbookFee = this.saveObj.TextbookFee;
}
if (this.saveObj.CoursewareFee) {
this.OrderMsg.CoursewareFee = this.saveObj.CoursewareFee;
}
if (this.saveObj.CourseId) {
this.OrderMsg.CourseId = this.saveObj.CourseId;
} else {
this.OrderMsg.CourseId = "";
}
if (this.saveObj.B2CRatio) {
this.OrderMsg.B2CRatio = this.saveObj.B2CRatio;
}
if (this.saveObj.B2CReNewRatio) {
this.OrderMsg.B2CReNewRatio = this.saveObj.B2CReNewRatio;
}
if(this.selectedCourseList.length>1){
return
}
}
}
this.IsShowEditOrder = true;
this.IsShowEditOrder = true;
this.calcPrice();
if (this.stuData.RenewNum > 0) {
this.OrderMsg.SaleRemark = `首次报名优惠比例${this.saveObj.B2CRatio ??
this.calcPrice();
if (this.stuData.RenewNum > 0) {
this.OrderMsg.SaleRemark = `首次报名优惠比例${this.saveObj.B2CRatio ??
0}%;续费优惠比例${this.saveObj.B2CReNewRatio ?? 0}%`; //备注
} else {
this.OrderMsg.SaleRemark = `首次报名优惠比例${this.saveObj.B2CRatio ??
0}%`; //备注})
}
},
//筛选员工
filterFn(val, update) {
update(() => {
if (val === "") {
this.EmployeeList = JSON.parse(JSON.stringify(this.AllemployeeList));
} else {
const needle = val.toLowerCase();
this.EmployeeList = this.AllemployeeList.filter(
v => v.EmployeeName.toLowerCase().indexOf(needle) > -1
);
}
});
},
//筛选课程顾问
filterFn2(val, update) {
update(() => {
if (val === "") {
this.EmployeeList2 = JSON.parse(
JSON.stringify(this.AllemployeeList2)
);
} else {
const needle = val.toLowerCase();
this.EmployeeList2 = this.AllemployeeList2.filter(
v => v.EmployeeName.toLowerCase().indexOf(needle) > -1
);
this.OrderMsg.SaleRemark = `首次报名优惠比例${this.saveObj.B2CRatio ??
0}%`; //备注})
}
});
},
//获取业务员
getEmployee(n) {
var qMsg = {
IsLeave: 1,
UserRole: n
};
queryEmployee(qMsg).then(res => {
if (res.Code == 1) {
if (n == 0) {
//教师
this.EmployeeList = res.Data;
this.AllemployeeList = res.Data;
let obj = {
Id: 0,
EmployeeName: "不限"
};
this.EmployeeList.unshift(obj);
}
if (n == 2) {
//课程顾问
this.EmployeeList2 = res.Data;
this.AllemployeeList2 = res.Data;
let obj = {
Id: 0,
EmployeeName: "不限"
};
this.EmployeeList2.unshift(obj);
},
//筛选员工
filterFn(val, update) {
update(() => {
if (val === "") {
this.EmployeeList = JSON.parse(JSON.stringify(this.AllemployeeList));
} else {
const needle = val.toLowerCase();
this.EmployeeList = this.AllemployeeList.filter(
v => v.EmployeeName.toLowerCase().indexOf(needle) > -1
);
}
}
});
},
//关闭弹窗
closeEditOrder() {
this.IsShowEditOrder = false;
this.$emit("close");
},
//获取订单来源
getOrderSEList() {
getOrderSourceEnumList({}).then(res => {
if (res.Code == 1) {
var tempArray = res.Data;
this.SourceEnumList = tempArray;
this.OrderMsg.OrderSource = tempArray[0].Id;
if(this.selectedCourseList.length>0){
this.courseInformationList.forEach(item=>{
return item.OrderSource = this.OrderMsg.OrderSource
})
});
},
//筛选课程顾问
filterFn2(val, update) {
update(() => {
if (val === "") {
this.EmployeeList2 = JSON.parse(
JSON.stringify(this.AllemployeeList2)
);
} else {
const needle = val.toLowerCase();
this.EmployeeList2 = this.AllemployeeList2.filter(
v => v.EmployeeName.toLowerCase().indexOf(needle) > -1
);
}
}
});
},
//修改订单
saveOrderInfo() {
if(this.selectedCourseList.length>1){
this.multipleAppointmentsFun()
}else{
this.singleAppointmentsFun()
}
},
// 多个约课
multipleAppointmentsFun(){
//插班验证课程和生效时间
this.courseInformationList.forEach(item=>{
item.StuIds = this.stuData.StuList.map(e => e.StuId).toString();
item.HelpEnterId = this.OrderMsg.HelpEnterId
item.CustomerId = this.stuData.CustomerId;
})
let Msg = {
OrderList: this.courseInformationList
}
SetClassOrderBatch(Msg)
.then(res => {
this.$emit("cancelloading"); //取消按钮的加载
});
},
//获取业务员
getEmployee(n) {
var qMsg = {
IsLeave: 1,
UserRole: n
};
queryEmployee(qMsg).then(res => {
if (res.Code == 1) {
this.$q.notify({
icon: "iconfont icon-chenggong",
color: "accent",
timeout: 2000,
message: "操作成功!",
position: "top"
});
//调用父页面成功方法
this.$emit("success");
this.IsShowEditOrder = false;
} else {
this.$q.notify({
type: "negative",
position: "top",
message: res.Message
});
if (n == 0) {
//教师
this.EmployeeList = res.Data;
this.AllemployeeList = res.Data;
let obj = {
Id: 0,
EmployeeName: "不限"
};
this.EmployeeList.unshift(obj);
}
if (n == 2) {
//课程顾问
this.EmployeeList2 = res.Data;
this.AllemployeeList2 = res.Data;
let obj = {
Id: 0,
EmployeeName: "不限"
};
this.EmployeeList2.unshift(obj);
}
}
})
.catch(err => {
this.$emit("cancelloading"); //取消按钮的加载
if (err.Code == 2) {
this.inceptionData = err;
this.inception = true;
});
},
//关闭弹窗
closeEditOrder() {
this.IsShowEditOrder = false;
this.$emit("close");
},
//获取订单来源
getOrderSEList() {
getOrderSourceEnumList({}).then(res => {
if (res.Code == 1) {
var tempArray = res.Data;
this.SourceEnumList = tempArray;
this.OrderMsg.OrderSource = tempArray[0].Id;
if (this.selectedCourseList.length > 0) {
this.courseInformationList.forEach(item => {
return item.OrderSource = this.OrderMsg.OrderSource
})
}
}
});
},
// 单个班课、约课
singleAppointmentsFun(){
//插班验证课程和生效时间
if (this.OrderMsg.IsChaBan == 1) {
this.$refs.CourseId.validate();
this.$refs.EffectTime.validate();
if (this.$refs.CourseId.hasError) {
this.$q.notify({
type: "negative",
position: "top",
message: `请选择课程!`
});
return;
},
//修改订单
saveOrderInfo() {
if (this.selectedCourseList.length > 1) {
this.multipleAppointmentsFun()
} else {
this.singleAppointmentsFun()
}
if (this.$refs.EffectTime.hasError) {
this.$q.notify({
type: "negative",
position: "top",
message: `请选择生效时间!`
});
return;
},
// 多个约课
multipleAppointmentsFun() {
//插班验证课程和生效时间
this.courseInformationList.forEach(item => {
item.StuIds = this.stuData.StuList.map(e => e.StuId).toString();
item.HelpEnterId = this.OrderMsg.HelpEnterId
item.CustomerId = this.stuData.CustomerId;
})
let Msg = {
OrderList: this.courseInformationList
}
}
this.OrderMsg.StuIds = this.stuData.StuList.map(e => e.StuId).toString();
this.OrderMsg.CustomerId = this.stuData.CustomerId;
setClassOrder(this.OrderMsg)
.then(res => {
this.$emit("cancelloading"); //取消按钮的加载
if (res.Code == 1) {
SetClassOrderBatch(Msg)
.then(res => {
this.$emit("cancelloading"); //取消按钮的加载
if (res.Code == 1) {
this.$q.notify({
icon: "iconfont icon-chenggong",
color: "accent",
timeout: 2000,
message: "操作成功!",
position: "top"
});
//调用父页面成功方法
this.$emit("success");
this.IsShowEditOrder = false;
} else {
this.$q.notify({
type: "negative",
position: "top",
message: res.Message
});
}
})
.catch(err => {
this.$emit("cancelloading"); //取消按钮的加载
if (err.Code == 2) {
this.inceptionData = err;
this.inception = true;
}
});
},
// 单个班课、约课
singleAppointmentsFun() {
//插班验证课程和生效时间
if (this.OrderMsg.IsChaBan == 1) {
this.$refs.CourseId.validate();
this.$refs.EffectTime.validate();
if (this.$refs.CourseId.hasError) {
this.$q.notify({
icon: "iconfont icon-chenggong",
color: "accent",
timeout: 2000,
message: "操作成功!",
position: "top"
type: "negative",
position: "top",
message: `请选择课程!`
});
//调用父页面成功方法
this.$emit("success");
this.IsShowEditOrder = false;
} else {
return;
}
if (this.$refs.EffectTime.hasError) {
this.$q.notify({
type: "negative",
position: "top",
message: res.Message
message: `请选择生效时间!`
});
return;
}
})
.catch(err => {
this.$emit("cancelloading"); //取消按钮的加载
if (err.Code == 2) {
this.inceptionData = err;
this.inception = true;
}
this.OrderMsg.StuIds = this.stuData.StuList.map(e => e.StuId).toString();
this.OrderMsg.CustomerId = this.stuData.CustomerId;
setClassOrder(this.OrderMsg)
.then(res => {
this.$emit("cancelloading"); //取消按钮的加载
if (res.Code == 1) {
this.$q.notify({
icon: "iconfont icon-chenggong",
color: "accent",
timeout: 2000,
message: "操作成功!",
position: "top"
});
//调用父页面成功方法
this.$emit("success");
this.IsShowEditOrder = false;
} else {
this.$q.notify({
type: "negative",
position: "top",
message: res.Message
});
}
})
.catch(err => {
this.$emit("cancelloading"); //取消按钮的加载
if (err.Code == 2) {
this.inceptionData = err;
this.inception = true;
}
});
},
goorder() {
this.OpenNewUrl("/sale/myOrder", {
OrderId: this.inceptionData.Data
});
this.inception = false;
},
//获取前置下拉数据
getSelectClass() {
var qMsg = {
ClassId: 0
};
if (this.saveObj.ClassId) {
qMsg.ClassId = this.saveObj.ClassId;
}
GetSelectClassOrderList(qMsg).then(res => {
if (res.Code == 1) {
this.beforeOrderList = res.Data;
}
});
},
goorder() {
this.OpenNewUrl("/sale/myOrder", {
OrderId: this.inceptionData.Data
});
this.inception = false;
},
//获取前置下拉数据
getSelectClass() {
var qMsg = {
ClassId: 0
};
if (this.saveObj.ClassId) {
qMsg.ClassId = this.saveObj.ClassId;
}
GetSelectClassOrderList(qMsg).then(res => {
if (res.Code == 1) {
this.beforeOrderList = res.Data;
},
getStudent(item) {
let str = "";
if (item && item.length > 1) {
str = item[0].GuestName + "等" + item.length + "人";
}
});
},
getStudent(item) {
let str = "";
if (item && item.length > 1) {
str = item[0].GuestName + "等" + item.length + "人";
}
if (item.length == 1) {
str = item[0].GuestName;
if (item.length == 1) {
str = item[0].GuestName;
}
return str;
}
return str;
}
}
};
};
</script>
......@@ -744,34 +744,24 @@
newPreferPrice = chaBanPrice * guestNum * this.OrderMsg.TotalClassHours
}
}
console.log("我进来了1");
this.OrderMsg.PreferPrice =
Number(newPreferPrice).toFixed(2) - this.OrderMsg.LessPrice;
} else {
if (this.OrderMsg.Unit_PriceType == 1) {
console.log("guestNum", guestNum);
console.log("unit_price", unit_price);
console.log("this.OrderMsg.LessPrice", this.OrderMsg.LessPrice);
this.OrderMsg.PreferPrice =
Number(guestNum * unit_price).toFixed(2) - this.OrderMsg.LessPrice;
console.log("我进来了2");
} else if (this.OrderMsg.Unit_PriceType == 2) {
this.OrderMsg.PreferPrice =
Number((guestNum * unit_price * this.OrderMsg.TotalClassHours) + Number(this.OrderMsg.TextbookFee) +
Number(this.OrderMsg.CoursewareFee)).toFixed(2) - this.OrderMsg.LessPrice;
console.log("我进来了3");
}
}
//留学就业订单
if (this.OrderMsg.OrderType == 2) {
this.OrderMsg.OldPreferPrice = Number(guestNum * unit_price).toFixed(2);
}
this.OrderMsg.DiscountMoney = 0;
this.stuData.StuList.map(e => {
if (e.IsRenewGuest == 0) {
this.OrderMsg.DiscountMoney = this.accAdd(
......@@ -817,7 +807,6 @@
if (this.OrderMsg.OrderType == 2) {
this.OrderMsg.OrderNature = 1;
}
console.log("saveObj", this.saveObj);
if (this.saveObj) {
if (this.saveObj.ClassId) {
this.OrderMsg.ClassId = this.saveObj.ClassId;
......
......@@ -3,7 +3,7 @@
<q-dialog v-model="show" persistent transition-show="scale" transition-hide="scale" @input="changeDig">
<q-card style="width: 800px;max-width:900px;">
<q-card-section class="row items-center q-pb-none">
<div class="text-h6">{{ editType == 1 ? "新增约课" : "详情" }}</div>
<div class="text-h6">{{ editType == 1 ? "新增约课" : "详情" }} editType:{{editType}}</div>
<q-space />
<q-btn icon="close" flat round dense @click="changeDig(false)" />
</q-card-section>
......@@ -19,12 +19,35 @@
<Detail :dateObj="dateObj" :saveObj="saveObj" :auth="auth" :CourseChapterName="CourseChapterName"
@success="detailSuccessHandle" @close="detailCloseHandle" />
</div>
<div class="row col-12 q-col-gutter-md">
<q-select v-show="editType == 1" filled v-model="saveMsg.TeacherId" option-value="TId"
option-label="TeacherName" :options="teacherList" emit-value map-options label="老师" class="col-6" />
<q-select v-show="editType == 1" filled v-model="saveMsg.RoomId" option-value="RoomId"
option-label="RoomName" :options="ClassRoomList" emit-value map-options label="教室"
:disable="addStuList.length > 0" class="col-6">
<template v-slot:selected-item="scope">
<div class="row col-12 flex justify-between">
<span>{{scope.opt.RoomName}}</span><span>{{ scope.opt.SchoolName}}</span></div>
</template>
<template v-slot:option="scope">
<q-item v-bind="scope.itemProps" v-on="scope.itemEvents">
<q-item-section>
<q-item-label class="row flex justify-between">
<span>{{scope.opt.RoomName}}</span><span>{{ scope.opt.SchoolName}}</span></q-item-label>
</q-item-section>
</q-item>
</template>
</q-select>
</div>
<template v-if="editType==1">
<q-select filled v-model="saveMsg.ShiftSort" option-value="Id" option-label="Name"
:options="teacherTimeList" emit-value map-options label="上课时段" class="col-12" />
</template>
<!-- 详情显示内容 end -->
<q-select filled stack-label use-input option-value="CourseId" option-label="CourseName"
v-model="saveMsg.CourseId" ref="CourseId" :options="CourseList" label="课程" :dense="false" class="col-12"
emit-value map-options @filter="filterCourse"
@input="changeCourse(),getChapterTree(),getCanTeacherTimeList() " v-if="editType == 1"
:rules="[val => !!val || '请选择课程']">
emit-value map-options @filter="filterCourse" @input="changeCourse(),getChapterTree() "
v-if="editType == 1" :rules="[val => !!val || '请选择课程']">
<template v-slot:no-option>
<q-item>
<q-item-section class="text-grey">
......@@ -46,61 +69,6 @@
:defaultArray="returnString" nodeKey="ChapterId" labelKey="ChapterName" childrenKey="ChildList"
tipText="章节" @getChild="getChapter" class="col-12" ref="selectTree"></select-tree>
<div class="row col-12 q-col-gutter-md">
<q-select v-show="saveMsg.CourseId > 0 && editType == 1" filled v-model="saveMsg.TeacherId"
option-value="TId" option-label="TeacherName" :options="teacherList" emit-value map-options label="老师"
class="col-6" @input="getCanTeacherTimeList" />
<q-select v-show="saveMsg.CourseId > 0 && editType == 1" filled v-model="saveMsg.RoomId"
option-value="RoomId" option-label="RoomName" :options="ClassRoomList" emit-value map-options label="教室"
:disable="addStuList.length > 0" class="col-6">
<template v-slot:selected-item="scope">
<div class="row col-12 flex justify-between">
<span>{{scope.opt.RoomName}}</span><span>{{ scope.opt.SchoolName}}</span></div>
</template>
<template v-slot:option="scope">
<q-item v-bind="scope.itemProps" v-on="scope.itemEvents">
<q-item-section>
<q-item-label class="row flex justify-between">
<span>{{scope.opt.RoomName}}</span><span>{{ scope.opt.SchoolName}}</span></q-item-label>
</q-item-section>
</q-item>
</template>
</q-select>
</div>
<template v-if="editType==1">
<q-field filled label-slot stack-label class="col-12" v-if="editType==1 ">
<template #label>
<div class="row flex">
上课时段
<span style="color:#f5576c;font-size:13px;margin-left:5px;font-weight:500">(按顺序选择)</span>
<div style="color:#333;font-size:13px;margin-left:10px;font-weight:500">
需选课时:{{ checkChapter.StudyMinutes }}分钟
</div>
</div>
</template>
<template v-slot:control>
<div v-if="teacherTimeList.length > 0">
<div v-for="(item, index) in teacherTimeList" :key="index">
<div v-if="
item.CourseTimeList && item.CourseTimeList.length > 0
">
<div v-for="(_item, _index) in item.CourseTimeList" :key="_index" class="timeItem">
<q-checkbox v-model="courseCheckList" :val="_item">
{{ _item.StartTime }}-{{ _item.EndTime }}
</q-checkbox>
</div>
</div>
<div v-else>
暂无可约课程
</div>
</div>
</div>
<div v-else>
暂无可约课程
</div>
</template>
</q-field>
</template>
<div class="row col-12" v-if="(saveObj&& saveObj.ClassType==3)||editType==1">
<div class="row col-12">
<div class="col-9">
......@@ -130,7 +98,6 @@
</q-select>
</div>
<div class="col-3 q-pt-md q-pl-md">
<q-btn v-if="(saveObj.State==1||saveObj.State==2||editType==1)||currentUser.Id==1" size="sm"
color="accent" label="添加" @click="subscribeCourse" />
</div>
......@@ -175,10 +142,9 @@
{{item.CourseChapterNoName}}
</template>
<template v-else>
<!--@change="changeChapter(item)"-->
<q-select filled stack-label use-input option-value="ChapterGradeNo" option-label="ChapterName"
<q-select filled stack-label use-input option-value="ChapterNo" option-label="ChapterName"
v-model="item.CourseGradeNo" ref="ChapterGradeNo" :options="item.CourseChapterList"
label="消课章节" :dense="false" emit-value map-options class="col-4" >
label="消课章节" :dense="false" emit-value map-options class="col-4">
<template v-slot:option="{ itemProps, itemEvents, opt, }">
<q-item v-bind="itemProps" v-on="itemEvents">
<q-item-section>
......@@ -250,6 +216,9 @@
import {
queryClassRoomList
} from "../../../api/school/index";
import {
queryGetTimeList
} from "../../../api/stuMan/index";
import selectTree from "./select-tree";
import Detail from "./detail.vue";
export default {
......@@ -301,7 +270,6 @@
this.saveMsg.CourseId = 0;
this.saveMsg.TeacherId = 0;
this.chapterList = [];
this.teacherTimeList = [];
this.courseCheckList = [];
this.stuList = [];
this.allStuList = [];
......@@ -326,6 +294,7 @@
this.saveMsg.CourseGradeNo = this.saveObj.Ranks;
this.saveMsg.CourseGradeId = this.saveObj.CourseGradeId;
this.saveMsg.ChapterNo = this.saveObj.ChapterNo;
this.saveMsg.ChooseStuList = [];
if (this.saveObj.GuestList && this.saveObj.GuestList.length > 0) {
this.saveObj.GuestList.forEach(gItem => {
......@@ -390,11 +359,29 @@
this.currentUser = this.getLocalStorage();
this.getCourseList();
this.getClassRoomList();
this.getTimeList();
},
mounted() {
},
methods: {
//获取可约时间段
getTimeList() {
this.teacherTimeList = [];
queryGetTimeList({}).then(res => {
if (res.Code == 1) {
var tempData = res.Data;
if (tempData && tempData.length > 0) {
tempData.forEach(item => {
this.teacherTimeList.push({
Id: item.Sort,
Name: item.StartTime + '~' + item.EndTime,
});
})
}
}
})
},
//获取教室下拉
getClassRoomList() {
queryClassRoomList({}).then(res => {
......@@ -430,7 +417,6 @@
});
},
changeCourse() {
this.saveMsg.TeacherId = 0;
this.checkChapter = {};
this.checkStuList = [];
this.stuInfo = "";
......@@ -449,25 +435,7 @@
}
});
},
//获取老师的空闲上课时段
getCanTeacherTimeList() {
this.saveMsg.Date = this.dateObj.date;
this.courseCheckList = [];
this.stuInfo = "";
var qMsg = {
Date: this.saveMsg.Date,
TeacherId: this.saveMsg.TeacherId,
CourseId: this.saveMsg.CourseId
};
GetCanTeacherClassTimeList(qMsg).then(res => {
this.teacherTimeList = res.Data;
if (res.Data.length > 0) {
this.saveMsg.RoomId = res.Data[0].RoomId;
} else {
this.saveMsg.RoomId = 0;
}
});
},
//筛选学生
filterStu(val, update) {
update(() => {
......@@ -539,11 +507,9 @@
this.saveMsg.ChapterNo = this.checkChapter.ChapterNo;
// HK 2024-09-06 注释,可以不选老师,不选老师就默认通班的时间段
// this.saveMsg.TeacherId = 0;
// this.teacherTimeList = [];
//获取学生列表
this.getStu_V2();
},
//添加学员
subscribeCourse() {
if (this.editType == 1) {
......@@ -586,14 +552,7 @@
})
return;
}
if (this.courseCheckList.length === 0) {
this.$q.notify({
message: "请选择上课时段",
position: "top",
type: "negative"
});
return;
}
if (!this.stuInfo) {
this.$q.notify({
message: "请选择学员",
......@@ -602,55 +561,26 @@
});
return;
}
const totalTime = this.courseCheckList.reduce((pre, cur) => {
return (pre += cur.Minutes);
}, 0);
if (this.checkChapter.StudyMinutes !== totalTime) {
this.$q.notify({
message: "课时不匹配,请重新上课时段",
position: "top",
type: "negative"
});
return;
}
let newCourseCheckList = this.courseCheckList.sort((a, b) => {
return a.Sort - b.Sort;
});
for (let i = 0; i < newCourseCheckList.length; i++) {
if (i > 0) {
const cur = newCourseCheckList[i].Sort;
const pre = newCourseCheckList[i - 1].Sort;
if (cur - pre > 1) {
this.$q.notify({
message: "请按顺序选择上课时段",
position: "top",
type: "negative"
});
return;
}
}
}
this.saveMsg.Date = this.dateObj.date;
this.saveMsg.CourseGradeNo = this.checkChapter.ChapterGradeNo;
this.saveMsg.CourseGradeId = this.checkChapter.CourseRate;
this.saveMsg.ShiftSort = newCourseCheckList.map(e => e.Sort).toString();
}
var sObj = {
StuId: this.stuInfo.StuId,
StuName: this.stuInfo.StuName,
GuestId: this.stuInfo.GuestId,
OrderId:this.stuInfo.OrderId,
OrderId: this.stuInfo.OrderId,
LearnCourseId: this.stuInfo.CourseId,
CourseName: this.stuInfo.CourseName,
FinishChapterNoName: this.stuInfo.FinishChapterNoName,
AppointmentId: 0,
//学员消课编号
CourseChapterList: [],
CourseGradeId : this.checkChapter.CourseRate,
CourseGradeNo:""
};
sObj.CourseGradeId = this.stuInfo.CourseRate;
sObj.CourseGradeNo = "";
// 对比是否存在改学员
if (this.saveMsg.ChooseStuList.length > 0) {
let ArrId = this.saveMsg.ChooseStuList.map(item => {
......@@ -671,10 +601,6 @@
this.saveMsg.ChooseStuList.push(sObj);
}
},
// changeChapter(item)
// {
// console.log("changeItem",item);
// },
//保存约课
SaveStuAppointment() {
var tipStr = ""
......@@ -693,7 +619,7 @@
});
return;
}
this.addLoading = true;
setAdminScrollAppointment_V3(this.saveMsg)
.then(res => {
......@@ -703,6 +629,8 @@
message: "操作成功",
position: "top"
});
// this.$emit("success");
this.detailCloseHandle();
}
})
......@@ -714,9 +642,8 @@
getCourseChapterList(item) {
queryChapterList({
CourseId: item.LearnCourseId,
OrderId:item.OrderId,
OrderId: item.OrderId,
IsQRoot: 1,
CourseGradeId:item.CourseGradeId,
}).then(res => {
if (res.Code == 1) {
item.CourseChapterList = res.Data;
......
......@@ -609,7 +609,6 @@
this.currentMaxId = y.nodeId > this.currentMaxId ? y.nodeId : this.currentMaxId
})
let reg = /^http(s)?:\/\/(.*?)\//
console.log("getMyAdDetail",data.pictureUrl);
let getBlob = this.getAnyFileBlob(data.pictureUrl.replace(reg, ''))
let that = this
getBlob.then(blob => {
......
......@@ -359,6 +359,46 @@ var commonUtils = {
//返回年月日
return year + '-' + month + "-" + day;
},
//获取指定日期的上一周,下一周
getWeeks(date, type) {
// 将传入的日期字符串转换为 Date 对象,如果已经是 Date 对象则直接使用
const currentDate = new Date(date instanceof Date ? date : date);
const oneDay = 24 * 60 * 60 * 1000;
var weekStart;
var weekEnd;
//上一周
if (type == 1) {
weekStart = new Date(currentDate.getTime() - 7 * oneDay);
weekEnd = new Date(weekStart.getTime() + 6 * oneDay);
}
//下一周
else if (type == 2) {
weekStart = new Date(currentDate.getTime() + 7 * oneDay);
weekEnd = new Date(weekStart.getTime() + 6 * oneDay);
}//本周
else {
const dayOfWeek = currentDate.getDay();
weekStart = new Date(currentDate);
if (dayOfWeek === 0) {
weekStart.setDate(currentDate.getDate() - 6);
} else {
weekStart.setDate(currentDate.getDate() - (dayOfWeek - 1));
}
// 计算本周结束日期(周日)
weekEnd = new Date(weekStart.getTime() + 6 * oneDay);
}
const formatDate = (d) => {
const year = d.getFullYear();
const month = ('0' + (d.getMonth() + 1)).slice(-2);
const day = ('0' + d.getDate()).slice(-2);
return `${year}-${month}-${day}`;
};
return {
start: formatDate(weekStart),
end: formatDate(weekEnd)
};
},
//格式化日期
getFormatDate(dateStr) {
var myDate = new Date(dateStr);
......
......@@ -615,7 +615,6 @@ export default {
showStuRight(obj) {
if (obj) {
this.$q.loading.show();
console.log(obj.StuId);
getStudentInfo({ StuId: obj.StuId })
.then(r => {
this.stuOption = r.Data;
......
......@@ -497,7 +497,6 @@ export default {
});
},
getPlan(){
console.log(this.planTime)
const p = this.planTime
getStuAppointPlan({AccountId:p.AccountId,Date:p.Date,ShiftSort:p.ShiftSort}).then(r=>{
if(r.Code==1){
......
<template>
<div class="page-body">
<div class="col row wrap q-mr-lg q-col-gutter-md searchBox">
<div class="col-2">
<q-select filled dense v-model="msg.TeacherId" option-value="TId" option-label="TeacherName"
:options="TeacherList2" emit-value map-options label="老师" @input="getData" />
</div>
<div class="col-2">
<q-select filled dense v-model="msg.ClassRoomId" option-value="RoomId" option-label="RoomName"
:options="classroomList" emit-value map-options label="教室" @input="getData" />
</div>
<div class="col-2">
<q-select filled dense v-model="msg.ClassType" option-value="Id" option-label="label" :options="ClassTypeList"
emit-value map-options label="课程类型" @input="getData" />
</div>
<div class="col-2">
<q-select filled dense v-model="msg.AppointState" option-value="Id" option-label="label"
:options="AppointStateList" emit-value map-options label="约课状态" @input="getData" />
</div>
<div class="col-2">
<q-field filled dense label="选择日期" stack-label>
<template v-slot:control>
<el-date-picker v-model="selectedDate" type="date" size="mini" placeholder="开始日期" format="yyyy-MM-dd"
value-format="yyyy-MM-dd" :clearable="false" @change="changeDate">
</el-date-picker>
</template>
</q-field>
</div>
</div>
<div class="row justify-center items-center q-mt-sm">
<font style="color:blue;">{{msg.StartDate}}~{{msg.EndDate}} 排课计划</font>
<q-btn dense text-color="primary" flat unelevated :label="viewType == 'day' ? '上一天' : '上一周'"
@click="calendarPrev" />
<q-separator vertical />
<q-btn dense text-color="primary" flat unelevated :label="viewType == 'day' ? '下一天' : '下一周'"
@click="calendarNext" />
<q-separator vertical />
<div style="margin-left:10px;">
<q-btn dense text-color="primary" flat unelevated class="q-mr-md" size="sm" icon="download" label="老师排课表"
@click="DownLoadStuLearnChapterStatic" />
</div>
<q-separator vertical />
<div style="margin-left:10px;">
<q-btn dense text-color="primary" flat unelevated class="q-mr-md" size="sm" icon="download" label="学生发课表"
@click="DownLoadPlanStudentExcel" />
</div>
</div>
<div class="viewbox">
<table class="appointtable">
<template v-for="(rootItem,rootIndex) in dataList">
<thead :key="`r_th_`+rootIndex">
<tr>
<th style="width:120px;">
{{rootItem.ClassDate}}<br />({{rootItem.WeekStr}})
</th>
<template v-for="(item, index) in rootItem.RList">
<th :key="`r_teacher_`+rootIndex+index" style="width:100px;">
{{item.TeacherName}}
</th>
</template>
</tr>
</thead>
<tbody :key="`r_tb_`+rootIndex">
<template v-for="(timeItem,timeIndex) in TimeList">
<tr :key="`r_time_`+rootIndex+timeIndex">
<td style="width:120px;">
{{timeItem.Name}}({{timeItem.ClassHours}}课时)
<br />
{{timeItem.StartTime}}~{{timeItem.EndTime}}
</td>
<template v-for="(aItem, aIndex) in rootItem.RList">
<td :key="`r_a_`+rootIndex+aIndex" style="width:100px;cursor:pointer;"
@click="showDetail(aItem,rootItem.ClassDate,aItem.TeacherId,timeItem)"
:class="getAppointItemClass(aItem,timeItem)">
<template v-if="getAppointItem(aItem,timeItem)&&getAppointItem(aItem,timeItem).CourseId">
<font style="font-weight:bold;">{{getAppointItem(aItem,timeItem).ChapterName}}</font>
<br />
<div style="display: flex;flex-wrap: wrap;">
<template v-for="(gItem,gIndex) in getAppointItem(aItem,timeItem).GuestList">
<div :key="`r_g_`+rootIndex+timeIndex+aIndex+gIndex"
style="flex-basis:30px;margin:3px; flex-grow: 0;flex-shrink: 0;">
{{gItem.GuestName}}</div>
</template>
</div>
</template>
</td>
</template>
</tr>
</template>
</tbody>
</template>
</table>
</div>
<SubscribeForm v-model="showForm" :editType="editType" :dateObj="dateObj" :saveObj="saveObj" :auth="auth"
:teacherList="TeacherList2" @success="successHandle" />
</div>
</template>
<script>
import {
GetAppointmentPlanStat,
SetSureAppointment,
GetAppointmentConfig
} from "../../api/studyabroad/subscribe.js";
import {
getTeacherDropDownList,
queryClassRoomList
} from "../../api/school/index";
import {
EduDownLoad
} from "../../api/common/common.js";
import {
queryGetTimeList
} from "../../api/stuMan/index";
import SubscribeForm from "../../components/stuMan/subscribe/subscribeForm";
export default {
meta: {
title: "新约课中心",
},
data() {
return {
config: {
AdvanceDay: 0,
AppointDay: 7
},
viewType: "week",
showForm: false,
editType: 1,
selectedDate: "",
msg: {
StartDate: "",
EndDate: "",
TeacherId: 0,
ClassRoomId: 0,
ClassType: 0,
AppointState: 0
},
classroomList: [],
ClassTypeList: [{
label: "全部",
Id: 0
},
{
label: "跟班课",
Id: 1
},
{
label: "试听课",
Id: 2
},
{
label: "预约课",
Id: 3
}
],
AppointStateList: [{
label: "全部",
Id: 0
},
{
label: "待确认",
Id: 1
},
{
label: "已确认",
Id: 2
}
],
TeacherList2: [],
dateObj: {},
saveObj: {},
auth: {
IsEdit: false,
addBefore: false, //新增今天以前的约课
},
saveLoading: false,
dataList: [],
TimeList: [], //时段
};
},
components: {
SubscribeForm
},
created() {
this.getAppointmentConfig();
this.selectedDate = this.$commonUtils.getCurrentDate();
var weekObj = this.$commonUtils.getWeeks(this.selectedDate, 0);
this.getTeacherList();
this.getclassroom();
this.msg.StartDate = weekObj.start;
this.msg.EndDate = weekObj.end;
this.getTimeList();
},
mounted() {
this.getData();
const ActionMenuList = JSON.parse(localStorage.getItem("loginUserInfo"))
.data.ActionMenuList;
const res = ActionMenuList.find(e => {
return e.FunctionCode == "subscribe_edit";
});
if (res) {
this.auth.IsEdit = true;
} else {
this.auth.IsEdit = false;
}
const res2 = ActionMenuList.find(e => {
return e.FunctionCode == "subscribe_addBefore";
});
if (res2) {
this.auth.addBefore = true;
} else {
this.auth.addBefore = false;
}
},
methods: {
//获取可约时间段
getTimeList() {
this.TimeList = [];
queryGetTimeList({}).then(res => {
if (res.Code == 1) {
var tempData = res.Data;
if (tempData && tempData.length > 0) {
tempData.forEach(item => {
this.TimeList.push({
Id: item.Sort,
Name: '第' + item.Sort + "节课",
StartTime: item.StartTime,
EndTime: item.EndTime,
ClassHours: item.ClassHours,
});
})
}
}
})
},
getAppointItemClass(appointItem, timeItem) {
var str = "";
var obj = {};
if (appointItem.SubList && appointItem.SubList.length > 0) {
appointItem.SubList.forEach(qitem => {
if (qitem.ShiftSort == timeItem.Id) {
obj = qitem;
}
})
}
if (obj && obj.CourseId && obj.CourseId > 0) {
if (obj.State == 1) {
str = "unsure";
} else if (obj.State == 2) {
str = "unstudy";
} else if (obj.State == 3) {
str = "study-normal";
}
}
return str;
},
//获取约课数据
getAppointItem(appointItem, timeItem) {
var obj = {};
if (appointItem.SubList && appointItem.SubList.length > 0) {
appointItem.SubList.forEach(qitem => {
if (qitem.ShiftSort == timeItem.Id) {
obj = qitem;
}
})
}
return obj;
},
//下载课表
DownLoadStuLearnChapterStatic() {
let dateStartDate = new Date(this.msg.StartDate);
let dateEndDate = new Date(this.msg.EndDate);
EduDownLoad("/TeacherClass/GetAppointmentPlanStatExcel", this.msg, (dateStartDate.getMonth() + 1) + "月" +
dateStartDate.getDate() + "日-" + (dateEndDate.getMonth() + 1) + "月" + dateEndDate.getDate() + "日老师排课统计.xls",
res => {});
},
//下载课表
DownLoadPlanStudentExcel() {
let dateStartDate = new Date(this.msg.StartDate);
let dateEndDate = new Date(this.msg.EndDate);
EduDownLoad("/TeacherClass/GetAppointmentPlanStudentExcel", this.msg, (dateStartDate.getMonth() + 1) + "月" +
dateStartDate.getDate() + "日-" + (dateEndDate.getMonth() + 1) + "月" + dateEndDate.getDate() + "日学生排课统计.xls",
res => {});
},
calendarNext() {
setTimeout(() => {
var weekObj = this.$commonUtils.getWeeks(this.selectedDate, 2);
this.msg.StartDate = weekObj.start;
this.msg.EndDate = weekObj.end;
this.selectedDate = weekObj.start;
this.getData();
}, 100);
},
calendarPrev() {
setTimeout(() => {
var weekObj = this.$commonUtils.getWeeks(this.selectedDate, 1);
this.msg.StartDate = weekObj.start;
this.msg.EndDate = weekObj.end;
this.selectedDate = weekObj.start;
this.getData();
}, 100);
},
//时间切换
changeDate() {
setTimeout(() => {
var weekObj = this.$commonUtils.getWeeks(this.selectedDate, 0);
this.msg.StartDate = weekObj.start;
this.msg.EndDate = weekObj.end;
this.selectedDate = weekObj.start;
this.getData();
}, 100);
},
getTeacherList() {
getTeacherDropDownList({
LeaveStatus: 1,
}).then(res => {
if (res.Code == 1) {
this.TeacherList2 = JSON.parse(JSON.stringify(res.Data));
this.TeacherList2.unshift({
TeacherName: "请选择",
TId: 0
});
}
});
},
getclassroom() {
queryClassRoomList({}).then(res => {
if (res.Code == 1) {
this.classroomList = res.Data;
var obj = {
RoomName: "不限",
RoomId: 0
};
this.classroomList.unshift(obj);
}
});
},
getData() {
GetAppointmentPlanStat(this.msg).then(res => {
let data = JSON.parse(JSON.stringify(res.Data));
this.dataList = data;
});
},
showDetail(appointItem, date, tid, timeItem) {
var newData = {};
if (appointItem.SubList && appointItem.SubList.length > 0) {
appointItem.SubList.forEach(qitem => {
if (qitem.ShiftSort == timeItem.Id) {
newData = qitem;
}
})
}
this.editType = 1;
if (newData && newData.CourseId) {
this.editType = 2;
}
//小于今天不显示弹窗,有权限除外
else if ((this.showAddStu(date) || this.auth.addBefore) && this.auth.IsEdit) {
this.editType = 1;
}
this.showForm = true;
this.dateObj.date = date;
this.saveObj = newData;
this.saveObj.Tid = tid;
this.saveObj.ShiftSort = timeItem.Id;
},
showAddStu(date) {
var today = this.$commonUtils.getCurrentDate()
if (new Date(date).getTime() < new Date(today).getTime()) {
return false;
} else {
return true;
}
},
confirmSub(date, id, item) {
if (item.EnrollNum < item.ScrollMinNum) {
// this.$q.notify({
// message: `最小开班人数为${item.ScrollMinNum}`,
// position: "top",
// type: "negative"
// });
// return;
}
this.saveLoading = true;
const msg = {
Date: date,
TeacherId: id,
ShiftSort: item.ShiftSort
};
SetSureAppointment(msg).then(res => {
this.saveLoading = false;
if (res.Code == 1) {
this.$q.notify({
message: "操作成功",
position: "top",
type: "positive"
});
this.getData();
}
});
},
successHandle() {
this.getData();
},
isShowTag(arr, min) {
let n = 0;
arr.map(e => {
if (e.AppointType !== 3) {
n += 1;
}
});
if (n < min) {
return true;
} else {
return false;
}
},
getAppointmentConfig() {
GetAppointmentConfig({}).then(res => {
this.config = res.Data;
});
},
}
};
</script>
<style lang="scss">
.viewbox {
overflow-x: auto;
box-sizing: border-box;
}
.viewbox .appointtable {
border-collapse: collapse;
border: 1px solid #2a363b;
min-width: 100%;
}
.viewbox .appointtable td,
.viewbox .appointtable th {
border-right: 1px solid #2a363b;
border-bottom: 1px solid #2a363b;
white-space: nowrap;
text-align: center;
color: #000;
position: relative;
}
.viewbox .appointtable .unsure {
background: #eb3b5a;
}
.viewbox .appointtable .unstudy {
background: yellow;
}
.viewbox .appointtable .study-normal {
background: #20bf6b;
}
.calendar-container {
position: relative;
overflow: auto;
}
.searchBox .el-input__inner {
border: none;
background-color: transparent;
}
.searchBox .el-input .el-input__inner,
.el-select .el-input {
border-radius: 0;
}
.courseItem {
height: 100%;
}
.detailLabel {
width: 35px;
white-space: nowrap;
}
.detailValue {
width: 100%;
display: inline-block;
}
</style>
......@@ -209,7 +209,6 @@
getSurveyShowList() {
this.loading = true;
querySurveyShowList(this.msg).then(res => {
console.log(res);
this.loading = false
this.data = res.Data.subList;
this.pageTitle = res.Data.Title;
......
......@@ -2031,6 +2031,11 @@ const routes = [{
component: () =>
import("pages/studyAbroad/subscribe")
},
{
path: "/stu/subappoint", //新版预约
component: () =>
import("pages/studyAbroad/subappoint")
},
{
path: "/financial/Language/languagePeriodsList", // 小语种业绩提成 分期列表
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