Commit 4b5add36 authored by Mac's avatar Mac

1

parent 649d2135
......@@ -33,3 +33,27 @@ export function setClassOrder(data) {
data
})
}
/**
* 销售 我的订单
*
*/
export function getMyOrderPageList(data) {
return request({
url: '/order/GetMyOrderPageList',
method: 'post',
data
})
}
/**
* 销售 我的订单状态
*
*/
export function getOrderStateEnumList(data) {
return request({
url: '/order/GetOrderStateEnumList',
method: 'post',
data
})
}
......@@ -13,11 +13,11 @@
<div class="col-3">
<q-select @input="resetSearch" standout="bg-primary text-white" option-value="TId" option-label="TeacherName"
v-model="msg.TeacherName" :options="TeacherList" emit-value map-options label="带班老师" />
v-model="msg.Teacher_Id" :options="TeacherList" emit-value map-options label="带班老师" />
</div>
<div class="col-3">
<q-select @input="resetSearch" standout="bg-primary text-white" option-value="CourseId" option-label="CourseName"
v-model="msg.CourseName" :options="ClassList" emit-value map-options label="学习课程" />
v-model="msg.CouseId" :options="ClassList" emit-value map-options label="学习课程" />
</div>
<div class="col-3">
......@@ -38,7 +38,7 @@
<div class="page-content" >
<div style="width: 100%;display: flex;justify-content: space-between">
<span style="font-size: 20px;font-weight: 400; ">日语培训产品列表</span>
<span><q-toggle v-model="msg.Q_CanApply" label="只看有余位" class="q-mb-md" false-value="0" true-value="1" @change="resetSearch"/></span>
<span><q-toggle v-model="msg.Q_CanApply" label="只看有余位" class="q-mb-md" false-value="0" true-value="1" @input="resetSearch"/></span>
</div>
<div class="productQueryList" v-loading='loading'>
<ul v-if="data.length!=0">
......@@ -46,7 +46,7 @@
<div class="dline">
<div class="d1">
<div class="di-title">{{item.ClassName}}</div>
<div class="di-c"><img src="../../assets/images/administration/kezname.png" alt="" style="width: 14px;height: 14px;margin-right: 5px;">{{item.CourseName}}</div>
<div class="di-c" style="margin-top: 25px;"><img src="../../assets/images/administration/kezname.png" alt="" style="width: 14px;height: 14px;margin-right: 5px;">{{item.CourseName}}</div>
<div class="di-c"><img src="../../assets/images/administration/period.png" alt="" style="width: 14px;height: 14px;margin-right: 5px;">{{item.ClassHours?item.ClassHours:'0'}}课时</div>
</div>
<div class="d2">
......@@ -86,10 +86,7 @@
第{{zi+1}}节
</div>
<div>{{zx.StartTime}}-{{zx.EndTime}}</div>
</div>
</div>
</div>
</q-banner>
......@@ -97,21 +94,21 @@
</div>
</div>
<div class="d3">
<div style="font-size: 24px;margin: 0">招生信息</div>
<div style="margin: 0">招生信息</div>
<div><span class="d2-n">截止报名时间</span><span class="d3-s">{{item.OpenTime}}</span></div>
<div><span class="d2-n">开始上课时间</span><span class="d3-s">{{item.EndOrderTime}}</span></div>
</div>
<div class="d4">
<div style="font-size: 24px;margin: 0">价格信息</div>
<div><span class="d2-n">原价</span><span>{{item.OriginalPrice}}</span></div>
<div><span class="d2-n">售价</span><span style="color:#2961FE;">{{item.SellPrice}}</span></div>
<div v-if="item.IsStepPrice==1 && item.ClassStepPriceList.length>0">
<div style="margin: 0">价格信息</div>
<div><span class="d2-n">原价</span><span>{{item.OriginalPrice.toFixed(2)}}</span></div>
<div><span class="d2-n">售价</span><span style="color:#f5576c;font-weight: bold">{{item.SellPrice.toFixed(2)}}</span></div>
<div v-if="item.IsStepPrice==1 && item.ClassStepPriceList.length>0" >
更多优惠价格<span class="iconfont icon-xiangxia" style="color: #2961FE;font-size: 10px" ></span>
<q-popup-proxy>
<q-banner>
<div class="price-popup">
<div class="price-popup-item" v-for="(x,index2) in item.ClassStepPriceList" :key="index2" style="margin: 5px 0">
<span style="color: #2D2D2D;font-weight: bold">{{x.PersionNum}}人报名<span style="color:#2860FB;margin-left: 15px">{{x.PersionPrice}}</span></span>
<span style="color: #2D2D2D;font-weight: bold">{{x.PersionNum}}人报名<span style="color:#2860FB;margin-left: 15px">{{x.PersionPrice.toFixed(2)}}</span></span>
</div>
</div>
</q-banner>
......@@ -119,29 +116,35 @@
</div>
</div>
<div class="d5">
<div style="font-size: 24px;margin: 0">名额信息</div>
<div style="margin: 0">名额信息</div>
<div><span class="d2-n">计划招生人数</span><span>{{item.ClassPersion}}人</span></div>
<div><span class="d2-n">剩余招生名额</span><span style="color:#0000FF;">{{item.SurplusNum}}人</span></div>
<div><span class="d2-n">剩余招生名额</span><span style="color:#f5576c;font-weight: bold">{{item.SurplusNum}}人</span></div>
</div>
<div class="d7">
<q-btn color="primary" label="立即下单" v-if="item.IsCanApply==1" @click="placeAnorder(item)"/>
<div v-if="item.IsCanApply==0">
<!-- TODO 这里是图片-->
<span v-if="item.SurplusNum==0">报名已满</span>
<span v-if="getEXPDate(item.OpenTime)==true">已过期</span>
<img src="../../assets/images/administration/bmym.png" alt="" style="width: 64px;height: 62px;margin-right: 15px" v-if="item.SurplusNum==0">
<img src="../../assets/images/administration/guoqi.png" alt="" style="width: 64px;height: 62px" v-if="getEXPDate(item.OpenTime)==true">
</div>
</div>
</div>
<div class="d6">
<p>OP备注:</p>
<p :title="item.OutRemark">{{item.OutRemark}}</p>
<div class="d6 row">
<p style="color:#f5576c;font-weight: bold"><span style="color:#2D2D2D;">OP备注:</span>{{item.OutRemark}}</p>
<div class="progress">
<q-linear-progress size="5px" color="#3FC4FF" :value="(item.OrderStudentCount/item.ClassPersion)" />
<q-linear-progress size="5px" color="#3FC4FF" :value="(item.OrderStudentCount/item.ClassPersion)" rounded/>
</div>
</div>
</li>
<li style="border: none;display: flex;justify-content: flex-end;background: white;padding: 5px 20px">
<q-pagination
v-model="msg.pageIndex"
:max="pageCount"
@input="changePage"
>
</q-pagination>
</li>
</ul>
</div>
......@@ -206,7 +209,7 @@
dateList:[],//开学时间
msg: {
pageIndex: 1,
pageSize: 12,
pageSize: 10,
ClassName: '', //班级名称
StartTime:'',//开始时间
EndTime:'',//结束时间
......@@ -285,6 +288,10 @@
queryCourseDropdownList({}).then(res => {
if (res.Code == 1) {
this.ClassList = res.Data;
this.ClassList.unshift({
CourseId: 0,
CourseName: "不限"
})
}
})
},
......@@ -293,6 +300,10 @@
getTeacherDropDownList({}).then(res => {
if (res.Code == 1) {
this.TeacherList = res.Data;
this.TeacherList.unshift({
TId: 0,
TeacherName: "不限"
})
}
})
},
......@@ -446,24 +457,20 @@
list-style-type:none ;
}
.japaneseTrain ul{padding: 0px}
.japaneseTrain li{border: 1px solid #E2E2E2;border-radius: 4px;margin-top:15px}
.japaneseTrain li{background: rgba(221, 222, 224, 0.2);border-radius: 4px;margin-top:15px}
.japaneseTrain li .dline{display: table;width: 100%;display: flex;flex-direction: row}
.japaneseTrain li .d1{width: 18%;padding:20px;border-right: 1px dashed #dcdfe6;}
.japaneseTrain li .d2{width: 16%;padding:20px;border-right: 1px dashed #dcdfe6;}
.japaneseTrain li .d3{width: 16%;padding:20px;border-right: 1px dashed #dcdfe6;}
.japaneseTrain li .d4{width: 16%;padding:20px;border-right: 1px dashed #dcdfe6;}
.japaneseTrain li .d5{width: 16%;padding:20px;border-right: 1px dashed #dcdfe6;}
.japaneseTrain li .d1,.japaneseTrain li .d2,.japaneseTrain li .d3,.japaneseTrain li .d4,.japaneseTrain li .d5{width: 18%;padding:20px 20px 10px;}
.japaneseTrain li .d7{flex:1;width: 1px;display: flex;flex-direction: row;align-items: center;justify-content: center}
.japaneseTrain li .d1 .di-title{font-size: 16px;color: #2961FE;font-weight: 500}
.japaneseTrain li .d1 .di-c{font-size: 14px;display: flex;align-items: center;line-height: 28px;font-weight: bold;color: #111111}
.japaneseTrain li .d6{padding: 20px;width: 100%;height: inherit;border-top:1px solid #E5E5E5;position: relative}
.japaneseTrain li .d1 .di-title{font-size: 16px;color: #111111;}
.japaneseTrain li .d1 .di-c{font-size: 14px;display: flex;align-items: center;line-height: 28px;color: #111111}
.japaneseTrain li .d6{padding:10px 20px;width: 100%;height: inherit;position: relative;border-top: 1px solid #DDDEE0}
.japaneseTrain li .d6 .progress{width: 100%;height: 5px;position: absolute;left: 0;bottom: 0}
.japaneseTrain li .d2 div{margin: 10px 0;font-size: 14px;color: #111111;font-weight: bold}
.japaneseTrain li .d2-n{font-size: 14px;color: #999999;font-weight: bold;margin-right: 20px}
.japaneseTrain li .d3 .d3-s{color: #3FC4FF}
.japaneseTrain li .d3 div{margin: 10px 0 ;font-size: 14px;font-weight: 600}
.japaneseTrain li .d4 div{font-size: 14px;color: #111111;margin: 10px 0 ;font-weight: 600}
.japaneseTrain li .d5 div{font-size: 14px;color: #111111;margin: 10px 0 ;font-weight: 600}
.japaneseTrain li .d2 div{margin: 10px 0;font-size: 14px;color: #111111;}
.japaneseTrain li .d2-n{font-size: 12px;color: #999999;margin-right: 20px}
.japaneseTrain li .d3 .d3-s{color: #f5576c;font-weight: bold}
.japaneseTrain li .d3 div{margin: 10px 0 ;font-size: 14px;}
.japaneseTrain li .d4 div{font-size: 14px;color: #111111;margin: 10px 0 ;}
.japaneseTrain li .d5 div{font-size: 14px;color: #111111;margin: 10px 0 ;}
.japaneseTrain .price-popup{border-radius: 4px;}
.japaneseTrain .el-range-editor .el-range-input {
background: none;
......
<template>
<div class="page-body myOrder">
<div style="width: 100%;display: flex;justify-content: space-between">
<span style="font-size: 20px;font-weight: 400; ">日语培训订单</span>
<span><q-toggle v-model="msg.Q_NotCollect" label="只看款未收齐订单" class="q-mb-md" false-value="0" true-value="1" @change="resetSearch"/></span>
</div>
<div class="page-search row items-center">
<div class="col row wrap q-mr-lg q-col-gutter-md">
<div class="col-3">
<q-input @change="resetSearch" clearable standout="bg-primary text-white" v-model="msg.OrderId" label="订单号"
@clear="resetSearch" />
</div>
<div class="col-3">
<q-input @change="resetSearch" clearable standout="bg-primary text-white" v-model="msg.GuestName" label="客户名称"
@clear="resetSearch" />
</div>
<div class="col-3">
<q-input @change="resetSearch" clearable standout="bg-primary text-white" v-model="msg.ClassName" label="班级名称"
@clear="resetSearch" />
</div>
<div class="col-3">
<q-select @input="resetSearch" standout="bg-primary text-white" option-value="CourseId" option-label="CourseName"
v-model="msg.CourseName" :options="ClassList" emit-value map-options label="学习课程" />
</div>
<div class="col-3">
<q-select @input="resetSearch" standout="bg-primary text-white" option-value="Id" option-label="Name"
v-model="msg.OrderState" :options="OrderState" emit-value map-options label="订单状态" />
</div>
<div class="col-3">
<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="报名结束时间">
 </el-date-picker>       
</template>
</q-field>
</div>
<div class="col-3">
<q-field filled>
 <template v-slot:control>
<el-date-picker v-model="dateList2" @change="resetSearch()" value-format="yyyy-MM-dd" type="daterange" style="border:none;"
 range-separator="至"  start-placeholder="开班开始时间"  end-placeholder="开班结束时间">
 </el-date-picker>       
</template>
</q-field>
</div>
</div>
</div>
<div class="col row wrap q-gutter-x-md" v-if="data.Statistics">
<div class="col stics">
<span class="stics-name">应收款</span>
<span>{{data.Statistics.PreferPrice?data.Statistics.PreferPrice:0}}</span>
</div>
<div class="col stics">
<span class="stics-name">实收款</span>
<span>{{data.Statistics.Income}}</span>
</div>
<div class="col stics">
<span class="stics-name">待收款</span>
<span style="color: #F72E52">{{data.Statistics.DueInMoney}}</span>
</div>
<div class="col stics">
<span class="stics-name">收客人数</span>
<span style="color:#2961FE;">{{data.Statistics.GuestNum}}人</span>
</div>
<div class="col stics">
<span class="stics-name">取消人数</span>
<span>{{data.Statistics.CancelNum}}人</span>
</div>
<div class="col stics">
<span class="stics-name">提成金额</span>
<span>{{data.Statistics.CommissionMoney}}</span>
</div>
<div class="col stics">
<span class="stics-name">额外奖励</span>
<span>{{data.Statistics.ExtraRewardMoney}}</span>
</div>
</div>
<div class="row col">
<div class="row tis">
<div class="tis-k" style="background: #2961FE"></div>
<span>已打单</span>
</div>
<div class="row tis">
<div class="tis-k" style="background: #02C499"></div>
<span>平台出纳已审核</span>
</div>
<div class="row tis">
<div class="tis-k" style="background: #F28C1D"></div>
<span>银行出纳已审核</span>
</div>
<div class="row tis">
<div class="tis-k" style="background: #3FC4FF"></div>
<span>已通过</span>
</div>
</div>
<div class="page-content" >
<table class="enrollTotalSearchTable" border="0" cellspacing="0" cellpadding="0" style="" v-loading='loading'>
<tr>
<th width="12%">单号</th>
<th width="9%">人数</th>
<th width="9%">单价</th>
<th width="9%">成交</th>
<th width="9%">应收总额</th>
<th width="9%">实收</th>
<th width="9%">优惠</th>
<th width="9%">退款</th>
<th width="9%">待收金额</th>
<th width="9%">状态</th>
<th >操作</th>
</tr>
<tr>
<td v-show="data.List.length==0" :colspan="11" align="center">暂无数据</td>
</tr>
<tbody v-for="(item,index) in data.List" :key="index">
<td rowspan="3">
123
</td>
<td >
2人
</td>
<td >
2000
</td>
</tbody>
</table>
</div>
</div>
</template>
<script>
import {
getMyOrderPageList,//获取订单列表
getOrderStateEnumList,//订单状态
} from '../../api/sale/sale';
import {
getSchoolDropdown, //获取校区列表
getTeacherDropDownList,
} from '../../api/school/index';
import {
queryCourseDropdownList,
} from '../../api/course/index'
export default {
components: {
},
data() {
return {
dialog:false,
data: {},
loading: false,
dateList:[],//报名时间
dateList2:[],//开班时间
msg: {
pageIndex: 1,
pageSize: 10,
OrderId:0,//订单号
GuestName:'',//客人名称
ClassName: '', //班级名称
CouseId:0,//课程id
StartTime:'',//报名开始时间
EndTime:'',//报名结束时间
OPStartTime:'',//开班开始时间
OPEndTime:'',//开班结束时间
Q_NotCollect:'0',//查询未收齐 1是 0否
OrderState:0,//订单状态 枚举
Q_OrderState:1,//查询 1正常订单 2取消订单 (默认传1 如果 选择了订单状态 则传 0)
Q_OrderBy:2,//写死 =2
PlatformTax:0,//平台税金
},
//订单状态
OrderState: [],
pageCount: 0,
ClassList: [], //关联课程下拉数据
}
},
created() {
this.getOrderState();
this.CourseList();
},
mounted() {
this.getList();
},
methods: {
//订单状态
getOrderState() {
getOrderStateEnumList({}).then(res => {
if (res.Code == 1) {
var tempArray = res.Data;
if (!tempArray) {
tempArray = [];
}
tempArray.unshift({
Id: 0,
Name: "不限"
})
this.OrderState = tempArray;
}
})
},
//获取课程
CourseList() {
queryCourseDropdownList({}).then(res => {
if (res.Code == 1) {
this.ClassList = res.Data;
}
})
},
//翻页
changePage(val) {
this.msg.pageIndex = val;
this.getList()
},
resetSearch() {
console.log(2)
this.msg.pageIndex = 1;
this.getList()
},
//获取菜单分页列表
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 = '';
}
if (this.dateList2 && this.dateList2.length > 0) {
this.msg.OPStartTime = this.dateList2[0];
this.msg.OPEndTime = this.dateList2[1];
} else {
this.msg.OPStartTime = '';
this.msg.OPEndTime = '';
}
this.loading = true;
getMyOrderPageList(this.msg).then(res => {
this.loading = false
this.data = res.Data.PageData
this.pageCount = res.Data.PageCount;
}).catch(() => {
this.loading = false
})
},
}
}
</script>
<style >
li{
list-style-type:none ;
}
.myOrder ul{padding: 0px}
.myOrder .price-popup{border-radius: 4px;}
.myOrder .el-range-editor .el-range-input {
background: none;
}
.myOrder .el-range-editor.el-input__inner {
background-color: transparent;
}
.myOrder .q-mb-md{
margin-bottom: 0;
}
.myOrder .stics{padding:10px 20px;background: #DDDEE0;border-radius: 4px;font-size: 14px;color: #000000;font-weight: bold}
.myOrder .stics .stics-name{color: #2D2D2D;font-weight: 600;margin-right: 10px}
.myOrder .tis {margin:10px 0;align-items: center}
.myOrder .tis .tis-k{width: 10px;height: 10px;margin-right: 8px}
.myOrder .tis span{font-size: 14px;color: #2D2D2D;font-weight: 600;margin-right: 20px}
.myOrder table {
padding: 10px 0 ;
width: 100%;
background-color: #ededed;
border-collapse: collapse;
border: 1px solid #d2d2d2;
font-size: 12px;
}
.myOrder table th {
background-color: #ededed;
height: 34px;
text-indent: 15px;
}
.myOrder table td {
background-color: #ffffff;
padding: 9px 15px;
color: #333333;
border: 1px solid #d2d2d2;
}
.myOrder table ._color_666 {
color: #666666;
}
.myOrder table tr._color_666 th {
padding: 9px 15px;
}
.myOrder table th {
background-color: #ededed;
height: 34px;
text-indent: 15px;
}
.myOrder table td {
background-color: #ffffff;
padding: 9px 15px;
color: #333333;
border: 1px solid #d2d2d2;
}
.myOrder table ._color_666 {
color: #666666;
}
.myOrder table tr._color_666 th {
padding: 9px 15px;
}
</style>
......@@ -336,6 +336,11 @@ const routes = [{
component: () =>
import("pages/sale/japaneseTrain.vue")
},
{
path: "/sale/myOrder", //销售 我的订单
component: () =>
import("pages/sale/myOrder.vue")
},
{
path: "/test", //API测试
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