Commit d6ea3aa2 authored by 黄奎's avatar 黄奎

新增页面

parent f3f60cd6
......@@ -284,3 +284,15 @@ export function saveRenewOrder(data) {
data
})
}
/**
* 销售 我的留学就业订单
*
*/
export function getMyStudyOrderPage(data) {
return request({
url: '/order/GetMyStudyOrderPageList',
method: 'post',
data
})
}
......@@ -54,7 +54,9 @@
OrderSource: 0,
SaleRemark: "",
Class_Price: 0,
OrderId:0,
OrderId: 0,
OrderType: 0, //订单类型(1-班级课程订单,2-留学就业订单)
SourceId: 0, //来源编号
},
UPrice: false,
StepPriceList: [],
......@@ -98,6 +100,8 @@
this.OrderMsg.SaleRemark = res.Data.OrderInfo.SaleRemark;
this.OrderMsg.Class_Price = res.Data.OrderInfo.Class_Price;
this.OrderMsg.OrderId = res.Data.OrderInfo.OrderId;
this.OrderMsg.OrderType = res.Data.OrderInfo.OrderType;
this.OrderMsg.SourceId = res.Data.OrderInfo.SourceId;
this.UnitPrice = this.OrderMsg.Unit_Price;
this.StepPriceList = res.Data.StepPriceList;
this.IsShowEditOrder = true;
......@@ -161,7 +165,7 @@
return this.OrderMsg.Class_Price;
}
},
getSortFun(order, sortBy){
getSortFun(order, sortBy) {
var ordAlpah = (order == 'asc') ? '>' : '<';
var sortFun = new Function('a', 'b', 'return a.' + sortBy + ordAlpah + 'b.' + sortBy + '?1:-1');
return sortFun;
......
......@@ -51,7 +51,14 @@
<span class="two-r">{{Detail.GuestNum}}</span>
</div>
<div class="col-6 row">
<span class="two-left">班级信息:</span>
<span class="two-left">
<template v-if="Detail.OrderType==1">
班级信息
</template>
<template v-if="Detail.OrderType==2">
产品信息
</template>
</span>
<span class="two-r">{{Detail.ClassName}}</span>
</div>
<div class="col-6 row">
......@@ -473,8 +480,8 @@
TCID: 0,
OrderID: 0,
Type: 1,
IsSellOrderForm:1,
IsFormRecPayQuery:1
IsSellOrderForm: 1,
IsFormRecPayQuery: 1
},
dataList: [],
dataListP: [],
......@@ -520,7 +527,7 @@
OrderId: this.saveObj.OrderId
}).then(res => {
this.Detail = res.Data;
this.getfinanciaALLPageList(1,this.Detail.ClassId,this.Detail.OrderId) //财务单据
this.getfinanciaALLPageList(1, this.Detail.ClassId, this.Detail.OrderId) //财务单据
}).catch(() => {
})
......@@ -583,7 +590,7 @@
})
},
getfinanciaALLPageList(Type,TCID,OrderID) {
getfinanciaALLPageList(Type, TCID, OrderID) {
this.floading = true
this.financiaMsg.TCID = TCID
this.financiaMsg.OrderID = OrderID
......@@ -593,7 +600,7 @@
let data = res.data.data.pageData.list;
if (Type === 1) {
this.dataList = data;
this.getfinanciaALLPageList(2,TCID,OrderID)
this.getfinanciaALLPageList(2, TCID, OrderID)
} else {
this.dataListP = data;
this.floading = false
......@@ -616,7 +623,7 @@
},
//返回2位小数
getTwoWei(num) {
if (num>=0) {
if (num >= 0) {
return num.toFixed(2);
}
}
......
This diff is collapsed.
<template>
<q-dialog v-model="persistent" maximized full-height seamless position="right">
<q-card style="margin-top:61px;width:500px" class="no-border-radius classinfo_Dialog">
<div class="drawerTop">
<div style="display:flex;align-items:center;margin-left:10px;">
<span class="drawer_Span">学员报名</span>
</div>
</div>
<div style="padding:20px 15px;">
<q-input filled stack-label maxlength="4" :dense="false" v-model="enrollMsg.GuestNum" type="number"
@input="countPrice" class="col-12" label="人数" :rules="[val => !!val || '请填写人数']" />
<q-input filled stack-label :dense="false" maxlength="8" v-model="enrollMsg.Unit_Price"
:disable="UPrice==true?false:true" @blur="countPrice" class="col-12" label="成交单价"
:rules="[val => !!val || '请填成交单价']" />
<q-select standout="bg-primary text-white" option-value="Id" option-label="Name" v-model="enrollMsg.OrderSource"
:options="SourceEnumList" emit-value map-options label="客人来源" />
<q-input filled stack-label type="textarea" maxlength="500" :dense="false" v-model="enrollMsg.SaleRemark"
style="margin-top: 20px" class="col-12" label="备注" />
<div style="margin:30px 10px 0 0;">
<q-btn class="q-mr-md" label="取消" @click="persistent=false" />
<q-btn color="accent" class="q-mr-md" label="保存" @click="saveSatMsg()" />
</div>
</div>
</q-card>
<div class="dialog-out-close" @click="persistent=false"
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>
</template>
<script>
import {
getOrderSourceEnumList, //获取订单来源 枚举
setClassOrder, //新增 修改订单
} from '../../api/sale/sale';
export default {
name: "studyOrder-form",
props: {
saveObj: {
type: Object,
default: null,
},
},
data() {
return {
persistent: true,
//学员报名
enrollMsg: {
ClassId: 0,
GuestNum: 1,
Unit_Price: 0, //成交单价
PreferPrice: 0, //应收总额
OrderSource: 0, //客人来源 枚举
SaleRemark: '', //备注
OrderType: 2, //订单类型(1-班级课程订单,2-留学就业订单)
SourceId: 0, //来源变化
},
UPrice: 0, //单价
SourceEnumList: [], //来源
}
},
created() {
this.getOrderSEList();
},
mounted() {
this.enrollMsg.Unit_Price = this.saveObj.SellPrice;
this.enrollMsg.SourceId = this.saveObj.Id;
this.countPrice();
},
methods: {
//获取客人来源列表
getOrderSEList() {
getOrderSourceEnumList({}).then(res => {
if (res.Code == 1) {
var tempArray = res.Data;
this.SourceEnumList = tempArray;
this.enrollMsg.OrderSource = tempArray[0].Id;
}
})
},
//计算价格
countPrice() {
var guestNum = 0;
var unit_price = 0;
if (this.enrollMsg.GuestNum && this.enrollMsg.GuestNum > 0) {
guestNum = Number(this.enrollMsg.GuestNum);
}
if (this.enrollMsg.Unit_Price && this.enrollMsg.Unit_Price > 0) {
unit_price = Number(this.enrollMsg.Unit_Price);
}
this.enrollMsg.PreferPrice = Number(guestNum * unit_price).toFixed(2);
},
//保存订单
saveSatMsg() {
setClassOrder(this.enrollMsg).then(res => {
if (res.Code == 1) {
this.$q.notify({
icon: 'iconfont icon-chenggong',
color: 'accent',
timeout: 2000,
message: '报名成功!',
position: 'top'
})
this.$emit("save");
}
}).catch(() => {})
},
}
}
</script>
<template>
<div class="page-body myOrder">
<div class="row col" style="height: 40px">
<div class="row col" style="justify-content: space-between;align-items: center;margin-bottom: 10px" >
<div class="row col" style="justify-content: space-between;align-items: center;margin-bottom: 10px">
<div>
<template v-if="data&& data.ClassInfo">
......@@ -14,7 +14,8 @@
<img :src="data.ClassInfo.TeacherIcon" />
</q-avatar>
<q-avatar style="margin:0 5px;" size="sm" color="teal-10" text-color="white" v-else>
<template v-if="data.ClassInfo&&data.ClassInfo.TeacherName">{{data.ClassInfo.TeacherName.substring(0,1)}}</template>
<template
v-if="data.ClassInfo&&data.ClassInfo.TeacherName">{{data.ClassInfo.TeacherName.substring(0,1)}}</template>
</q-avatar>
<span v-if="data&& data.ClassInfo" style="color:#2961FE;font-weight: bold">
{{data.ClassInfo.TeacherName}}
......@@ -23,7 +24,8 @@
</div>
</div>
<div class="page-content">
<orderlist :dataList="dataList" :isShowClass="false" ref="orderL" :Comtype="2" :cancelList="CancelList" @success="refreshClassOrder"></orderlist>
<orderlist :dataList="dataList" ref="orderL" :authObj="authObj" :cancelList="CancelList"
@success="refreshClassOrder"></orderlist>
</div>
</div>
</template>
......@@ -47,13 +49,22 @@
dataList: [],
//取消订单
CancelList: [],
//权限判断
authObj: {
isShowName: false, //不显示班级名称
isShowEditSale: true, //显示修改销售按钮
isShowEducationRemark: true, //显示修改教务备注
isShowPrincipalRemark: true, //显示校长备注
isShowManagerRemark: true, //显示总经理备注
isShowCommissionEdit: true, //显示修改提成按钮
isShowRewardEdit: true, //显示修改额外提成按钮
}
}
},
created() {
if (this.$route.query.ClassId) {
this.ClassId = this.$route.query.ClassId
this.msg.ClassId = this.ClassId;
}
this.getList();
},
......@@ -68,27 +79,27 @@
this.data = res.Data;
if (this.data && this.data.OrderList && this.data.OrderList.NorList) {
this.dataList = this.data.OrderList.NorList;
let OrderIds=[]
this.dataList.forEach(x=>{
let OrderIds = []
this.dataList.forEach(x => {
OrderIds.push(x.OrderId)
})
if(OrderIds.length>0){
if (OrderIds.length > 0) {
OrderIds = OrderIds.join(',')
if(this.dataList.length>0){
this.$refs.orderL.getOrderFinanceList(OrderIds,1)
if (this.dataList.length > 0) {
this.$refs.orderL.getOrderFinanceList(OrderIds, 1)
}
}
}
if (this.data && this.data.OrderList && this.data.OrderList.CancelList) {
this.CancelList = this.data.OrderList.CancelList;
let OrderIds=[]
this.CancelList.forEach(x=>{
let OrderIds = []
this.CancelList.forEach(x => {
OrderIds.push(x.OrderId)
})
if(OrderIds.length>0){
if (OrderIds.length > 0) {
OrderIds = OrderIds.join(',')
if(this.CancelList.length>0){
this.$refs.orderL.getOrderFinanceList(OrderIds,2)
if (this.CancelList.length > 0) {
this.$refs.orderL.getOrderFinanceList(OrderIds, 2)
}
}
}
......
......@@ -18,18 +18,6 @@
<q-select @input="resetSearch" standout="bg-primary text-white" option-value="CourseId"
option-label="CourseName" v-model="msg.CouseId" :options="ClassList" emit-value map-options label="学习课程" />
</div>
<!-- <div class="col-3">
<div class="col-3 Sysuser_Date">
<q-field filled>
 <template v-slot:control>
<el-date-picker v-model="dateList" @change="resetSearch" value-format="yyyy-MM-dd" type="daterange" style="border:none;"
  range-separator="至"  start-placeholder="开学日期"  end-placeholder="结束日期" clearable
@clear="resetSearch">
</el-date-picker>       
</template>
</q-field>
</div>
</div> -->
<div class="col-3">
<div class="col-3 Sysuser_Date">
<q-field filled>
......@@ -76,9 +64,12 @@
<div class="di-title">{{item.ClassName}}</div>
<div class="di-c" style="margin-top: 25px;align-items:baseline">
<img src="../../assets/images/administration/kezname.png" alt=""
style="width: 14px;height: 14px;margin-right:5px;position:relative;top:2px;">{{item.CourseName}}</div>
<div class="di-c" style="align-items:baseline"><img src="../../assets/images/administration/period.png" alt=""
style="width: 14px;height: 14px;margin-right:5px;position:relative;top:2px;">{{item.ClassHours?item.ClassHours:'0'}}课时</div>
style="width: 14px;height: 14px;margin-right:5px;position:relative;top:2px;">{{item.CourseName}}
</div>
<div class="di-c" style="align-items:baseline"><img src="../../assets/images/administration/period.png"
alt=""
style="width: 14px;height: 14px;margin-right:5px;position:relative;top:2px;">{{item.ClassHours?item.ClassHours:'0'}}课时
</div>
</div>
<div class="d2">
<div class="row" style="align-items: center ;margin:0;padding:0;">
......@@ -199,14 +190,19 @@
style="color:var(--q-color-negative);font-weight: bold">{{item.SurplusNum}}人</span></div>
</div>
<div class="d7">
<div><q-btn style="margin-top:40px;" color="primary" size="sm" label="立即下单" v-if="item.IsCanApply==1" @click="placeAnorder(item)" /></div>
<div>
<q-btn style="margin-top:40px;" color="primary" size="sm" label="立即下单" v-if="item.IsCanApply==1"
@click="placeAnorder(item)" />
</div>
<div v-if="item.IsCanApply==0">
<img src="../../assets/images/administration/bmym.png" alt=""
style="width: 64px;height: 62px;margin:20px 15px 0 0" v-if="item.SurplusNum==0">
<img src="../../assets/images/administration/guoqi.png" alt="" style="width: 64px;height: 62px"
v-if="getEXPDate(item.EndOrderTime)==true">
</div>
<div><q-btn style="margin-top:10px;" size="sm" color="primary" label="订单中心" @click="goclassorder(item)" /></div>
<div>
<q-btn style="margin-top:10px;" size="sm" color="primary" label="订单中心" @click="goclassorder(item)" />
</div>
</div>
</div>
<div class="d6 row">
......@@ -296,6 +292,7 @@
JoinStartTime: '', //报名截止日期开始
JoinEndTime: "", //报名截止日期结束
},
//学员报名
enrollMsg: {
ClassId: 0,
GuestNum: 1,
......@@ -303,6 +300,8 @@
PreferPrice: 0, //应收总额
OrderSource: 0, //客人来源 枚举
SaleRemark: '', //备注
OrderType:1,//订单类型(1-班级课程订单,2-留学就业订单)
SourceId:0,//来源编号
},
//关联校区列表
schoolList: [],
......@@ -328,7 +327,7 @@
var month = nowDay.getMonth() + 1; //月
var day = nowDay.getDate(); //日
var currentDay = year + '-' + month + '-' + day;
//this.dateList[0] = currentDay;
this.msg.StartTime = currentDay
this.getList();
},
......@@ -410,14 +409,6 @@
},
//获取菜单分页列表
getList() {
// if (this.dateList && this.dateList.length > 0) {
// this.msg.StartTime = this.dateList[0];
// this.msg.EndTime = this.dateList[1];
// } else {
// this.msg.StartTime = '';
// this.msg.EndTime = '';
// }
this.loading = true;
getClassPruductList(this.msg).then(res => {
this.loading = false
......
......@@ -97,7 +97,7 @@
</div>
</div>
<div class="page-content">
<orderlist :dataList="data.List" :isShowClass="true" :Comtype="1" @success="refreshClassOrder" ref="orderL">
<orderlist :dataList="data.List" :authObj="authObj" @success="refreshClassOrder" ref="orderL">
</orderlist>
<div class="row" style="justify-content: flex-end;padding: 5px 20px">
<q-pagination v-model="msg.pageIndex" :max="pageCount" @input="changePage" class="full-width justify-end"
......@@ -161,6 +161,15 @@
classObjOption: null,
isShowClassInfo: false, //是否显示课程信息
showone: false,
//权限判断
authObj: {
isShowGuestBtn: 1, //显示新增学员名单按钮
isShowFinanceBtn: true, //显示财务单据按钮
isShowTransOrder: true, //显示转交订单按钮
isShowSaleRemark: true, //显示修改销售备注
isShowBackClass: true, //显示退课按钮
isShowRenewClass: true, //显示续课按钮
}
}
},
created() {
......
This diff is collapsed.
This diff is collapsed.
......@@ -112,7 +112,7 @@
<template v-slot:body-cell-Id="props">
<q-td :props="props">
<q-btn flat size="xs" icon="edit" color="accent" style="font-weight:400" label="立即下单"
@click="getviewInfo(props.row)" />
@click="showOrderForm(props.row)" />
</q-td>
</template>
<template v-slot:bottom>
......@@ -123,6 +123,9 @@
<q-dialog v-model="showForm" persistent>
<quotationstudy-form :obj="null" @save="showForm=false"></quotationstudy-form>
</q-dialog>
<studyorder-form v-if="isShowOrderForm" :saveObj="studyObj" @save="refreshPage()"></studyorder-form>
</div>
</div>
</template>
......@@ -132,6 +135,7 @@
queryStudyAbroadPage
} from '../../api/studyabroad/index'
import quotationstudyForm from '../../components/sale/quotationstudy-form'
import studyorderForm from '../../components/sale/studyorder-form'
import {
mapState
} from "vuex";
......@@ -141,7 +145,8 @@
title: "留学产品审核"
},
components: {
quotationstudyForm
quotationstudyForm,
studyorderForm
},
data() {
return {
......@@ -168,7 +173,6 @@
field: 'Type',
align: 'left'
},
{
name: 'SuggestPrice',
label: '建议卖价',
......@@ -250,9 +254,10 @@
], //可见列
PageCount: 0,
showForm: false, //是否显示报价单弹窗
isShowOrderForm: false, //是否显示订单弹窗
studyObj: {}, //留学就业对象
}
},
mounted() {
this.getList();
},
......@@ -260,6 +265,12 @@
},
methods: {
//显示下单弹窗
showOrderForm(item) {
console.log("item",item)
this.isShowOrderForm = true;
this.studyObj = item;
},
//显示报价单弹窗
createQuotation() {
this.showForm = true;
......@@ -297,7 +308,11 @@
this.studyObj = obj;
this.isShowStudyAudit = true;
},
//刷新页面
refreshPage() {
this.showForm = false;
this.isShowOrderForm = false;
this.studyObj = {};
this.getList();
},
//审核详情
......
......@@ -456,6 +456,11 @@ const routes = [{
component: () =>
import("pages/sale/myOrder.vue")
},
{
path: "/sale/studyOrder", //销售 我的留学就业订单
component: () =>
import("pages/sale/studyOrder.vue")
},
{
path: "/sale/studentList", //销售 学生名单
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