Commit 76bbd442 authored by liudong1993's avatar liudong1993
parents 0218700f 1582f3ec
<template>
<div class="col"></div>
</template>
<script>
export default {
props: {
targetBox: {
type: String,
required: true
},
targetWrap: {
type: String,
required: true
}
},
data() {
return {};
},
methods: {
createResizeObserver() {
this.resizeObserver = new ResizeObserver(entries => {
for (let entry of entries) {
console.log("Element size changed:", entry.contentRect);
// 你可以在这里处理大小变化的逻辑
}
});
this.resizeObserver.observe(this.$refs.resizeElement);
},
destroyResizeObserver() {
if (this.resizeObserver) {
this.resizeObserver.disconnect();
}
}
},
mounted() {
this.createResizeObserver();
},
beforeDestroy() {
this.destroyResizeObserver();
}
};
</script>
<style>
.scroll-box::-webkit-scrollbar {
width: 6px;
height: 6px;
}
.scroll-box::-webkit-scrollbar-thumb {
background-color: #888;
border-radius: 6px;
}
.scroll-box::-webkit-scrollbar-thumb:hover {
background-color: #555;
}
.scroll-box::-webkit-scrollbar-track {
background-color: #f1f1f1;
}
</style>
...@@ -98,7 +98,7 @@ ...@@ -98,7 +98,7 @@
</q-item> </q-item>
</template> </template>
</q-select> </q-select>
<q-select :disable="(modityOrderType==2)||(OrderMsg.JoinType==3)" v-model="OrderMsg.CourseConsultantId" <!-- <q-select :disable="(modityOrderType==2)||(OrderMsg.JoinType==3)" v-model="OrderMsg.CourseConsultantId"
:options="EmployeeList" filled use-input label="课程顾问" option-label="EmployeeName" option-value="Id" :options="EmployeeList" filled use-input label="课程顾问" option-label="EmployeeName" option-value="Id"
ref="EmployeeName" class="col-6 q-pb-lg" emit-value map-options @filter="filterFn"> ref="EmployeeName" class="col-6 q-pb-lg" emit-value map-options @filter="filterFn">
<template v-slot:no-option> <template v-slot:no-option>
...@@ -108,7 +108,7 @@ ...@@ -108,7 +108,7 @@
</q-item-section> </q-item-section>
</q-item> </q-item>
</template> </template>
</q-select> </q-select> -->
<q-select style="display:none;" :disable="(modityOrderType==2)||(OrderMsg.JoinType==3)" v-model="OrderMsg.CustomerId" <q-select style="display:none;" :disable="(modityOrderType==2)||(OrderMsg.JoinType==3)" v-model="OrderMsg.CustomerId"
:options="myCustomerList" filled use-input label="同行" option-label="CustomerName" option-value="CustomerId" :options="myCustomerList" filled use-input label="同行" option-label="CustomerName" option-value="CustomerId"
ref="CustomerName" class="col-6 q-pb-lg" emit-value map-options @filter="cusfilterFn"> ref="CustomerName" class="col-6 q-pb-lg" emit-value map-options @filter="cusfilterFn">
......
...@@ -280,11 +280,11 @@ ...@@ -280,11 +280,11 @@
<div class="customer_info_component"> <div class="customer_info_component">
<div class="customer_info_Stage"> <div class="customer_info_Stage">
<div class="stage_label"> <div class="stage_label">
<span class="student_require">*</span>留学类型 <span class="student_require">*</span>学员类型
</div> </div>
<div class="stage_value"> <div class="stage_value">
<q-select filled v-model="customObj.StudentType" style="width:185px" dense :options="StudentTypeList" <q-select filled v-model="customObj.StudentType" style="width:185px" dense :options="StudentTypeList"
:disable="noEdit" option-label="Name" option-value="Id" emit-value map-options label="留学类型" /> :disable="noEdit" option-label="Name" option-value="Id" emit-value map-options label="学员类型" />
</div> </div>
</div> </div>
</div> </div>
...@@ -300,7 +300,7 @@ ...@@ -300,7 +300,7 @@
</div> </div>
</div> </div>
</div> --> </div> -->
<div class="customer_info_component"> <div class="customer_info_component" style="display:none;">
<div class="customer_info_Stage"> <div class="customer_info_Stage">
<div class="stage_label"> <div class="stage_label">
到访表 到访表
...@@ -471,7 +471,7 @@ ...@@ -471,7 +471,7 @@
StuNeeds: 0, //客户需求 StuNeeds: 0, //客户需求
StuTel: "", //显示使用 StuTel: "", //显示使用
FileVoucher: "", FileVoucher: "",
TelType: 4, //电话关联人员 TelType: 3, //电话关联人员
StudentType:this.StudentType, StudentType:this.StudentType,
}, },
//日语基础列表 //日语基础列表
...@@ -494,10 +494,10 @@ ...@@ -494,10 +494,10 @@
MyTransListData: [], MyTransListData: [],
StudentTypeList:[{ StudentTypeList:[{
Id:1, Id:1,
Name:"普通", Name:"普通客户",
},{ },{
Id:2, Id:2,
Name:"留学", Name:"留学客户",
}], }],
checkMsg: { checkMsg: {
StuId: 0, StuId: 0,
......
...@@ -73,9 +73,9 @@ ...@@ -73,9 +73,9 @@
@click="pushMode = true" /> @click="pushMode = true" />
<!-- <q-btn color="accent" outline class="q-mr-md" size="sm" icon="swap_horiz" label="推送课程顾问" <!-- <q-btn color="accent" outline class="q-mr-md" size="sm" icon="swap_horiz" label="推送课程顾问"
v-if="userInfo.IsCourseConsultant == 0" @click="pushMode = true" /> --> v-if="userInfo.IsCourseConsultant == 0" @click="pushMode = true" /> -->
<q-btn color="accent" v-if="StudentType !=2" class="q-mr-md" size="sm" icon="swap_horiz" label="转订单" <q-btn color="accent" class="q-mr-md" size="sm" icon="swap_horiz" label="转订单"
:disable="selection.length === 0" @click="transferOrder" /> :disable="selection.length === 0" @click="transferOrder" />
<q-btn color="accent" v-if="StudentType==2" class="q-mr-md" size="sm" icon="swap_horiz" label="转留学" <q-btn color="accent" class="q-mr-md" size="sm" icon="swap_horiz" label="转留学"
:disable="selection.length === 0" @click="transferAbroad" /> :disable="selection.length === 0" @click="transferAbroad" />
<q-btn color="accent" class="q-mr-md" size="sm" icon="add" label="新增学员" @click="EditStudent(null)" /> <q-btn color="accent" class="q-mr-md" size="sm" icon="add" label="新增学员" @click="EditStudent(null)" />
<q-btn v-if="authObj && authObj.isShowDownload&&IsDownLoadStu()" color="accent" class="q-mr-md" size="sm" <q-btn v-if="authObj && authObj.isShowDownload&&IsDownLoadStu()" color="accent" class="q-mr-md" size="sm"
...@@ -265,7 +265,7 @@ ...@@ -265,7 +265,7 @@
:checkType="checkType" :save-obj="stuOption" @close="closeStuForm" @success="refreshStuList" :checkType="checkType" :save-obj="stuOption" @close="closeStuForm" @success="refreshStuList"
@reload="referDataHandler"> @reload="referDataHandler">
</studentRight-form> </studentRight-form>
<studentAdd-form v-if="isShowAdd" :StudentType="StudentType" :save-obj="stuOption" @close="closeStuForm" @success="refreshStuList"> <studentAdd-form v-if="isShowAdd" :save-obj="stuOption" @close="closeStuForm" @success="refreshStuList">
</studentAdd-form> </studentAdd-form>
<transfer-order v-if="isShowTransfer" :select="selection" @close="closeStuForm" @success="refreshStuList"> <transfer-order v-if="isShowTransfer" :select="selection" @close="closeStuForm" @success="refreshStuList">
</transfer-order> </transfer-order>
...@@ -309,10 +309,6 @@ ...@@ -309,10 +309,6 @@
type: Array, type: Array,
default: null default: null
}, },
StudentType: {
type: Number,
default: 1
},
//是否显示转交按钮 //是否显示转交按钮
isJudgeTrans: { isJudgeTrans: {
type: Number, type: Number,
...@@ -367,11 +363,11 @@ ...@@ -367,11 +363,11 @@
align: "left", align: "left",
field: row => row.StuName field: row => row.StuName
}, },
// { {
// name: "CurseManager", name: "CurseManager",
// label: "课程顾问", label: "课程顾问",
// align: "left" align: "left"
// }, },
{ {
name: "TeacherManager", name: "TeacherManager",
label: "协助老师", label: "协助老师",
...@@ -382,12 +378,12 @@ ...@@ -382,12 +378,12 @@
label: "是否报名", label: "是否报名",
align: "left" align: "left"
}, },
// { {
// name: "VisitCount", name: "VisitCount",
// label: "到访次数", label: "到访次数",
// field: "VisitCount", field: "VisitCount",
// align: "left" align: "left"
// }, },
{ {
name: "TrialLessonCount", name: "TrialLessonCount",
label: "试听次数", label: "试听次数",
...@@ -827,8 +823,8 @@ ...@@ -827,8 +823,8 @@
let CreateTimeStr2 = date.formatDate(new Date('2023-03-22'), 'YYYY-MM-DD') let CreateTimeStr2 = date.formatDate(new Date('2023-03-22'), 'YYYY-MM-DD')
if (CreateTimeStr >= CreateTimeStr2) { if (CreateTimeStr >= CreateTimeStr2) {
if (!this.selection[0].FileVoucher) { if (!this.selection[0].FileVoucher) {
// this.$message.error('需先上传学员到访表') this.$message.error('需先上传学员到访表')
// return return
} }
} }
const firstId = this.selection[0].CustomerId; const firstId = this.selection[0].CustomerId;
...@@ -836,12 +832,12 @@ ...@@ -836,12 +832,12 @@
return e.CustomerId == firstId; return e.CustomerId == firstId;
}); });
if (!flag) { if (!flag) {
// this.$q.notify({ this.$q.notify({
// type: "negative", type: "negative",
// position: "top", position: "top",
// message: `所属同行不一致,请重新选择` message: `所属同行不一致,请重新选择`
// }); });
// return; return;
} }
this.isShowTransfer = true; this.isShowTransfer = true;
}, },
...@@ -851,8 +847,8 @@ ...@@ -851,8 +847,8 @@
let CreateTimeStr2 = date.formatDate(new Date('2023-03-22'), 'YYYY-MM-DD') let CreateTimeStr2 = date.formatDate(new Date('2023-03-22'), 'YYYY-MM-DD')
if (CreateTimeStr >= CreateTimeStr2) { if (CreateTimeStr >= CreateTimeStr2) {
if (!this.selection[0].FileVoucher) { if (!this.selection[0].FileVoucher) {
// this.$message.error('需先上传学员到访表') this.$message.error('需先上传学员到访表')
// return return
} }
} }
this.isShowAbroad = true; this.isShowAbroad = true;
......
...@@ -27,8 +27,8 @@ ...@@ -27,8 +27,8 @@
</div> </div>
<div class="col-3"> <div class="col-3">
<div class="col-3 Sysuser_Date"> <div class="col-3 Sysuser_Date">
<q-field filled> <q-field filled>
 <template v-slot:control> <template v-slot:control>
<el-date-picker v-model="msg.StartDate" type="date" placeholder="开始日期" value-format="yyyy-MM-dd" <el-date-picker v-model="msg.StartDate" type="date" placeholder="开始日期" value-format="yyyy-MM-dd"
size="small" style="width:47%;" @change="refreshPage" clear-icon="iconfont icon-guanbi"> size="small" style="width:47%;" @change="refreshPage" clear-icon="iconfont icon-guanbi">
</el-date-picker> </el-date-picker>
......
<template>
<!-- <div class="page-body" style="height:calc(100% - 30px);"> -->
<div class="sptable-box">
<div class="sptable-wrap">
<table class="sptable">
<thead>
<tr class="sticky-header">
<th class="sticky-column">Header 1</th>
<th>Header 2</th>
<th>Header 3</th>
<th>Header 4</th>
<th>Header 1</th>
<th>Header 2</th>
<th>Header 3</th>
<th>Header 4</th>
<th>Header 1</th>
<th>Header 2</th>
<th>Header 3</th>
<th>Header 4</th>
<th>Header 1</th>
<th>Header 2</th>
<th>Header 3</th>
<th>Header 4</th>
<th>Header 1</th>
<th>Header 2</th>
<th>Header 3</th>
<th>Header 4</th>
<!-- 更多表头列... -->
</tr>
</thead>
<tbody>
<!-- 表格内容 -->
<tr v-for="i in 50" :key="i">
<td class="sticky-column">1</td>
<td>1</td>
<td>1</td>
<td>1</td>
<td>1</td>
<td>1</td>
<td>1</td>
<td>1</td>
<td>1</td>
<td>1</td>
<td>1</td>
<td>1</td>
<td>1</td>
<td>1</td>
<td>1</td>
<td>1</td>
<td>1</td>
<td>1</td>
<td>1</td>
<td>1</td>
</tr>
</tbody>
</table>
</div>
<div class="cusor-tools row">
<div class="item active">N5</div>
<div class="item">N4</div>
<div class="item">N3</div>
<div class="item">N2</div>
<div class="item">N1</div>
<div class="item">一对一中教</div>
</div>
</div>
<!-- </div> -->
</template>
<script>
import scrollBar from 'src/components/common/scrollBar.vue';
export default {
meta: {
title: "学员学习进度表"
},
data() {
return {};
},
methods: {}
};
</script>
<style>
.sptable-box {
width: 100%;
height: 100%;
overflow: auto;
overflow: overlay;
padding-bottom: 20px;
}
.sptable-box .sptable-wrap{
position: relative;
}
.sptable-box::-webkit-scrollbar {
width: 6px;
height: 6px;
}
.sptable-box::-webkit-scrollbar-thumb {
background-color: #888;
border-radius: 6px;
}
.sptable-box::-webkit-scrollbar-thumb:hover {
background-color: #555;
}
.sptable-box::-webkit-scrollbar-track {
background-color: #f1f1f1;
}
.sptable {
border-collapse: collapse;
border: 1px solid #000;
border-top: none;
min-width: 100%;
}
.sptable td,
.sptable th {
border-right: 1px solid #000;
border-bottom: 1px solid #000;
padding: 3px 6px;
min-width: 200px;
}
.sptable tr td:last-child {
border-right: none;
}
.sptable tr:last-child td:last-child {
border: none;
}
.sptable .sticky-header th{
position: sticky;
top: 0px;
background: #FFF;
z-index: 2;
border-bottom: none;
}
.sptable .sticky-column {
position: sticky;
left: 0px;
background: #FFF;
box-shadow: inset -4px -2px 0px -3px #1FBB7D;
border-right:0;
z-index: 1;
}
.sptable .sticky-header th::before,
.sptable .sticky-header th::after,
.sptable .sticky-column::before{
position: absolute;
content: '';
display: block;
width: 1px;
background: #000;
top: 0;
left: -1px;
bottom: 0;
z-index: 5;
height: 100%;
}
.sptable .sticky-header th::before{
top: 0;
left: 0;
width: 100%;
height: 1px;
}
.sptable .sticky-header th::after{
top: unset;
bottom: 0;
left: 0;
width: 100%;
height: 1px;
background: #1FBB7D;
}
.sptable .sticky-header .sticky-column {
z-index: 3;
border-right:0;
}
.sptable-box .cusor-tools{
position: absolute;
left: 0;
right: 0;
bottom: 0;
height: 27px;
background: #E3E6ED;
border-top: 1px solid #C9CCD2;
border-bottom: 1px solid #C9CCD2;
border-left: 1px solid #000;
border-right: 1px solid #000;
z-index: 9;
padding: 0 30px;
}
.sptable-box .cusor-tools .item{
height: 22px;
line-height: 22px;
border:1px solid transparent;
border-radius: 5px;
border-top-left-radius: 0;
border-top-right-radius: 0;
font-size: 12px;
color:#000;
padding: 0 15px;
cursor: pointer;
position: relative;
}
.sptable-box .cusor-tools .item:hover{
background: #CFCFCF;
}
.sptable-box .cusor-tools .item.active{
background: #FFF !important;
cursor: default !important;
border-color: #C9CCD2;
border-top: transparent;
margin-top: -1px;
font-weight: bold;
color: #007A6B;
height: 23px;
line-height: 23px;
}
</style>
...@@ -52,8 +52,8 @@ ...@@ -52,8 +52,8 @@
</div> </div>
<div class="col-3"> <div class="col-3">
<q-select @input="getClassList" standout="bg-primary text-white" v-model="msg.CourseSubject" <q-select @input="getClassList" standout="bg-primary text-white" v-model="msg.CourseSubject"
:options="CourseSubjectList" option-label="SubjectName" option-value="Id" emit-value map-options label="所属科目" :options="CourseSubjectList" option-label="SubjectName" option-value="Id" emit-value map-options
clearable /> label="所属科目" clearable />
</div> </div>
<div class="col-3"> <div class="col-3">
<q-select @input="getClassList" standout="bg-primary text-white" option-value="Id" option-label="Name" <q-select @input="getClassList" standout="bg-primary text-white" option-value="Id" option-label="Name"
...@@ -67,6 +67,18 @@ ...@@ -67,6 +67,18 @@
<q-input @change="getClassList" clearable standout="bg-primary text-white" v-model="msg.CourseName" <q-input @change="getClassList" clearable standout="bg-primary text-white" v-model="msg.CourseName"
label="学习课程" @clear="getClassList" maxlength="20" /> label="学习课程" @clear="getClassList" maxlength="20" />
</div> </div>
<div class="col-3">
<q-input v-model="msg.StartTime" mask="date" label="开班时间" standout="bg-primary text-white" @update:model-value="()=>getClassList">
<template v-slot:append>
<q-icon name="event" class="cursor-pointer">
<q-popup-proxy ref="qCStartTime" transition-show="scale" transition-hide="scale">
<q-date v-model="msg.StartTime" mask="YYYY-MM-DD" @input="() =>changeDate()"
@update:model-value="()=>getClassList" />
</q-popup-proxy>
</q-icon>
</template>
</q-input>
</div>
<div class="col-3"> <div class="col-3">
<q-select @input="getClassList" standout="bg-primary text-white" option-value="SId" option-label="SName" <q-select @input="getClassList" standout="bg-primary text-white" option-value="SId" option-label="SName"
v-model="msg.School_Id" :options="schoolList" emit-value map-options label="关联校区" /> v-model="msg.School_Id" :options="schoolList" emit-value map-options label="关联校区" />
...@@ -116,6 +128,8 @@ ...@@ -116,6 +128,8 @@
School_Id: -1, //关联校区 School_Id: -1, //关联校区
ClassNo: '', //班号 ClassNo: '', //班号
CourseSubject: "", //所属科目 CourseSubject: "", //所属科目
StartTime: "", //开班开始时间
EndTime: "", //开班结束时间
}, },
classStatusList: [], //班级状态列表 classStatusList: [], //班级状态列表
schoolList: [], //校区列表 schoolList: [], //校区列表
...@@ -147,6 +161,11 @@ ...@@ -147,6 +161,11 @@
this.getClassList(); this.getClassList();
}, },
methods: { methods: {
changeDate()
{
this.$refs.qCStartTime.hide();
this.getClassList();
},
queryCourseSubject() { queryCourseSubject() {
getCourseSubject({}).then(res => { getCourseSubject({}).then(res => {
if (res.Code == 1) { if (res.Code == 1) {
......
...@@ -1861,6 +1861,11 @@ const routes = [{ ...@@ -1861,6 +1861,11 @@ const routes = [{
component: () => component: () =>
import("pages/stuMan/coffeeManage/index") import("pages/stuMan/coffeeManage/index")
}, },
{
path: "/stuMan/sp", //学管 商品管理
component: () =>
import("pages/stuMan/StudentProgress")
},
{ {
path: "/stuMan/coffeeManage/coffeeOrderList", //学管 咖啡订单列表 path: "/stuMan/coffeeManage/coffeeOrderList", //学管 咖啡订单列表
component: () => 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