Commit 24e6b65a authored by 吴春's avatar 吴春

解决冲突

parents c622d02e f1d6fff5
...@@ -115,8 +115,8 @@ export function UploadViittoBlobFile(path, file, callback) { ...@@ -115,8 +115,8 @@ export function UploadViittoBlobFile(path, file, callback) {
uploadLoadding.show({ uploadLoadding.show({
message: '正在上传文件,请稍后...' message: '正在上传文件,请稍后...'
}) })
let viewFileUrl = 'http://192.168.10.214:8130'; let viewFileUrl = 'http://192.168.5.214:8130';
let vtUploadUrl = "http://192.168.10.214:8120/upload/UploadBlob"; let vtUploadUrl = "http://192.168.5.214:8120/upload/UploadBlob";
let locationName = window.location.hostname; let locationName = window.location.hostname;
if (locationName.indexOf('testerp.oytour') !== -1) { if (locationName.indexOf('testerp.oytour') !== -1) {
vtUploadUrl = "http://upload.oytour.com/upload/UploadBlob"; vtUploadUrl = "http://upload.oytour.com/upload/UploadBlob";
......
...@@ -446,7 +446,7 @@ ...@@ -446,7 +446,7 @@
StuType: "", //客户类型 StuType: "", //客户类型
StuNeeds: 0, //客户需求 StuNeeds: 0, //客户需求
StuTel: "", //显示使用 StuTel: "", //显示使用
FileVoucher: ""//http://192.168.10.214:8130/EduSystem/Test/Upload/SetStudentVoucher/202303221126306360000000004.png FileVoucher: ""
}, },
//日语基础列表 //日语基础列表
basicList: [], basicList: [],
......
...@@ -68,18 +68,18 @@ ...@@ -68,18 +68,18 @@
cellpadding="0" v-loading="loading"> cellpadding="0" v-loading="loading">
<tr> <tr>
<th width="100" style="z-index: 999;">学生</th> <th width="100" style="z-index: 999;">学生</th>
<th width="100" >报名日期</th> <th width="100">报名日期</th>
<th width="70" >职业</th> <th width="70">职业</th>
<th width="80" >目的</th> <th width="80">目的</th>
<th width="100" >班主任</th> <th width="100">班主任</th>
<th width="200" >课程名称</th> <th width="200">课程名称</th>
<th width="80" >金额</th> <th width="80">金额</th>
<th>基本情况</th> <th style="min-width:250px;">基本情况</th>
<th width="200" >续费课程</th> <th width="200">续费课程</th>
<th width="80" >续费级别</th> <th width="80">续费级别</th>
<th width="80" >续费金额</th> <th width="80">续费金额</th>
<th width="80">最新进度</th>
<th width="90">负责人</th> <th width="90">负责人</th>
<th width="90">操作</th>
</tr> </tr>
<template v-if='dataObj&&dataObj.RList && dataObj.RList.length>0'> <template v-if='dataObj&&dataObj.RList && dataObj.RList.length>0'>
<tr v-for=" ( item , index ) in dataObj.RList " :key="index"> <tr v-for=" ( item , index ) in dataObj.RList " :key="index">
...@@ -92,14 +92,30 @@ ...@@ -92,14 +92,30 @@
{{ item.CreateTime }} {{ item.CreateTime }}
</td> </td>
<td> <td>
<div class="text-blue cursor-pointer" @click="getStuBaseInfo(item)"> <template v-if="item.StuProfession&&item.StuProfession!=''">
{{item.StuProfession}} <span class="text-blue cursor-pointer" style="cursor:pointer" @click="getStuBaseInfo(item,1)">
</div> {{item.StuProfession}}
<q-tooltip :offset="[10, 10]">
点击修改
</q-tooltip>
</span>
</template>
<template v-else>
<a class="text-blue cursor-pointer" style="cursor:pointer" @click="getStuBaseInfo(item,1)">添加</a>
</template>
</td> </td>
<td> <td>
<div class="text-blue cursor-pointer" @click="getStuBaseInfo(item)"> <template v-if="item.StuPurposeName&&item.StuPurposeName!=''">
{{ item.StuPurposeName }} <span class="text-blue cursor-pointer" style="cursor:pointer" @click="getStuBaseInfo(item,2)">
</div> {{item.StuPurposeName}}
<q-tooltip :offset="[10, 10]">
点击修改
</q-tooltip>
</span>
</template>
<template v-else>
<a class="text-blue cursor-pointer" style="cursor:pointer" @click="getStuBaseInfo(item,2)">添加</a>
</template>
</td> </td>
<td> <td>
<span v-html="getTeacherManager(item)"></span> <span v-html="getTeacherManager(item)"></span>
...@@ -128,6 +144,7 @@ ...@@ -128,6 +144,7 @@
<a style="color:blue;cursor:pointer;" v-if="item.FollowList.length>2" <a style="color:blue;cursor:pointer;" v-if="item.FollowList.length>2"
@click="item.IsShowFollowAll=!item.IsShowFollowAll">{{!item.IsShowFollowAll?"展开":"收起"}}</a> @click="item.IsShowFollowAll=!item.IsShowFollowAll">{{!item.IsShowFollowAll?"展开":"收起"}}</a>
</template> </template>
<a class="text-blue cursor-pointer" style="cursor:pointer" @click="getStuBaseInfo(item,3)">&nbsp;添加</a>
</td> </td>
<td> <td>
<div v-for="(sItem,sIndex) in item.RenewOrderList" style="border-bottom:1px dashed #d1d1d1;" <div v-for="(sItem,sIndex) in item.RenewOrderList" style="border-bottom:1px dashed #d1d1d1;"
...@@ -148,13 +165,10 @@ ...@@ -148,13 +165,10 @@
</div> </div>
</td> </td>
<td> <td>
{{ item.CreateByName?item.CreateByName:'-' }} {{item.NewLesson}}
</td> </td>
<td> <td>
<div class="text-blue cursor-pointer" @click="getStudentStudy(item)"> {{ item.CreateByName?item.CreateByName:'-' }}
学习情况
</div>
</td> </td>
</tr> </tr>
</template> </template>
...@@ -174,52 +188,53 @@ ...@@ -174,52 +188,53 @@
</studentFUForm> </studentFUForm>
<q-dialog v-model="isShowStuBaseInfo"> <q-dialog v-model="isShowStuBaseInfo">
<q-card style="width: 450px;"> <q-card style="width:450px;">
<q-card-section class="row items-center q-pb-none"> <q-card-section class="row items-center q-pb-none">
<div class="text-h6">【{{customObj.StuName}}】</div> <div class="text-h6">【{{customObj.StuName}}】</div>
<q-space /> <q-space />
<q-btn icon="close" flat round dense v-close-popup /> <q-btn icon="close" flat round dense v-close-popup />
</q-card-section> </q-card-section>
<q-separator /> <q-separator />
<q-card-section> <q-card-section>
<div style="width:100%;margin-bottom:15px;"> <div style="width:100%;margin-bottom:15px;" v-if="customObj.EditType==1">
<div style="width:12%;display:inline-block;">职业:</div><div style="width:87%;display:inline-block;"><q-input filled v-model="customObj.StuProfession" dense ></q-input></div> <div style="width:13%;display:inline-block;">职业:</div>
<div style="width:86%;display:inline-block;">
<q-input filled v-model="customObj.StuProfession" dense></q-input>
</div> </div>
</div>
<div style="width:100%;margin-bottom:15px;"> <div style="width:100%;margin-bottom:15px;" v-if="customObj.EditType==2">
<div style="width:12%;display:inline-block;">目的: </div><div style="width:87%;display:inline-block;"><q-select filled v-model="customObj.StuPurpose" dense :options="goalsList" option-label="Name" <div style="width:13%;display:inline-block;">目的: </div>
option-value="Id" emit-value map-options /></div> <div style="width:86%;display:inline-block;">
<q-select filled v-model="customObj.StuPurpose" dense :options="goalsList" option-label="Name"
option-value="Id" emit-value map-options />
</div> </div>
</div>
<div style="width:100%;margin-bottom:15px;"> <div style="width:100%;margin-bottom:15px;" v-if="customObj.EditType==3">
<div style="width:12%;display:inline-block;vertical-align:top;">跟进:</div> <div style="width:13%;display:inline-block;vertical-align:top;">基本<br/>情况:</div>
<div style="width:87%;display:inline-block;"> <UeEditor <div style="width:86%;display:inline-block;">
v-model="customObj.Remark" <UeEditor v-model="customObj.Remark" class="q-pb-sm" :config="config"></UeEditor>
class="q-pb-sm"
:config="config"
></UeEditor></div>
</div> </div>
</q-card-section> </div>
<q-separator /> </q-card-section>
<q-card-actions align="right" class="bg-white"> <q-separator />
<q-btn class="q-mr-md" label="取消" @click="clearMsg()" /> <q-card-actions align="right" class="bg-white">
<q-btn color="accent" class="q-mr-md" label="确定" @click="saveStu()" <q-btn class="q-mr-md" label="取消" @click="clearMsg()" />
:loading="stuloading" /> <q-btn color="accent" class="q-mr-md" label="确定" @click="saveStu()" :loading="stuloading" />
</q-card-actions> </q-card-actions>
</q-card> </q-card>
</q-dialog> </q-dialog>
</div> </div>
</template> </template>
<script> <script>
import studentRightForm from "./studentRight-form"; import studentRightForm from "./studentRight-form";
import studentFUForm from "./studentFu-form"; import studentFUForm from "./studentFu-form";
import { import {
getGuestLearningGoalsEnumList, getGuestLearningGoalsEnumList,
} from "../../../api/sale/sale"; } from "../../../api/sale/sale";
import { import {
saveStudentBaseInfo, //保存学员信息 saveStudentBaseInfo, //保存学员信息
} from "../../../api/school/index"; } from "../../../api/school/index";
import UeEditor from "../../editor/UeEditor"; import UeEditor from "../../editor/UeEditor";
export default { export default {
props: { props: {
//数据 //数据
...@@ -255,27 +270,28 @@ ...@@ -255,27 +270,28 @@
return { return {
isShowStuFU: false, isShowStuFU: false,
isShowStuRight: false, isShowStuRight: false,
isShowStuBaseInfo:false, isShowStuBaseInfo: false,
stuloading:false, stuloading: false,
//学习目的列表 //学习目的列表
goalsList: [], goalsList: [],
config: { config: {
initialFrameWidth: null, initialFrameWidth: null,
initialFrameHeight: 90 initialFrameHeight: 90
}, },
stuOption: {}, stuOption: {},
BelongType: 0, BelongType: 0,
ShowAuthObj: { ShowAuthObj: {
//是否显示同行、状态等信息 //是否显示同行、状态等信息
isShowSaleInfo: true, isShowSaleInfo: true,
}, },
//客户对象 //客户对象
customObj: { customObj: {
StuId: 0, StuId: 0,
StuProfession: "", //职业 StuProfession: "", //职业
StuPurpose: "", //学习目的 StuPurpose: "", //学习目的
Remark:"", Remark: "",
StuName:"", StuName: "",
EditType: 0, //1-修改职业,2-修改目的,3-添加跟进
}, },
}; };
}, },
...@@ -286,8 +302,8 @@ ...@@ -286,8 +302,8 @@
this.queryGoalsList(); this.queryGoalsList();
}, },
methods: { methods: {
//获取学习目的列表 //获取学习目的列表
queryGoalsList() { queryGoalsList() {
getGuestLearningGoalsEnumList({}).then(res => { getGuestLearningGoalsEnumList({}).then(res => {
this.goalsList = res.Data; this.goalsList = res.Data;
}); });
...@@ -315,40 +331,55 @@ ...@@ -315,40 +331,55 @@
} }
this.isShowStuRight = true; this.isShowStuRight = true;
}, },
//清除
getStudentStudy(obj) { clearMsg() {
console.log("obj",obj); this.customObj.Remark = "";
// var qObj = { this.customObj.StuId = 0;
// HeadTeacherId: item.AccountId, this.customObj.StuName = "";
// StartTime: this.msg.YearStr + "-" + this.msg.MonthStr + "-01", this.customObj.Remark = "";
// EndTime: this.msg.YearStr + "-" + this.msg.MonthStr + "-" + lastDay, this.customObj.StuProfession = "";
// }; this.customObj.StuPurpose = "";
// this.OpenNewUrl('/teacher/studentStudy', obj) this.customObj.EditType = 0;
}, this.stuloading = false;
//清除 this.isShowStuBaseInfo = false;
clearMsg() { },
this.customObj.Remark = ""; //保存学员信息
this.customObj.StuId = 0; saveStu() {
this.customObj.StuName = ""; if (this.customObj.EditType == 1) {
this.customObj.Remark = ""; if (this.customObj.StuProfession == '') {
this.customObj.StuProfession = ""; this.$q.notify({
this.customObj.StuPurpose = ""; type: "negative",
this.stuloading = false; position: "top",
this.isShowStuBaseInfo = false; timeout: 2000,
}, message: "请填写职业"
//保存学员信息 });
saveStu() { return;
if (this.customObj.Remark == "") { }
this.$q.notify({ }
type: "negative", if (this.customObj.EditType == 2) {
position: "top", if (this.customObj.StuPurpose == '') {
timeout: 2000, this.$q.notify({
message: "请输入内容!" type: "negative",
}); position: "top",
return; timeout: 2000,
} message: "请选择学习目的"
this.stuloading=true; });
saveStudentBaseInfo(this.customObj).then(res => { return;
}
}
if (this.customObj.EditType == 3) {
if (this.customObj.Remark == "") {
this.$q.notify({
type: "negative",
position: "top",
timeout: 2000,
message: "请输入内容!"
});
return;
}
}
this.stuloading = true;
saveStudentBaseInfo(this.customObj).then(res => {
if (res.Code == 1) { if (res.Code == 1) {
this.$q.notify({ this.$q.notify({
icon: "iconfont icon-chenggong", icon: "iconfont icon-chenggong",
...@@ -360,21 +391,22 @@ ...@@ -360,21 +391,22 @@
this.$emit("update"); this.$emit("update");
this.$emit("success"); this.$emit("success");
this.$emit("getrecord"); this.$emit("getrecord");
this.stuloading=false; this.stuloading = false;
this.isShowStuBaseInfo=false; this.isShowStuBaseInfo = false;
this.clearMsg(); this.clearMsg();
} }
}); });
}, },
//点击学生姓名弹出 //点击学生姓名弹出
getStuBaseInfo(obj) { getStuBaseInfo(obj, showType) {
if (obj) { if (obj) {
this.customObj.StuId = obj.StuId; this.customObj.StuId = obj.StuId;
this.customObj.StuName = obj.StuName; this.customObj.StuName = obj.StuName;
this.customObj.StuProfession = obj.StuProfession; this.customObj.StuProfession = obj.StuProfession;
this.customObj.StuPurpose = obj.StuPurpose; this.customObj.StuPurpose = obj.StuPurpose;
this.customObj.EditType = showType;
} }
this.stuloading=false; this.stuloading = false;
this.isShowStuBaseInfo = true; this.isShowStuBaseInfo = true;
}, },
//关闭弹窗 //关闭弹窗
......
...@@ -2014,11 +2014,7 @@ ...@@ -2014,11 +2014,7 @@
data() { data() {
return { return {
saveMsg: [ saveMsg: [
// {
// Type: 3,
// Content:'http://192.168.10.214:8130/EduSystem/Test/Upload/Temporary/202311131052426600000000001.png',
// Url:'http://192.168.10.214:8130/EduSystem/Test/Upload/Temporary/202311131052426600000000001.png'
// }
], ],
TeamShouZhi: false, TeamShouZhi: false,
F_Disbursement_Schedule: false, F_Disbursement_Schedule: false,
......
...@@ -170,6 +170,7 @@ ...@@ -170,6 +170,7 @@
font-weight: 600; font-weight: 600;
margin-right: 10px; margin-right: 10px;
} }
</style> </style>
<template> <template>
<div :class="[ <div :class="[
...@@ -290,6 +291,19 @@ ...@@ -290,6 +291,19 @@
:options="MyTransListData" option-label="StuName" @input="resetSearch" clearable option-value="StuId" :options="MyTransListData" option-label="StuName" @input="resetSearch" clearable option-value="StuId"
emit-value map-options /> emit-value map-options />
</div> </div>
<div class="col-3">
<q-select filled v-model="msg.Teacher_Id" dense use-input label="班主任" :options="MyTeacherListData"
option-label="EmployeeName" @input="resetSearch" @filter="filterTeacher" clearable option-value="Id"
emit-value map-options>
<template v-slot:no-option>
<q-item>
<q-item-section class="text-grey">
未找到相关数据
</q-item-section>
</q-item>
</template>
</q-select>
</div>
</div> </div>
</div> </div>
<div class="col row wrap q-gutter-x-md" v-if="staticObj && !isComponent"> <div class="col row wrap q-gutter-x-md" v-if="staticObj && !isComponent">
...@@ -426,11 +440,7 @@ ...@@ -426,11 +440,7 @@
<q-item-label overline>添加事件</q-item-label> <q-item-label overline>添加事件</q-item-label>
</q-item-section> </q-item-section>
</q-item> </q-item>
<!-- <q-item dense clickable v-close-popup @click="showChangeCourse(props.row)">
<q-item-section>
<q-item-label overline >跳课</q-item-label>
</q-item-section>
</q-item> -->
</q-list> </q-list>
</q-btn-dropdown> </q-btn-dropdown>
</div> </div>
...@@ -559,7 +569,8 @@ ...@@ -559,7 +569,8 @@
GuestState: "", //学员状态 GuestState: "", //学员状态
CreateType: "", //客户来源 CreateType: "", //客户来源
StuChannelId: "", //收客渠道 StuChannelId: "", //收客渠道
StuSourceId: "" StuSourceId: "",
Teacher_Id: "", //班主任
}, },
pageCount: 0, pageCount: 0,
columns: [{ columns: [{
...@@ -569,7 +580,6 @@ ...@@ -569,7 +580,6 @@
align: "left", align: "left",
required: true required: true
}, },
{ {
name: "GuestName", name: "GuestName",
label: "姓名", label: "姓名",
...@@ -812,7 +822,9 @@ ...@@ -812,7 +822,9 @@
courseName: "", courseName: "",
isShowChangeCourse: false, isShowChangeCourse: false,
ChangeCourseObj: {}, ChangeCourseObj: {},
staticObj: {} //学生统计信息 staticObj: {}, //学生统计信息
MyTeacherListData: [], //查询老师列表
AllTeacherList: [], //所有教师列表
}; };
}, },
created() { created() {
...@@ -864,6 +876,7 @@ ...@@ -864,6 +876,7 @@
this.GetStuChannelList(); this.GetStuChannelList();
this.GetCustomerList(); this.GetCustomerList();
this.getEmployeeList(); this.getEmployeeList();
this.findData();
} else { } else {
this.msg.rowsPerPage = this.pageSize; this.msg.rowsPerPage = this.pageSize;
this.loading = this.outLoading; this.loading = this.outLoading;
...@@ -871,6 +884,18 @@ ...@@ -871,6 +884,18 @@
} }
}, },
methods: { methods: {
//获取班主任
findData() {
queryEmployee({
AccountTypeStr: "2",
IsLeave: 1
}).then(res => {
if (res.Code == 1) {
this.MyTeacherListData = res.Data;
this.AllTeacherList = res.Data;
}
})
},
//获取收客渠道 //获取收客渠道
GetStuChannelList() { GetStuChannelList() {
GetStuChannelList({}).then(res => { GetStuChannelList({}).then(res => {
...@@ -1010,6 +1035,18 @@ ...@@ -1010,6 +1035,18 @@
} }
}); });
}, },
filterTeacher(val, update) {
update(() => {
if (val === "") {
this.MyTeacherListData = JSON.parse(JSON.stringify(this.AllTeacherList));
} else {
const needle = val.toLowerCase();
this.MyTeacherListData = this.AllTeacherList.filter(
v => v.EmployeeName.toLowerCase().indexOf(needle) > -1
);
}
});
},
//筛选课程 //筛选课程
filterCourse(val, update) { filterCourse(val, update) {
update(() => { update(() => {
...@@ -1268,7 +1305,9 @@ ...@@ -1268,7 +1305,9 @@
} }
} }
}; };
</script> </script>
<style lang="sass"> <style lang="sass">
@import url('~assets/css/table.sass') @import url('~assets/css/table.sass')
</style>
\ No newline at end of file </style>
...@@ -58,151 +58,26 @@ ...@@ -58,151 +58,26 @@
maxlength="20" /> maxlength="20" />
</div> </div>
<div class="col-3"> <div class="col-3">
<q-input @keyup.enter.native="resetSearch" dense clearable filled v-model="msg.StuRealMobile" label="电话" <q-select @input="resetSearch" dense filled option-value="SId" option-label="SName" v-model="msg.School_Id"
maxlength="20" /> :options="CompanyList" emit-value map-options label="校区" />
</div>
<div class="col-3">
<q-input @keyup.enter.native="resetSearch" dense clearable filled v-model="msg.QQ" label="QQ"
maxlength="20" />
</div>
<div class="col-3">
<q-input @keyup.enter.native="resetSearch" dense clearable filled v-model="msg.WeChatNo" label="微信号"
maxlength="20" />
</div>
<div class="col-3">
<q-select @input="resetSearch" filled v-model="msg.StuType" dense clearable :options="customTypeList"
option-label="Name" option-value="Id" emit-value map-options label="客户类型" />
</div> </div>
<div class="col-3"> <div class="col-3">
<q-select @input="resetSearch" dense filled v-model="msg.AdvisorStatus" :options="AdvConfigList" <q-select filled v-model="msg.QGuestState" dense use-input label="状态" :options="isMyStuList"
option-label="Name" option-value="Id" emit-value map-options label="当前状态" clearable /> option-label="Name" @input="resetSearch" clearable option-value="Id" emit-value map-options />
</div> </div>
<div class="col-3"> <div class="col-3">
<q-select filled v-model="msg.StuPurpose" dense @input="resetSearch" clearable :options="goalsList" <q-select filled v-model="msg.HeadTeacherId" dense use-input label="班主任" :options="MyTeacherListData"
option-label="Name" option-value="Id" emit-value map-options label="学习目的" /> option-label="EmployeeName" @input="resetSearch" clearable option-value="Id" @filter="filterTeacher"
emit-value map-options />
</div> </div>
<div class="col-3">
<q-field filled dense>
<template v-slot:control>
<el-date-picker v-model="dateArray" size="mini" @change="resetSearch" value-format="yyyy-MM-dd"
type="daterange" style="border:none;" range-separator="至" start-placeholder="跟进开始时间"
end-placeholder="跟进结束时间" />
</template>
</q-field>
</div>
<template v-if="morequery">
<div class="col-3">
<q-select @input="resetSearch" dense filled option-value="SId" option-label="SName" v-model="msg.School_Id"
:options="CompanyList" emit-value map-options label="校区" />
</div>
<div class="col-3">
<q-select @input="resetSearch" filled option-value="CourseId" option-label="CourseName"
v-model="msg.CourseId" clearable emit-value use-input :options="myCourseList" label="课程" dense map-options
@filter="filterFnkec" />
</div>
<div class="col-3">
<q-select @input="resetSearch" dense filled option-value="Id" option-label="EmployeeName"
v-model="msg.ConsultantId" clearable :options="RoleListData" emit-value map-options label="课程顾问" />
</div>
<!-- <div class="col-3">
<q-select @input="resetSearch" dense filled option-value="Id" option-label="Name"
v-model="msg.StuGuestState" clearable :options="hetongList" emit-value map-options label="合同状态" />
</div> -->
<div class="col-3">
<q-select @input="msg.StuSourceId='',msg.StuChannel='',resetSearch()" dense clearable filled
option-value="Id" option-label="Name" v-model="msg.CreateType" :options="customFromList" emit-value
map-options label="客户来源" />
</div>
<div class="col-3" v-if="msg.CreateType==1">
<q-select filled v-model="msg.StuChannel" @input="resetSearch" label="收客渠道" dense :options="StuChannelList"
option-label="Name" option-value="Id" emit-value map-options use-input clearable
@filter="filterStuChannel">
<template v-slot:no-option>
<q-item>
<q-item-section class="text-grey">
未找到相关数据
</q-item-section>
</q-item>
</template>
</q-select>
</div>
<div class="col-3" v-if="msg.CreateType==2">
<q-select filled v-model="msg.StuSourceId" dense :options="customList" use-input label="关联同行"
@filter="filterFn" option-label="CustomerName" @input="resetSearch" clearable option-value="CustomerId"
emit-value map-options>
<template v-slot:no-option>
<q-item>
<q-item-section class="text-grey">
未找到相关数据
</q-item-section>
</q-item>
</template>
</q-select>
</div>
<div class="col-3" v-if="msg.CreateType==3">
<q-select filled v-model="msg.StuSourceId" dense @filter="filterEmployee" label="介绍人" use-input
:options="myEmployeeList" option-label="EmployeeName" @input="resetSearch" clearable option-value="Id"
emit-value map-options />
</div>
<div class="col-3" v-if="msg.CreateType==4">
<q-select filled v-model="msg.StuSourceId" dense use-input @filter="filterStudent" label="转介人"
:options="MyTransListData" option-label="StuName" @input="resetSearch" clearable option-value="StuId"
emit-value map-options />
</div>
<div class="col-3">
<q-select filled v-model="msg.HeadTeacherId" dense use-input label="班主任" :options="MyTeacherListData"
option-label="EmployeeName" @input="resetSearch" clearable option-value="Id" emit-value map-options />
</div>
<div class="col-3">
(
<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' />
</div>
</template>
</div> </div>
</div> </div>
<div style="width: 100%;text-align: right;padding: 0 20px;margin-bottom: 10px;"> <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 @click="morequery=!morequery" style="display:inline-flex;align-items:center;cursor: pointer;">
<q-btn color="accent" class="q-mr-md" size="sm" icon="download" label="下载" v-if="isHaveDownLoad" <q-btn color="accent" class="q-mr-md" size="sm" icon="download" label="下载" v-if="isHaveDownLoad"
@click="downloadStudentFollow" /> @click="downloadStudentFollow" />
<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> </span>
</div> </div>
<!-- <div class="col row wrap q-gutter-x-md" v-if="dataList&&dataList.Stat" >
<div class="col stics">
<span class="stics-name">学生总数</span>
<span>{{dataList.Stat.StuTNum?dataList.Stat.StuTNum:0}}人</span>
</div>
<div class="col stics">
<span class="stics-name">续费数量</span>
<span style="color: #F72E52">{{dataList.Stat.RenewNum?dataList.Stat.RenewNum:0}}人</span>
</div>
<div class="col stics">
<span class="stics-name">新生数量</span>
<span style="color:#2961FE;">{{dataList.Stat.NewNum?dataList.Stat.NewNum:0}}人</span>
</div>
<div class="col stics">
<span class="stics-name">学习中数量</span>
<span>{{dataList.Stat.StudyNum?dataList.Stat.StudyNum:0}}人</span>
</div>
<div class="col stics">
<span class="stics-name">毕业数量</span>
<span>{{dataList.Stat.GraduateNum?dataList.Stat.GraduateNum:0}}人</span>
</div>
<div class="col stics">
<span class="stics-name">停课数量</span>
<span>{{dataList.Stat.SuspendNum?dataList.Stat.SuspendNum:0}}人</span>
</div>
<div class="col stics">
<span class="stics-name">退学数量</span>
<span>{{dataList.Stat.DropOutNum?dataList.Stat.DropOutNum:0}}人</span>
</div>
</div> -->
<div style="width: 100%;margin-top: 20px"> <div style="width: 100%;margin-top: 20px">
<stufollowlist :dataObj="dataList" :RListlength="RListlength" @success="refreshPage" :titlelist="titlelist" <stufollowlist :dataObj="dataList" :RListlength="RListlength" @success="refreshPage" :titlelist="titlelist"
:loading="loading" ref="stuFollowList" :AuthObj="AuthObj"></stufollowlist> :loading="loading" ref="stuFollowList" :AuthObj="AuthObj"></stufollowlist>
...@@ -222,7 +97,6 @@ ...@@ -222,7 +97,6 @@
queryEmployee, queryEmployee,
} from "../../api/users/user"; } from "../../api/users/user";
import { import {
queryGuestStateList,
CreateTypeList, CreateTypeList,
GetStuChannelList, GetStuChannelList,
GetCustomerList, GetCustomerList,
...@@ -263,26 +137,10 @@ ...@@ -263,26 +137,10 @@
pageSize: 10, pageSize: 10,
rowsPerPage: 10, rowsPerPage: 10,
StuName: "", StuName: "",
StuRealMobile: '',
QQ: '',
WeChatNo: '',
StuType: '', //学生类型
StuGuestState: '0', //合同状态
SFTime: '',
EFTime: '',
StuStage: '', //客户状态
Q_FType: '1', //跟进类型 1范围内有跟进记录 2范围内没有跟进记录
CreateIds: [],
School_Id: '-1', //校区 School_Id: '-1', //校区
CourseId: '', //课程
ConsultantId: '', //课程顾问
CreateType: '', //客户来源
StuChannel: "", //收客渠道
StuSourceId: '',
StuPurpose: '', //学习目的
HeadTeacherId: '', //老师 HeadTeacherId: '', //老师
QueryTpye: 2, //老师查询 QueryTpye: 2, //老师查询
AdvisorStatus: "", //当前状态 QGuestState: 0, //学员状态
}, },
loading: false, loading: false,
dataList: null, //列表数据 dataList: null, //列表数据
...@@ -294,24 +152,12 @@ ...@@ -294,24 +152,12 @@
Name: '不限' Name: '不限'
}, { }, {
Id: '1', Id: '1',
Name: '是' Name: '未毕业'
}, {
Id: '0',
Name: '否'
}, ],
hetongList: [{
Id: '1',
Name: '正常'
}, { }, {
Id: '2', Id: '2',
Name: '退学' Name: '已毕业'
}, { }],
Id: '5',
Name: '停课'
}, {
Id: '7',
Name: '毕业'
}, ],
dateArray: [], //日期数组 dateArray: [], //日期数组
RListlength: 0, RListlength: 0,
titlelist: [], titlelist: [],
...@@ -334,6 +180,7 @@ ...@@ -334,6 +180,7 @@
MyTransListData: [], MyTransListData: [],
goalsList: [], //学习目的列表 goalsList: [], //学习目的列表
MyTeacherListData: [], //查询老师列表 MyTeacherListData: [], //查询老师列表
AllTeacherList: [], //所有教师
AdvConfigList: [], //客户状态列表 AdvConfigList: [], //客户状态列表
AuthObj: { AuthObj: {
isShowSaleInfo: false, isShowSaleInfo: false,
...@@ -386,6 +233,18 @@ ...@@ -386,6 +233,18 @@
this.getList(); //获取列表 this.getList(); //获取列表
}, },
methods: { methods: {
filterTeacher(val, update) {
update(() => {
if (val === "") {
this.MyTeacherListData = JSON.parse(JSON.stringify(this.AllTeacherList));
} else {
const needle = val.toLowerCase();
this.MyTeacherListData = this.AllTeacherList.filter(
v => v.EmployeeName.toLowerCase().indexOf(needle) > -1
);
}
});
},
//获取状态列表 //获取状态列表
getAdvConfigList() { getAdvConfigList() {
let msg = { let msg = {
...@@ -409,6 +268,7 @@ ...@@ -409,6 +268,7 @@
}).then(res => { }).then(res => {
if (res.Code == 1) { if (res.Code == 1) {
this.MyTeacherListData = res.Data; this.MyTeacherListData = res.Data;
this.AllTeacherList = res.Data;
} }
}) })
}, },
......
...@@ -95,7 +95,6 @@ ...@@ -95,7 +95,6 @@
<input v-model="uploadParm.params.ExamName" class="examList-popup-name" placeholder="请输入考试名称"/> <input v-model="uploadParm.params.ExamName" class="examList-popup-name" placeholder="请输入考试名称"/>
<div class="diy-upload-class"> <div class="diy-upload-class">
<!-- https://jjswapi.oytour.com --> <!-- https://jjswapi.oytour.com -->
<!-- http://192.168.10.36:8082 -->
<el-upload class="avatar-uploader" <el-upload class="avatar-uploader"
:data="uploadParm" :data="uploadParm"
name="myfile" name="myfile"
......
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