Commit ec7b0ee6 authored by Mac's avatar Mac

1修改学员的来源关系

2新增滚动开班的页面
parent 6c7fe394
import request from '../../utils/request'
/**
* 获取班次列表
* @param {JSON参数} data
*/
export function getScrollShiftList(data) {
return request({
url: '/Scroll/GetScrollShiftList',
method: 'post',
data
})
}
/**
* 新增修改班次
* @param {JSON参数} data
*/
export function setScrollShiftInfo(data) {
return request({
url: '/Scroll/SetScrollShiftInfo',
method: 'post',
data
})
}
/**
* 新增修改班次
* @param {JSON参数} data
*/
export function delScrollShiftInfo(data) {
return request({
url: '/Scroll/DelScrollShiftInfo',
method: 'post',
data
})
}
/**
* 获取排班计划
* @param {JSON参数} data
*/
export function getScrollPlanMonthList(data) {
return request({
url: '/Scroll/GetScrollPlanMonthList',
method: 'post',
data
})
}
\ No newline at end of file
This diff is collapsed.
......@@ -129,6 +129,14 @@
/>
</q-td>
</template>
<template v-slot:body-cell-StuSourceIdName="props">
<q-td :props="props">
<div>
<span v-if="props.row.CreateType == 2 && props.row.EnterpriseName">{{props.row.EnterpriseName}}:</span>
{{ props.row.StuSourceIdName }}
</div>
</q-td>
</template>
<template v-slot:body-cell-CurseManager="props">
<q-td :props="props" v-html="getCurseManager(props.row)"></q-td>
......
<style scoped>
@import "../financial/css/cssReset.css";
.baseSet_Title {
width: 120px !important;
padding: 18px 0 0 16px;
text-align: right;
}
.singeRowTable tr th {
border: 1px solid #d2d2d2;
background: #FFF;
}
.workutaTeaching td:first-child{background-color: #E6E6E6;position: sticky;left:0px;}
.workutaTeaching th:first-child{position: sticky;left:0px;}
.workutaTeaching .finger{
cursor: pointer;
}
</style>
<template>
<div class="page-body workutaTeaching">
<div >
<shiftform :shiftList="shiftList" @getList="getshift"></shiftform>
</div>
<div style="width: 100%;margin-top: 20px">
<div style="width: 100%;height: 50px;display: flex;align-items: center;justify-content: center;border: 1px solid #d2d2d2;color: #409EFF;">
<i class="el-icon-d-arrow-left" @click="reduceMonth" style="font-size: 18px;"></i>
<span style="margin: 0 10px;">{{month.split('-')[0]}}{{month.split('-')[1]}}</span>
<i class="el-icon-d-arrow-right" @click="addMonth" style="font-size: 18px;"></i>
</div>
<div style="width: 100%;overflow-x: auto;" >
<table
class="po_content singeRowTable"
style="border:1px solid #E6E6E6;"
cellspacing="0"
cellpadding="0"
v-loading="loading"
>
<tr >
<th width="100" style="min-width: 100px;">
名字
</th>
<th width="50" style="min-width: 50px;" v-for="(item,index) in dayArry" :key="index">
<div>
<div>{{item.day}}</div>
<div>{{item.week}}</div>
</div>
</th>
</tr>
<tr v-for="(item,index) in dataList.TeacherList" :key="index" v-if="dataList.TeacherList && dataList.TeacherList.length>0">
<td>{{item.TeacherName}}</td>
<td v-for="(x,y) in item.RDateList" :key="y" class="finger" @click="choicedate(x,index,y)" :style="{background:getcolor(x).background,color:getcolor(x).color}">
{{x.ShiftName}}
<q-popup-proxy>
<q-banner v-if="isShowpopup">
</q-banner>
</q-popup-proxy>
</td>
</tr>
</table>
</div>
<div v-if='!dataList.TeacherList||(dataList.TeacherList && dataList.TeacherList.length==0)'
style="width: 100%;border:1px solid #E6E6E6;display: flex;align-items: center;justify-content: center;height: 60px;">
暂无数据
</div>
</div>
</div>
</template>
<script>
import {
getScrollPlanMonthList,
} from '../../api/course/roll'
import {
queryClassRoomList,
} from '../../api/school/index';
import shiftform from '../../components/course/shift-form'
export default {
meta: {
title: "滚动排班"
},
props: {},
components: {
shiftform
},
data() {
return {
msg: {
STime: '',
ETime:'',
},
month:'',
isShowpopup:false,
loading: false,
shiftList:[],//班次列表
dataList:[],
dayArry:[],//天数列表
ClassRoomList:[],//教室列表
}
},
created() {
this.month = ''
let yy = new Date().getFullYear()
let mm = new Date().getMonth() + 1
mm = mm<10?'0'+mm:mm
this.month = yy + '-' + mm
this.getday()
},
mounted() {
this.getClassRoomList();
},
methods: {
getday(){//获取月份天数
let arr = this.month.split("-");
let year = parseInt(arr[0]);
let month = parseInt(arr[1]);
let setDate = new Date(year,parseInt(month),0)
let day = setDate.getDate()
this.dayArry=[];
this.msg.STime = this.month+'-01';//开始时间之间赋值
for (var k = 1; k <= day; k++) {
if(k==day){
this.msg.ETime = this.month+'-'+k;//开始时间之间赋值
}
let obj = {
day :k,
week:this.getWeek(this.month+'-'+k)
}
this.dayArry.push(obj);
}
this.getList(); //获取规则
},
getWeek(dateString){//获取周几
let dateArray = dateString.split("-");
let date = new Date(dateArray[0], parseInt(dateArray[1] - 1), dateArray[2]);
return "日一二三四五六".charAt(date.getDay());
},
addMonth(){//加月份
let arr = this.month.split("-");
let year = parseInt(arr[0]);
let month = parseInt(arr[1]);
if (month == 12) {
year = year + 1;
month = 1;
} else {
month = month + 1;
}
month = month<10?'0'+month:month
this.month = year + "-" + month;
this.getday()
},
reduceMonth(){//月份减
let arr = this.month.split("-");
let year = parseInt(arr[0]);
let month = parseInt(arr[1]);
if (month == 1) {
year = year - 1;
month = 12;
} else {
month = month - 1;
}
month = month<10?'0'+month:month
this.month = year + "-" + month;
this.getday()
},
getshift(data){//从子组件获取班次的列表
this.shiftList = data;
let obj = {
ShiftId: 0,
ShiftName: "休息"
}
this.shiftList.push(obj)
},
//获取教室下拉
getClassRoomList() {
queryClassRoomList({}).then(res => {
if (res.Code == 1) {
this.ClassRoomList = res.Data;
}
})
},
getcolor(row){
let obj ={
background:'#FFF',
color:'#111'
}
if(row.ShiftId>=0){//判断下 节约性能
for(let i = 0;i<this.shiftList.length;i++){
if(this.shiftList[i].Id == row.ShiftId){
obj.background = this.shiftList[i].Color
obj.color = '#FFF';
break
}
}
}
return obj
},
choicedate(item,index,y){//点击某一个弹出
this.isShowpopup =true
console.log(item)
},
getList(type) {
this.loading = true;
getScrollPlanMonthList(this.msg).then(res => {
this.loading = false;
this.dataList = res.Data
})
.catch(() => {
this.loading = false;
});
},
},
}
</script>
<style lang="sass">
@import url('~assets/css/table.sass')
</style>
<style scoped>
/deep/.el-input__inner,
/deep/.el-range-input {
background-color: transparent;
border: none;
}
</style>
......@@ -78,14 +78,7 @@
</div>
</div>
<div style="width: 100%;text-align: right;padding: 0 20px;margin-bottom: 10px;">
<span @click="morequery=!morequery" style="display:inline-flex;align-items:center;cursor: pointer;" >
<span style="margin-right:5px;color: #089bab;">高级查询</span>
<img v-show="!morequery" style="width:12px;height:12px" src="../../assets/images/more.png" alt="">
<img v-show="morequery" class="roatImg" style="width:12px;height:12px" src="../../assets/images/more.png" alt="">
</span>
</div>
<div class="page-search row items-center" v-if="morequery">
<div class="page-search row items-center" v-if="morequery">
<div class="col row wrap q-mr-lg q-col-gutter-md">
<div class="col-3">
<q-select @input="resetSearch" dense filled v-model="msg.StuStage" :options="customState" option-label="Name"
......@@ -116,6 +109,20 @@
</div>
</div>
</div>
<div style="width: 100%;padding: 0 10px;margin-bottom: 10px;display: flex;align-items: center;justify-content: space-between;">
<div style="font-weight: bold;">
总人数:{{Count}}人
</div>
<div>
<span @click="morequery=!morequery" style="display:inline-flex;align-items:center;cursor: pointer;" >
<span style="margin-right:5px;color: #089bab;">高级查询</span>
<img v-show="morequery" class="roatImg" style="width:12px;height:12px" src="../../assets/images/more.png" alt="">
<img v-show="!morequery" style="width:12px;height:12px" src="../../assets/images/more.png" alt="">
</span>
</div>
</div>
<div class="page-content">
<q-table :pagination="msg" :loading="loading" no-data-label="暂无相关数据" flat
class="sticky-column-table sticky-right-column-table "
......@@ -255,6 +262,7 @@ export default {
RoleListData: [], //课程顾问下拉数据
StuChannelList: [], //收客渠道
allStuChannelList: [], //所有收客渠道
Count:0,
columns: [{
name: "StuName",
label: "学生",
......@@ -448,6 +456,7 @@ export default {
this.loading = false;
this.dataList = res.Data.PageData;
this.PageCount = res.Data.PageCount;
this.Count = res.Data.Count
})
......
......@@ -76,13 +76,7 @@
</div>
</div>
<div style="width: 100%;text-align: right;padding: 0 20px;margin-bottom: 10px;">
<span @click="morequery=!morequery" style="display:inline-flex;align-items:center;cursor: pointer;" >
<span style="margin-right:5px;color: #089bab;">高级查询</span>
<img v-show="!morequery" style="width:12px;height:12px" src="../../assets/images/more.png" alt="">
<img v-show="morequery" class="roatImg" style="width:12px;height:12px" src="../../assets/images/more.png" alt="">
</span>
</div>
<div class="page-search row items-center" v-if="morequery">
<div class="col row wrap q-mr-lg q-col-gutter-md">
......@@ -170,20 +164,16 @@
(<q-radio size="xs" v-model="msg.Q_FType" val="1" label="范围内有跟进记录" @input ='resetSearch'/>
<q-radio size="xs" v-model="msg.Q_FType" val="2" label="范围内没有跟进记录" @input ='resetSearch' />
<!-- <q-option-group
v-model="msg.Q_FType"
inline
class="q-mb-md"
@input="resetSearch"
:options="[
{ label: '范围内有跟进记录', value: '1' },
{ label: '范围内没有跟进记录', value: '2' },
]"
/> -->
</div>
</div>
</div>
<div style="width: 100%;text-align: right;padding: 0 20px;margin-bottom: 10px;">
<span @click="morequery=!morequery" style="display:inline-flex;align-items:center;cursor: pointer;" >
<span style="margin-right:5px;color: #089bab;">高级查询</span>
<img v-show="!morequery" style="width:12px;height:12px" src="../../assets/images/more.png" alt="">
<img v-show="morequery" class="roatImg" style="width:12px;height:12px" src="../../assets/images/more.png" alt="">
</span>
</div>
<div class="col row wrap q-gutter-x-md" v-if="dataList.Stat">
<div class="col stics">
......@@ -282,7 +272,7 @@
<span>{{ item.CreateTypeName?item.CreateTypeName:'-' }}</span>
</td>
<td>
<span>{{ item.StuSourceIdName?item.StuSourceIdName:'-' }}</span>
<span><span v-if="item.CreateType==2 && item.EnterpriseName">{{item.EnterpriseName}}:</span> {{ item.StuSourceIdName?item.StuSourceIdName:'-' }}</span>
</td>
<td>
<span>{{ item.StuChannelName?item.StuChannelName:'-' }}</span>
......
......@@ -304,6 +304,15 @@
</div>
</q-td>
</template>
<template v-slot:body-cell-StuSourceIdName="props">
<q-td :props="props">
<div>
<span v-if="props.row.CreateType == 2 && props.row.EnterpriseName">{{props.row.EnterpriseName}}:</span>
{{ props.row.StuSourceIdName }}
</div>
</q-td>
</template>
<template v-slot:body-cell-ClassName="props">
<q-td :props="props">
<div style="color: #f00; cursor: pointer" @click="seeClassDetail(props.row)">
......@@ -545,6 +554,12 @@
label: "收客渠道",
field: "StuChannelName",
align: "left",
},
{
name: "StuCreateByName",
label: "负责人",
align: "left",
field: "StuCreateByName"
},
{
name: "Mobile",
......@@ -685,12 +700,7 @@
field: "JoinTypeStr",
align: "left",
},
{
name: "StuCreateByName",
label: "负责人",
align: "left",
field: "StuCreateByName"
},
{
name: "optioned",
label: "操作",
......
......@@ -1145,6 +1145,12 @@ const routes = [{
component: () =>
import("pages/course/achievements.vue")
},
{
path: "/course/workutaTeaching", //教学中心 排课
component: () =>
import("pages/course/workutaTeaching.vue")
},
{
path: "/user/backbill", //退课单据
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