Commit 71cd71c7 authored by zhengke's avatar zhengke
parents 53cf405f 466edf2c
......@@ -14,10 +14,11 @@
"@riophae/vue-treeselect": "^0.4.0",
"ali-oss": "^6.12.0",
"axios": "^0.18.1",
"browser-md5-file": "^1.1.1",
"browser-md5-file": "^1.0.0",
"co": "^4.6.0",
"core-js": "^3.6.5",
"cos-js-sdk-v5": "^1.1.5",
"echarts": "^5.1.2",
"element-ui": "^2.14.1",
"html2canvas": "^1.0.0-rc.7",
"js-md5": "^0.7.3",
......@@ -31,7 +32,7 @@
"relation-graph": "^1.0.8",
"v-viewer": "^1.5.1",
"vue-amap": "^0.5.10",
"vue-draggable-resizable": "^1.7.5",
"vue-draggable-resizable": "^1.7.2",
"vue-easytable": "^1.7.2",
"vue-i18n": "^8.0.0",
"vue-inline-svg": "^2.0.0",
......
......@@ -13,7 +13,9 @@ export default {
<style>
@import url('~assets/css/font.css');
@import url('//at.alicdn.com/t/font_2077629_1f7iels6h8w.css');
.q-scrollarea__thumb{
z-index: 999999!important;
}
html,
body,
#q-app {
......
......@@ -30,7 +30,7 @@ export function getSchoolAndRoomNav(data) {
*/
export function getClassRoomTimeList(data) {
return request({
url: '/ClassRoom/GetClassRoomTimeList',
url: '/ClassRoom/GetNewClassRoomTimeList',
method: 'post',
data
})
......
......@@ -124,3 +124,49 @@ export function getEmployeeAddrBook(data)
})
}
/**
* 获取我的提成折线图
*/
export function getUserSellCommission(data)
{
return request({
url: '/UserInfo/GetUserSellCommission',
method: 'post',
data
})
}
/**
* 获取我的奖金折线图
*/
export function getTeacherSellCommission(data)
{
return request({
url: '/UserInfo/GetTeacherSellCommission',
method: 'post',
data
})
}
/**
* 个人中心 我的奖金确认
*/
export function updateSureTeachingBonusDetail(data)
{
return request({
url: '/UserInfo/UpdateSureTeachingBonusDetail',
method: 'post',
data
})
}
/**
* 个人中心 我的提成确认
*/
export function updatSureSellCommission(data)
{
return request({
url: '/UserInfo/UpdatSureSellCommission',
method: 'post',
data
})
}
\ No newline at end of file
......@@ -61,7 +61,11 @@
<template v-slot:body-cell-IsRenew="props">
<q-td auto-width :props="props">
<span style="color:red;" v-if="props.row.IsRenew==0"></span>
<span style="color:green;" v-if="props.row.IsRenew==1"></span>
<span style="color:green;" v-if="props.row.IsRenew==1">
<q-tooltip :offset="[10, 10]">
原订单:{{props.row.RenewOrderId}}
</q-tooltip>
</span>
</q-td>
</template>
<template v-slot:body-cell-GuestName="props">
......@@ -168,7 +172,7 @@
},
{
name: 'IsRenew',
label: '续费课程',
label: '续费订单',
field: 'IsRenew',
align: 'left'
}
......
......@@ -144,9 +144,12 @@ export default {
this.$emit('close')
},
goUrlgeren(){//个人资料
this.$router.push({
path: '/user/personalData',
})
this.$root.$emit("goworkobj")
this.$router.push({
path: '/user/personalData',
})
},
undefinedGongneng() {
this.$q.dialog({
......
......@@ -62,6 +62,9 @@
<td :rowspan="3" style="text-align: left">
<div class="order_OfferId" @click="goOrderdetails(item,1)">{{item.OrderId}}
</div>
<div class="order_OfferId" v-if="item.RenewOrderId&&item.RenewOrderId>0">
原订单:{{item.RenewOrderId}}
</div>
<div>{{item.EnterName}}</div>
<div style="margin-top: 10px">{{item.CreateTime}}</div>
<template v-if="AuthorityObj.isShowName">
......@@ -316,7 +319,8 @@
</template>
<template v-else>
<q-btn color="secondary" size="sm" @click="goContractMannage(subItem)" label="查看合同" />
<q-btn style="margin-left:5px;" v-if="subItem.ContractStatus==0" color="purple" size="sm" @click="goContractAudit(subItem)" label="提交审核" />
<q-btn style="margin-left:5px;" v-if="subItem.ContractStatus==0" color="purple" size="sm"
@click="goContractAudit(subItem)" label="提交审核" />
</template>
</td>
</tr>
......@@ -1345,8 +1349,8 @@
});
},
//合同提交审核
goContractAudit(subItem){
let msg = {
goContractAudit(subItem) {
let msg = {
ContractId: subItem.ContractId,
State: 1
}
......
......@@ -286,6 +286,9 @@
this.objOption.BaseStuNum = this.saveObj.BaseStuNum;
this.objOption.BaseHourFee = this.saveObj.BaseHourFee;
this.objOption.Specialty = this.saveObj.Specialty;
this.objOption.EnableTime = this.saveObj.EnableTime;
this.objOption.BaseHoursEnabled = this.saveObj.BaseHoursEnabled;
if (this.saveObj.ChooseSpecialty && this.saveObj.ChooseSpecialty.length > 0) {
this.chooseSpecialty = this.saveObj.ChooseSpecialty;
}
......
......@@ -6,7 +6,7 @@
.summaryInfo .box_t_item {
background: #FFF;
height: 468px;
height: 368px;
border-radius: 6px;
padding: 30px 20px;
}
......@@ -29,18 +29,54 @@
padding: 20px;
display: flex;
align-items: flex-start;
border-bottom: 1px solid #e2e2e2;
}
.noticeitem:hover {
.summaryInfo .noticeitem:hover {
box-shadow: 0px 0px 8px 0px rgba(68, 110, 228, 0.64);
border-radius: 6px;
/* border: 1px solid rgba(68, 110, 228, 0.64);; */
}
.summaryInfo .noticeitem:hover .noticeitem_l_img{
background: url('../../assets/images/Notices.png');
background-repeat: no-repeat;
background-size: 100%;
width: 41px;
height: 39px;
}
.summaryInfo .noticeitem_l {
width: 120px;
width: 82px;
height: 82px;
border-radius: 6px;
display: flex;
align-items: center;
justify-content: center;
background: #F2F3F9;
}
.summaryInfo .noticeitem_l_img{
background: url('../../assets/images/Noticen.png');
background-repeat: no-repeat;
background-size: 100%;
width: 41px;
height: 39px;
}
.summaryInfo .noticeitem:hover .noticeitem_l {
width: 82px;
height: 82px;
border-radius: 6px;
display: flex;
align-items: center;
justify-content: center;
background: #E1E9FF;
}
.summaryInfo .noticeitem:hover .gonggaoName{
font-size: 16px;font-family: PingFang SC;font-weight: 800;color: #2961FE;width: 1px;flex: 1;overflow: hidden;white-space: nowrap; text-overflow: ellipsis
}
.summaryInfo .gonggaoName{
font-size: 16px;font-family: PingFang SC;font-weight: 800;color: #3F4254;width: 1px;flex: 1;overflow: hidden;white-space: nowrap; text-overflow: ellipsis
}
.summaryInfo .box_c {
......@@ -54,7 +90,8 @@
border-radius: 6px;
padding: 20px;
}
.summaryInfo .textbox{
.summaryInfo .textbox {
width: 100%;
height: 130px;
border-radius: 20px;
......@@ -62,42 +99,72 @@
padding-left: 29px;
padding-top: 29px;
}
.summaryInfo .lanstyle{
.summaryInfo .lanstyle {
color: #3699FF;
background: #ECF6FF;
}
.summaryInfo .redstyle{
.summaryInfo .redstyle {
color: #F44E60;
background: #FFEEF0;
}
.summaryInfo .justyle{
.summaryInfo .justyle {
color: #FFA800;
background: #FFF8EB;
}
.summaryInfo .lvstyle{
.summaryInfo .lvstyle {
color: #1BC5C2;
background: #EEFEFD;
}
.summaryInfo .scrollbox::-webkit-scrollbar {
width: 3px;
height: 3px;
background-color: #F5F5F5;
}
/*!*定义滚动条轨道 内阴影+圆角*!*/
.summaryInfo .scrollbox::-webkit-scrollbar-track {
-webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);
border-radius: 10px;
background-color: #F5F5F5;
}
/*!*定义滑块 内阴影+圆角*!*/
.summaryInfo .scrollbox::-webkit-scrollbar-thumb {
border-radius: 10px;
-webkit-box-shadow: -webkit-gradient(linear, 0 0, 0 100%, color-stop(.5, rgba(255, 255, 255, .2)), color-stop(.5, transparent), to(transparent));
background-color: #0ae;
}
width: 3px;
height: 3px;
background-color: #F5F5F5;
}
/*!*定义滚动条轨道 内阴影+圆角*!*/
.summaryInfo .scrollbox::-webkit-scrollbar-track {
-webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);
border-radius: 10px;
background-color: #F5F5F5;
}
/*!*定义滑块 内阴影+圆角*!*/
.summaryInfo .scrollbox::-webkit-scrollbar-thumb {
border-radius: 10px;
-webkit-box-shadow: -webkit-gradient(linear, 0 0, 0 100%, color-stop(.5, rgba(255, 255, 255, .2)), color-stop(.5, transparent), to(transparent));
background-color: #0ae;
}
.month_export {
position: relative !important;
}
.summaryInfo .month_export .el-date-editor {
background-color: darkblue !important;
width: auto !important;
position: absolute !important;
top: 0 !important;
left: 0 !important;
opacity: 0;
}
.btnstyle {
width: 100%;
height: 100px;
margin-top: 34px;
background: #F6F7FA;
border-radius: 20px;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
</style>
<template>
<div class="summaryInfo">
......@@ -112,34 +179,32 @@
<span class="box_t_itext">公告</span>
</div>
</div>
<div class="scrollbox"
style="margin-top: 10px;background: #fff;height: 368px; width: 100%;overflow-y: auto;cursor: pointer;padding: 2px;">
<div v-for="(item,index) in noticeList" :key='index' class="noticeitem"
@click="goNoticeDetail(item)">
<div class="noticeitem_l">
<img :src="item.UpdateByIcon"
style="width: 120px;height: 82px; border-radius: 6px;" />
</div>
<div style="width: 1px;flex: 1;margin-left: 20px;">
<div
style="width: 100%;display: flex;align-items: flex-start;justify-content: space-between;">
<span
style="font-size: 16px;font-family: PingFang SC;font-weight: 800;color: #3F4254;">{{item.UpdateByName}}</span>
<span
style="font-size: 14px;font-weight: 500;color: #C4C6D1;">{{item.DayStr}}</span>
<div class="scrollbox" v-if='noticeList.length>0' style="margin-top: 10px;background: #fff;height: 268px; width: 100%;overflow-y: auto;cursor: pointer;padding: 2px;">
<div v-if='noticeList.length>0'>
<div v-for="(item,index) in noticeList" :key='index' class="noticeitem"
@click="goNoticeDetail(item)">
<!-- <div class="noticeitem_l">
<div class="noticeitem_l_img"></div>
</div> -->
<div style="width: 1px;flex: 1;">
<div style="width: 100%;display: flex;align-items: flex-start;justify-content: space-between;">
<span class="gonggaoName" >{{item.Title}}</span>
<span style="font-size: 14px;font-weight: 500;color: #C4C6D1;">{{item.DayStr}}</span>
</div>
<div style="font-size: 14px; font-family: PingFang SC;font-weight: 400;color: #9A9DAB;margin-top: 10px;display: flex;align-items: center;">
<span>{{item.UpdateByName}}</span> <span style="margin-left: 20px;">编号:{{item.Number}}</span>
</div>
</div>
<div
style="font-size: 14px; font-family: PingFang SC;font-weight: 400;color: #9A9DAB;margin-top: 10px;overflow: hidden;white-space: nowrap; text-overflow: ellipsis">
{{item.Title}}</div>
<div
style="font-size: 14px; font-family: PingFang SC;font-weight: 400;color: #9A9DAB;margin-top: 10px;">
编号:{{item.Number}}</div>
</div>
<div class="notifyLoadMore" style="text-align: center;margin-top: 10px;" v-if="noticeMsg.pageSize<Count" @click="getMoreNotify()">
<span>加载更多</span>
</div>
</div>
<div class="notifyLoadMore" v-if="noticeMsg.pageSize<Count" @click="getMoreNotify()">
<span>加载更多</span>
<div v-else class="q-mt-lg flex column justify-center items-center">
<span class="q-mt-md remark-font">没有找到相关数据信息</span>
</div>
</div>
</div>
</el-col>
<el-col :span="12">
......@@ -152,25 +217,28 @@
</div>
</div>
<div class="scrollbox"
style="margin-top: 10px;background: #fff;height: 368px; width: 100%;overflow-y: auto;cursor: pointer;padding: 2px;">
<q-list v-if="socektArr.length>0">
<q-item class="q-my-sm q-pa-xs items-start" v-for="(x,i) in socektArr" :key="i"
style="margin-top: 10px;background: #fff;height: 268px; width: 100%;overflow-y: auto;cursor: pointer;padding: 2px;">
<q-list v-if="socektArr.length>0" >
<q-item class="q-my-sm q-pa-xs items-start" v-for="(x,i) in socektArr" :key="i" style="padding: 10px 0;"
clickable v-ripple @click="goMsgDetail(x.JumpUrl,x),readMsgLog(x.Id,i)">
<q-item-section avatar>
<q-avatar :style="{'background-color':'#e1f0ff'}" rounded size="40px"
<q-avatar :style="{'background-color':'#e1f0ff'}" rounded size="44px"
text-color="negative">
<inline-svg :class="['svg-icon',`svg-icon-primary`]"
src="icons/svg/Shopping/Bag2.svg"></inline-svg>
</q-avatar>
</q-item-section>
<q-item-section>
<q-item-label class="text-weight-bold">{{x.Title}}</q-item-label>
<q-item-label class="text-weight-bold" style="margin-bottom: 10px;">{{x.Title}}</q-item-label>
<q-item-label caption lines="3" class="remark-font">{{x.Content}}</q-item-label>
</q-item-section>
<q-item-section side class="remark-font">{{x.SendTime.replace('T',' ')}}
</q-item-section>
</q-item>
</q-list>
<div v-else class="q-mt-lg flex column justify-center items-center">
<span class="q-mt-md remark-font">没有找到相关数据信息</span>
</div>
</div>
</div>
......@@ -188,6 +256,13 @@
src="icons/svg/Communication/Urgent-mail.svg"></inline-svg>
<span class="box_t_itext">我的提成</span>
</div>
<div style="display: flex;align-items: center;">
<el-button class="month_export" type="text" size="mini"><span style="cursor: pointer;">{{PeriodsTime}}</span> <i class="el-icon-caret-bottom"></i>
<el-date-picker v-model="dates" @change="batchWithdrawalCommission" type="month"
size="small" format="yyyy-MM" value-format="yyyy-MM" placeholder="选择月">
</el-date-picker>
</el-button>
</div>
</div>
<div id="main" style="width: 100%;height:300px;"> </div>
<div style="width: 100%;margin-top: 30px;">
......@@ -195,13 +270,14 @@
<el-col :span="12">
<div class="lanstyle textbox">
<div>未完款订单</div>
<div style="font-size: 38px;font-weight: 800;">2</div>
<div style="font-size: 38px;font-weight: 800;">{{UserInfo.OrderNoCompleteNum}}
</div>
</div>
</el-col>
<el-col :span="12">
<div class="redstyle textbox">
<div>课程进度未达标</div>
<div style="font-size: 38px;font-weight: 800;">1</div>
<div style="font-size: 38px;font-weight: 800;">{{UserInfo.CourseNum}}</div>
</div>
</el-col>
</el-row>
......@@ -210,24 +286,103 @@
<el-row :gutter="30">
<el-col :span="12">
<div class="justyle textbox">
<div>本月预计</div>
<div style="font-size: 26px;font-weight: 800;margin-top: 20px;">¥865</div>
<div v-if='UserInfo.SureStatus==-1'>本月预计</div>
<div v-else>本月实发</div>
<div style="font-size: 20px;font-weight: 800;margin-top: 20px;" v-if='UserInfo.TotalCommiommission>10000'>{{UserInfo.TotalCommiommission}}</div>
<div style="font-size: 26px;font-weight: 800;margin-top: 20px;" v-else>{{UserInfo.TotalCommiommission}}</div>
</div>
</el-col>
<el-col :span="12">
<div class="lvstyle textbox">
<div>账单情况</div>
<div style="font-size: 20px;font-weight: 800;margin-top: 20px">已出单</div>
<div style="font-size: 20px;font-weight: 800;margin-top: 20px"
v-if='UserInfo.SureStatus==-1'>未出单</div>
<div style="font-size: 20px;font-weight: 800;margin-top: 20px"
v-if='UserInfo.SureStatus==0'>未确认</div>
<div style="font-size: 20px;font-weight: 800;margin-top: 20px"
v-if='UserInfo.SureStatus==1'>已出单</div>
</div>
</el-col>
</el-row>
</div>
<div class="btnstyle" v-if='UserInfo.SureStatus==0'>
<span style="font-size:16px;color: #3F4254;margin-bottom: 10px;">确认状态</span>
<q-btn color="primary" size="sm" label="确认" @click='btnCommission()'/>
</div>
<div class="btnstyle" v-if='UserInfo.SureStatus==1'>
<span style="font-size:16px;color: #3F4254;margin-bottom: 10px;">确认状态</span>
<q-btn color="primary" disable size="sm" label="已确认" />
</div>
</div>
</el-col>
<!-- 我的奖金 -->
<el-col :span="8">
<div class="box_c_item">
<div class="box_t_it">
<div style="display: flex;align-items: center;">
<inline-svg class="svg-icon q-mr-xs svg-icon-secondary"
src="icons/svg/Communication/Urgent-mail.svg"></inline-svg>
<span class="box_t_itext">我的奖金</span>
</div>
<div style="display: flex;align-items: center;">
<el-button class="month_export" type="text" size="mini"><span style="cursor: pointer;">{{PeriodsTime2}}</span> <i class="el-icon-caret-bottom"></i>
<el-date-picker v-model="dates2" @change="batchWithdrawalCommission2" type="month"
size="small" format="yyyy-MM" value-format="yyyy-MM" placeholder="">
</el-date-picker>
</el-button>
</div>
</div>
<div id="main2" style="width: 100%;height:300px;"> </div>
<div style="width: 100%;margin-top: 30px;">
<el-row :gutter="30">
<el-col :span="12">
<div class="lanstyle textbox">
<div>未完款订单</div>
<div style="font-size: 38px;font-weight: 800;">{{UserInfo.OrderNoCompleteNum}}
</div>
</div>
</el-col>
<el-col :span="12">
<div class="redstyle textbox">
<div>课程进度未达标</div>
<div style="font-size: 38px;font-weight: 800;">{{UserInfo.CourseNum}}</div>
</div>
</el-col>
</el-row>
</div>
<div style="width: 100%;margin-top: 30px;">
<el-row :gutter="30">
<el-col :span="12">
<div class="justyle textbox">
<div v-if='UserInfo.SureTStatus==-1'>本月预计</div>
<div v-else>本月实发</div>
<div style="font-size: 20px;font-weight: 800;margin-top: 20px;" v-if='UserInfo.TotalTCommiommission>10000'>{{UserInfo.TotalTCommiommission}}</div>
<div style="font-size: 26px;font-weight: 800;margin-top: 20px;" v-else>{{UserInfo.TotalTCommiommission}}</div>
</div>
</el-col>
<el-col :span="12">
<div class="lvstyle textbox">
<div>账单情况</div>
<div style="font-size: 20px;font-weight: 800;margin-top: 20px"
v-if='UserInfo.SureTStatus==-1'>未出单</div>
<div style="font-size: 20px;font-weight: 800;margin-top: 20px"
v-if='UserInfo.SureTStatus==0'>未确认</div>
<div style="font-size: 20px;font-weight: 800;margin-top: 20px"
v-if='UserInfo.SureTStatus==1'>已出单</div>
</div>
</el-col>
</el-row>
</div>
<div class="btnstyle" v-if='UserInfo.SureTStatus==0'>
<span style="font-size:16px;color: #3F4254;margin-bottom: 10px;">确认状态</span>
<q-btn color="primary" size="sm" label="确认" @click='btnbonus()'/>
</div>
<div class="btnstyle" v-if='UserInfo.SureTStatus==1'>
<span style="font-size:16px;color: #3F4254;margin-bottom: 10px;">确认状态</span>
<q-btn color="primary" disable size="sm" label="已确认" />
</div>
</div>
</el-col>
<el-col :span="8">
......@@ -240,13 +395,14 @@
</div>
</div>
<div class="page-content" style="margin-top: 44px;">
<q-table no-data-label="暂无相关数据" flat class="sticky-column-table" separator="none" title=""
:data="UserInfo.EmployeeListResult" :columns="columns" row-key="name">
<template v-slot:bottom>
</template>
</q-table>
<el-table :data="UserInfo.EmployeeListResult" height="350" style="width: 100%" :header-cell-style="{backgroundColor:'#f5f6f7', color: '#a8a8b3'}">
<el-table-column prop="EmployeeName" label="名称" ></el-table-column>
<el-table-column prop="DeptName" label="部门" ></el-table-column>
<el-table-column prop="PostName" label="岗位"></el-table-column>
<el-table-column prop="AccountRemark" label="备注"></el-table-column>
</el-table>
</div>
</div>
</el-col>
......@@ -261,7 +417,12 @@
GetWebCartoon
} from '../../api/system/webkit'
import {
getUserCenterInfo
getUserCenterInfo,
getUserSellCommission,
updateSureTeachingBonusDetail,
updatSureSellCommission,
getTeacherSellCommission,//我的奖金的折线图
} from '../../api/users/user'
import {
GetMyNoticePageList,
......@@ -288,102 +449,134 @@
visible: true,
noticeList: [],
socektArr: [],//消息数组
columns: [{
name: 'EmployeeName',
label: '姓名',
align: 'left',
field: 'EmployeeName',
},
{
name: 'DeptName',
label: '部门',
align: 'left',
field: 'DeptName'
},
{
name: 'PostName',
label: '职位',
field: 'PostName',
align: 'left'
},
{
name: 'AccountRemark',
label: '备注',
field: 'AccountRemark',
align: 'left'
},
],
UserInfo: {
EmployeeListResult: [{
"EmployeeName": "周建",
"DeptName": "教学部",
"PostName": "实习生",
"AccountRemark": null,
"AccountId": 66,
"AccountType": 1,
"School_Id": 0,
"Id": 2689
}, {
"EmployeeName": "周建",
"DeptName": "教学部",
"PostName": "实习生",
"AccountRemark": null,
"AccountId": 66,
"AccountType": 1,
"School_Id": 0,
"Id": 2689
}, {
"EmployeeName": "周建",
"DeptName": "教学部",
"PostName": "实习生",
"AccountRemark": null,
"AccountId": 66,
"AccountType": 1,
"School_Id": 0,
"Id": 2689
},]
},
dates: '',
PeriodsTime: '',
dates2: '',
PeriodsTime2: '',
sellData: [],
TsellData:[],
UserInfo: {},
}
},
created() {
let now = new Date()
now.setMonth(now.getMonth() - 4);
let Month = now.getMonth() < 10 ? '0' + now.getMonth() : now.getMonth()
this.dates = now.getFullYear() + '-' + Month
this.PeriodsTime = this.dates + '-01'
this.dates2 = now.getFullYear() + '-' + Month
this.PeriodsTime2 = this.dates + '-01'
},
mounted() {
this.getNotify();
this.getLogList()
this.getUserInfo()//个人中心
this.tubiao()
this.getUserSellCommission()//获取提成的图表
this.getTeacherSellCommission()//获取奖金的图表
},
methods: {
tubiao() {
tubiao(type) {//提成的图标
var echarts = require('echarts')
var myChart = echarts.init(document.getElementById('main'))
var myChart ;
if(type == 1){
myChart = echarts.init(document.getElementById('main'))
}else{
myChart = echarts.init(document.getElementById('main2'))
}
var colors = '';
if(type == 1){
colors = '#F64E60'
}else{
colors = '#2961FE'
}
let xdata = []//x轴的数据
let tbdata = []//图标数据
let list = [];
if(type == 1){
list = this.sellData
}else{
list = this.TsellData
}
if(list.length>0){
list.forEach(x => {
let obj = x.MonthStr + '月'
if (x.MonthStr == 1) {
obj = x.YearStr + '-' + x.MonthStr + '月'
}
xdata.push(obj)
tbdata.push(x.TotalCommiommission)
})
}
// 指定图表的配置项和数据
var option = {
grid: {
left: '0%',
right: '0%',
bottom: '0%',
containLabel: true
},
tooltip: {
trigger: 'axis'
},
xAxis: {
type: 'category',
data: ['1月', '2月', '3月', '4月', '5月', '6月', '7月']
data: xdata
},
yAxis: {
type: 'value'
},
series: [{
data: [820, 932, 901, 934, 1290, 1330, 1320],
data: tbdata,
type: 'line',
smooth: true
smooth: true,
cursor: 'pointer',
itemStyle: {
normal: {
color: colors,
lineStyle: {
color: colors,
width: 4
}
}
},
}]
}
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option)
},
batchWithdrawalCommission(val) {
if (val != null) {
this.PeriodsTime = this.dates + '-01';
this.getUserSellCommission()
}
},
batchWithdrawalCommission2(val) {
if (val != null) {
this.PeriodsTime2 = this.dates2 + '-01';
this.getTeacherSellCommission()
}
},
getUserSellCommission() {
getUserSellCommission({ PeriodsTime: this.PeriodsTime }).then(res => {
if (res.Code == 1) {
this.sellData = res.Data;
this.tubiao(1)
}
})
},
getTeacherSellCommission(){//我的奖金
getTeacherSellCommission({ PeriodsTime: this.PeriodsTime2 }).then(res => {
if (res.Code == 1) {
this.TsellData = res.Data;
this.tubiao(2)
}
})
},
//请求公告数据
getNotify() {
GetMyNoticePageList(this.noticeMsg).then(res => {
......@@ -405,6 +598,7 @@
getUserCenterInfo().then(res => {
if (res.Code == 1) {
this.UserInfo = res.Data;
}
})
},
......@@ -445,6 +639,11 @@
}
}
},
//加载更多一次加载一条
getMoreNotify() {
this.noticeMsg.pageSize += 5;
this.getNotify();
},
//看过后删除
readMsgLog(Id, index) {
......@@ -457,6 +656,32 @@
this.socektArr.splice(index, 1);
}
})
},
btnbonus(){//奖金的确认
updateSureTeachingBonusDetail({Id:this.UserInfo.CommissionTId}).then(res => {
if (res.Code == 1) {
this.$q.notify({
type: 'iconfont icon-chenggong',
color: 'accent',
position: "top",
message: '确认成功'
})
this.getUserInfo()
}
})
},
btnCommission(){//提成的确定
updatSureSellCommission({Id:this.UserInfo.CommissionId}).then(res => {
if (res.Code == 1) {
this.$q.notify({
type: 'iconfont icon-chenggong',
color: 'accent',
position: "top",
message: '确认成功'
})
this.getUserInfo()
}
})
}
},
......
......@@ -68,7 +68,7 @@
</div>
</div>
<div class="col" style="background: #f2f4f7;">
<q-scroll-area class="fit" :thumb-style="thumbStyle" :bar-style="barStyle" visible style="">
<q-scroll-area :thumb-style="thumbStyle" :bar-style="barStyle" visible class="fit content-scroll full-width full-height">
<router-view />
</q-scroll-area>
</div>
......@@ -178,15 +178,10 @@
if (this.userInfo && this.userInfo.MenuList) {
this.secondNavs = this.userInfo.MenuList.length > 0 ? this.userInfo.MenuList[i].SubList : []
}
// this.MsgBus.$on('add',(payload) => {
// let that= this
// that.userInfo.AccountName = payload.EmployeeName
// that.userInfo.UserIcon = payload.UserIcon
// that.userInfo.Email = payload.Email
// that.userInfo.SchoolName = payload.SchoolName
// // location.reload();
// });
this.$root.$on("goworkobj", (data)=>{
// this.setNavs(0)
this.secondNavs=[]
});
this.getLogList();
this.getMsg();
},
......@@ -307,7 +302,7 @@
<style>
@import url('~assets/css/common.css');
.full-width {
.content-scroll>.scroll>.full-width {
height: 100%;
}
......
......@@ -167,7 +167,7 @@
<div class="col-3 ">
<q-select @input="resetSearch" standout="bg-primary text-white" v-model="msg.SelectIsEnd"
class="col-6 q-pr-lg q-pr-lg" :options="statusOpts" emit-value map-options label="状态"
@change="resetSearch" />
/>
</div>
</div>
</div>
......@@ -208,12 +208,15 @@
<template v-slot:body-cell-AgeAndPeopleNum="props">
<q-td :props="props">
<div>
<div>{{props.row.AgeLimit ==1?'不区分年龄':'区分年龄'}}</div>
<div v-if="props.row.AgeLimit==0">范围:{{props.row.StartAge}}岁~{{props.row.EndAge}}</div>
<div>报名人数</div>
<!-- <div>{{props.row.AgeLimit ==1?'不区分年龄':'区分年龄'}}</div>
<div v-if="props.row.AgeLimit==0">范围:{{props.row.StartAge}}岁~{{props.row.EndAge}}</div>-->
<!-- <div>报名人数</div> -->
<div v-if="props.row.Distinguish ==1">总人数:{{props.row.ManNum}}</div>
<div v-if="props.row.Distinguish ==0">男性:{{props.row.ManNum}}<span
style="margin-left:10px">女性:{{props.row.WoManNum}}</span> </div>
style="margin-left:10px">女性:{{props.row.WoManNum}}</span> </div>
<div >
已报入:{{props.row.JoinNum}}
</div>
</div>
</q-td>
</template>
......@@ -368,7 +371,7 @@
},
{
name: "AgeAndPeopleNum",
label: "年龄和报名人数",
label: "总人数/已报入",
align: "left"
},
{
......
......@@ -479,7 +479,7 @@
//分页改变
changePage(val) {
this.msg.PageIndex = val;
this.getSchool()
this.getList()
},
getChild(deptArray) {
var tempStr = "";
......
......@@ -46,9 +46,9 @@
height="75px"
class=" text-white shadow-1 rounded-borders"
arrows
control-color="grey-4"
control-color="grey-1"
control-text-color="primary"
control-type="regular"
control-type="unelevated"
>
<q-carousel-slide v-for="(slide,slideIndex) in _item.TimeList" :key="slideIndex" :name="slideIndex" >
<div class="info-box">
......
<style>
</style>
<template>
<div>
<el-collapse v-if="dayData&&dayData.SubList&&dayData.SubList.length>0">
<el-collapse-item v-for="(subItem,subIndex) in dayData.SubList" :key="subIndex" :name="subIndex">
<template slot="title">
<div class="plan_Tdiv">
<span v-if="subItem.TimeStr==='早上'" class="commonTimeStr greenTime">{{subItem.TimeStr}}</span>
<span v-if="subItem.TimeStr==='下午'" class="commonTimeStr blueTime">{{subItem.TimeStr}}</span>
<span v-if="subItem.TimeStr==='晚上'" class="commonTimeStr orangeTime">{{subItem.TimeStr}}</span>
<span v-if="subItem.Type===0&&subItem.ClassType==2">试听课</span>
<span style="color:red;margin:0 5px;">{{subItem.TeacherName}}</span>
<span>[{{subItem.RoomName}}]</span>
</div>
</template>
<div @click="goUrl(subItem)">
<div class="plan_Inner">
<div class="plan_LeftTitle">上课时间:</div>
<div class="plan_RightInner">{{subItem.StartTime}}-{{subItem.EndTime}}</div>
</div>
<div class="plan_Inner" v-if="subItem.ClassName">
<div class="plan_LeftTitle">班级:</div>
<div class="plan_RightInner">{{subItem.ClassName}}</div>
</div>
<div class="plan_Inner">
<div class="plan_LeftTitle">课程名称:</div>
<div class="plan_RightInner">{{subItem.CourseName}}</div>
</div>
<div class="plan_Inner" v-if="subItem.GuestList&&subItem.GuestList.length>0">
<div class="plan_LeftTitle">学生名称:</div>
<div class="plan_RightInner">
<span style="margin-right:10px;" v-for="tItem in subItem.GuestList">{{tItem.GuestName}}</span>
</div>
</div>
<div class="plan_Inner" style="align-items:center;" v-if="subItem.CompleteProgress>=0">
<div class="plan_LeftTitle">课程进度:</div>
<div class="plan_RightInner">
<el-progress :percentage="subItem.CompleteProgress"></el-progress>
</div>
</div>
</div>
</el-collapse-item>
</el-collapse>
<div class="text-grey-6" v-else>
暂无课程安排
</div>
</div>
</template>
<script>
export default {
props: {
dayData: {
type: Object,
default: null
},
fatherMethod: {
type: Function,
default: null
}
},
data() {
return {
}
},
methods: {
goUrl(item) {
if (item.Type === 0 && item.ClassType === 1) {
this.$router.push({
path: "/classroom/courseInfo",
query: {
id: item.Id
}
})
}else if(item.Type >0){
this.$emit('unusual',item);
}
}
}
}
</script>
<style lang="scss" scoped>
@import "./css/comSummary.css";
.td-item{
// min-width: 160px;
width: 195px;
position: relative;
margin-left:9px;
border-radius: 4px;
box-shadow: 0px 4px 40px 0px rgba(2, 44, 66, 0.1);
// margin-bottom: 20px;
padding: 10px;
background-color: #fff;
.ClassStatus{
position: absolute;
top: 0;
right: 0px;
}
.name{
font-size: 14px;
font-family: PingFang SC;
font-weight: 500;
color: #111111;
margin-bottom: 10px;
}
.time{
font-size: 12px;
font-family: PingFang SC;
font-weight: 500;
color: #999999;
}
}
.td-bg{
background-color: #F1F6FB;
}
.flexOne .el-timeline{
padding-left: 5px;
}
.tbody{
// width: calc(100% + 10px);
width: 1680px;
padding-right: 10px;
height: calc(100vh - 200px);
box-sizing: border-box;
overflow-y: scroll;
overflow-x: hidden;
}
.body-td{
position: relative;
}
.tbody::-webkit-scrollbar{
width:10px;
height:10px;
/**/
}
.tbody::-webkit-scrollbar-track{
background: rgb(239, 239, 239);
border-radius:2px;
}
.tbody::-webkit-scrollbar-thumb{
background: #bfbfbf;
border-radius:10px;
}
.tbody::-webkit-scrollbar-thumb:hover{
background: #333;
}
.mainSummary th:first-child,
td:first-child {
position: sticky;
left: 0;
z-index: 1;
}
</style>
<template>
<div class="flexOne comSummary">
<div class="mainSummary">
<!-- <table>
<colgroup>
<col style="width: 80px;" />
<col />
</colgroup>
<thead>
<tr><th>序号</th><th>内容</th></tr>
</thead>
</table> -->
<table class="summaryTable" cellspacing="0">
<colgroup>
<col width='105px'/>
<col width='10px'/>
<col width='215px'/>
<col width='215px'/>
<col width='215px'/>
<col width='215px'/>
<col width='215px'/>
<col width='215px'/>
<col width='215px'/>
<col width='10px'/>
</colgroup>
<thead>
<th class="">
<div class="leftDay">
<div class="leftDayTop">
<!-- <span class="yearCircle"></span> -->
{{nowYear}}
<!-- <span class="yearCircle"></span> -->
<!-- <div class="rili LI1"></div>
<div class="rili LI2"></div> -->
</div>
<span class="monthNum">{{nowMonth}}</span>
<!-- <span class="monthLis">{{$t('pub.month')}}</span> -->
</div>
</th>
<th style="width:10px">
<div class="Arrow" @click="leftClick()">
<i class="iconfont icon-previewleft"></i>
</div>
</th>
<th v-for="(k,index) in Calendar" :key="k.subCode" :width="180" :class="{'redType':k.Week=='日'||k.Week=='六','ckedTd':index==columnLine&&dataList!=''}" @click="getDayInfo(k.CurrentYear,k.CurrentMonth,k.CurrentDay)" @mouseover="columnsMouseOver(index)">
<div slot="reference">
<div class="_week">{{k.Week}}</div>
<div class="_monthDay" v-if="k.CurrentDay==1">
<span>{{k.CurrentMonthCn}}<br/>{{$t('pub.month')}}</span>
</div>
<div class="_day" v-else>{{k.CurrentDay}}</div>
<!-- <div class="_longli">{{k.LunarDayCn}}</div> -->
</div>
<div class="_lineSummary" v-if="index==columnLine&&dataList!=''"></div>
</th>
<th style="width:10px">
<div class="Arrow" @click="rightClick()">
<i class="iconfont icon-arrow-right"></i>
</div>
</th>
</thead>
</table>
<div class="tbody" style="width:1680px" >
<colgroup>
<col width='140px'/>
<col width='215px'/>
<col width='215px'/>
<col width='215px'/>
<col width='215px'/>
<col width='215px'/>
<col width='215px'/>
<col width='215px'/>
<col/>
</colgroup>
<tbody>
<tr>
<td style="width:50px;text-align:center;padding-top:8px; width:140px">
<el-timeline :reverse="reverse">
<el-timeline-item
v-for="(activity, index) in activities"
:key="index"
color="#D9F3FF"
:timestamp="activity.timestamp">
<!-- {{activity.timestamp}} -->
</el-timeline-item>
</el-timeline>
</td>
<td v-for="(item,index) in tbodayData" class="body-td" :class="{'td-bg':index%2==0}" >
<div v-for="(_item,_index) in item.InfoList" class="absolute" :style="{'top':_item.offSetTop+'px','z-index':_index}">
<div class="td-item" v-if="_item.Type===0" @click="goCourseInfo(_item)" :style="{'height':_item.height}">
<img src="../../../assets/images/classroom/useing.png" alt="" class="ClassStatus" v-if="_item.ClassStatus===1">
<img src="../../../assets/images/classroom/not-use.png" alt="" class="ClassStatus" v-if="_item.ClassStatus!==1">
<span class="name">{{_item.Title}}</span>
<div class="time">{{_item.StartTime}}-{{_item.EndTime}}</div>
</div>
<div class="td-item" v-if="_item.Type===1" @click="taggleUserHistory(_item)" :style="{'height':_item.height}">
<span class="name">{{_item.Title}}</span>
<div class="time">{{_item.StartTime}}-{{_item.EndTime}}</div>
</div>
</div>
</td>
<td></td>
</tr>
</tbody>
</div>
</div>
<UserHistory ref="history" :classroomId="classroomUserId" ></UserHistory>
</div>
<div class="flexOne comSummary MainPlan">
<div>
<table class="ClassPlanTable plantHead" style="border-collapse:collapse;width:100%;margin:15px 0 0 0;">
<thead>
<tr>
<th colspan="16">教室使用记录</th>
</tr>
<tr>
<th>周一</th>
<th>周二</th>
<th>周三</th>
<th>周四</th>
<th>周五</th>
<th>周六</th>
<th>周日</th>
</tr>
</thead>
</table>
<div class="planTabDiv" ref="planTabDiv">
<table class="ClassPlanTable" ref="PlanTable" style="border-collapse:collapse;margin-top:0;">
<tbody>
<tr v-for="(item,index) in tbodayData.fridayList" :key="index">
<td>
<div class="plan_ClassDate">{{tbodayData.mondayList[index].ClassDate}}</div>
<mateitem @unusual="taggleUserHistory" v-if="tbodayData.mondayList&&tbodayData.mondayList[index].SubList"
:dayData="tbodayData.mondayList[index]"></mateitem>
</td>
<td>
<div class="plan_ClassDate">{{tbodayData.tuesdayList[index].ClassDate}}</div>
<mateitem @unusual="taggleUserHistory" v-if="tbodayData.tuesdayList&&tbodayData.tuesdayList[index].SubList"
:dayData="tbodayData.tuesdayList[index]"></mateitem>
</td>
<td>
<div class="plan_ClassDate">{{tbodayData.wednesdayList[index].ClassDate}}</div>
<mateitem @unusual="taggleUserHistory" v-if="tbodayData.wednesdayList&&tbodayData.wednesdayList[index].SubList"
:dayData="tbodayData.wednesdayList[index]"></mateitem>
</td>
<td>
<div class="plan_ClassDate">{{tbodayData.thursdayList[index].ClassDate}}</div>
<mateitem @unusual="taggleUserHistory" v-if="tbodayData.thursdayList&&tbodayData.thursdayList[index].SubList"
:dayData="tbodayData.thursdayList[index]"></mateitem>
</td>
<td>
<div class="plan_ClassDate">{{tbodayData.fridayList[index].ClassDate}}</div>
<mateitem @unusual="taggleUserHistory" v-if="tbodayData.fridayList&&tbodayData.fridayList[index].SubList"
:dayData="tbodayData.fridayList[index]"></mateitem>
</td>
<td>
<div class="plan_ClassDate">{{tbodayData.saturdayList[index].ClassDate}}</div>
<mateitem @unusual="taggleUserHistory" v-if="tbodayData.saturdayList&&tbodayData.saturdayList[index].SubList"
:dayData="tbodayData.saturdayList[index]"></mateitem>
</td>
<td>
<div class="plan_ClassDate">{{tbodayData.sundayList[index].ClassDate}}</div>
<mateitem @unusual="taggleUserHistory" v-if="tbodayData.sundayList&&tbodayData.sundayList[index].SubList"
:dayData="tbodayData.sundayList[index]"></mateitem>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<UserHistory ref="history" :classroomId="classroomUserId"></UserHistory>
</div>
</template>
<script>
import lunarCalendar from "./js/lunarCalendar"
import UserHistory from "./userHistory"
export default {
props:{
tbodayData:{
type:Array,
import lunarCalendar from "./js/lunarCalendar"
import UserHistory from "./userHistory"
import mateitem from "./mateitem.vue"
export default {
props: {
tbodayData: {
type: [Array,Object],
},
startT:{
type:String,
default:''
}
},
components:{
UserHistory
},
watch:{
tbodayData:{
handler(val){
val.forEach(e=>{
e.InfoList.forEach(_e=>{
_e.height=_e.IntervalNum*41+'px'
let gap= this.getGap("09:30",_e.StartTime,15)
_e.offSetTop=gap*41
})
})
},
deep:true
},
startT:{
handler(val){
if(val){
this.msg.StartDate=val;
let startYear = this.msg.StartDate.split("-")[0];
let startMonth = this.msg.StartDate.split("-")[1];
var data = lunarCalendar.initLunar(
startYear,
startMonth,
this.dayNum,
val
);
this.CalendarDataArray = data;
this.QStartDate = data[0].CurrentDate;
this.QEndDate = data[data.length - 1].CurrentDate;
this.Calendar = this.CalendarDataArray.slice(0,7);
}
}
},
msg:{
handler(val){
if(val){
let t=Date.parse(val.StartDate)
let d= new Date(t)
let m=d.getMonth()+1
this.nowMonth=m
this.$emit("change",this.msg.StartDate);
}
},
deep:true
}
},
data() {
return {
msg: {
StartDate: new Date().Format("yyyy-MM-dd"),
EndDate: ""
},
loading: true,
dataList: "",
tempDataList: [],
Calendar: "", //绑定数据的日历
CalendarDataArray: [], //存放数据的日历
infoList: "",
dayList: "",
nowYear: "",
nowMonth: "",
QStartDate: "",
QEndDate: "",
dayNum: 7, //默认加载天数
columnLine: -1,
reverse: false,
activities: [{//时间线数据
timestamp: '09:30'
}, {
timestamp: '09:45'
}, {
timestamp: '10:00'
},{
timestamp: '10:15'
},{
timestamp: '10:30'
},{
timestamp: '10:45'
},{
timestamp: '11:00'
},{
timestamp: '11:15'
},{
timestamp: '11:30'
},{
timestamp: '11:45'
},{
timestamp: '12:00'
},{
timestamp: '12:15'
},{
timestamp: '12:30'
},{
timestamp: '12:45'
},{
timestamp: '13:00'
},{
timestamp: '13:15'
},{
timestamp: '13:30'
},{
timestamp: '13:45'
},{
timestamp: '14:00'
},{
timestamp: '14:15'
},{
timestamp: '14:30'
},{
timestamp: '14:45'
},{
timestamp: '15:00'
},{
timestamp: '15:15'
},{
timestamp: '15:30'
},{
timestamp: '15:45'
},{
timestamp: '16:00'
},{
timestamp: '16:15'
},{
timestamp: '16:30'
},{
timestamp: '16:45'
},{
timestamp: '17:00'
},{
timestamp: '17:15'
},{
timestamp: '17:30'
},{
timestamp: '17:45'
},{
timestamp: '18:00'
},{
timestamp: '18:15'
},{
timestamp: '18:30'
},{
timestamp: '18:45'
},{
timestamp: '19:00'
},{
timestamp: '19:15'
},{
timestamp: '19:30'
},{
timestamp: '19:45'
},{
timestamp: '20:00'
},{
timestamp: '20:15'
},{
timestamp: '20:45'
},{
timestamp: '21:00'
},{
timestamp: '21:15'
},{
timestamp: '21:30'
},],
classroomUserId:""
};
},
methods: {
taggleUserHistory(i){
this.classroomUserId=i.Id
this.$refs.history.changeShow()
},
goCourseInfo(i){
this.$router.push({
path:"/classroom/courseInfo",
query:{
id:i.Id
}
})
startT: {
type: String,
default: ''
}
},
//初始化日历数据
initData() {
let startYear = this.msg.StartDate.split("-")[0];
let startMonth = this.msg.StartDate.split("-")[1];
var data = lunarCalendar.initLunar(
startYear,
startMonth,
this.dayNum
);
this.CalendarDataArray = data;
this.QStartDate = data[0].CurrentDate;
this.QEndDate = data[data.length - 1].CurrentDate;
this.Calendar = this.CalendarDataArray.slice(0,7);
components: {
UserHistory,
mateitem
},
//左侧点击
leftClick() {
var tempStartDate = lunarCalendar.changeLunar(this.QStartDate, -1);
this.CalendarDataArray.unshift(tempStartDate);
this.nowYear = tempStartDate.CurrentYear;
// this.nowMonth = tempStartDate.CurrentMonth;
this.CalendarDataArray.pop(); //删除最后一个元素
this.Calendar = this.CalendarDataArray.slice(0,7);
this.QStartDate = tempStartDate.CurrentDate;
this.QEndDate = this.CalendarDataArray[
this.CalendarDataArray.length - 1
].CurrentDate;
this.msg.StartDate = tempStartDate.CurrentDate;
this.msg.EndDate = this.CalendarDataArray[
this.CalendarDataArray.length - 1
].CurrentDate;
// this.getList();
data() {
return {
classroomUserId: ""
};
},
//右侧点击事件
rightClick() {
var tempEndDate = lunarCalendar.changeLunar(this.QEndDate, 1);
this.CalendarDataArray.push(tempEndDate);
this.nowYear = tempEndDate.CurrentYear;
// this.nowMonth = tempEndDate.CurrentMonth;
this.CalendarDataArray.shift(); //删除第一个元素
this.Calendar = this.CalendarDataArray.slice(0,7);
this.QStartDate = this.CalendarDataArray[0].CurrentDate;
this.QEndDate = tempEndDate.CurrentDate;
this.msg.StartDate = this.CalendarDataArray[0].CurrentDate;
this.msg.EndDate = tempEndDate.CurrentDate;
// this.getList();
},
columnsMouseOver(obj) {
this.columnLine = obj;
},
getEndDay() {
var date1 = this.msg.StartDate;
var date2 = new Date(date1);
var c = date2.getDate();
var d = new Date(date2.setDate(c + 24));
this.msg.EndDate = d.Format("yyyy-MM-dd");
methods: {
taggleUserHistory(i) {
this.classroomUserId = i.Id
this.$refs.history.changeShow()
},
},
getDayInfo(Y, M, D) {
},
/**
* //计算间隔多少个分钟
* @param s 开始时间
* e 结束时间
* gap 间隔分钟
*/
getGap(s,e,gap){
let stimeArr=s.split(':')
let stime=parseInt(stimeArr[0])*60+parseInt(stimeArr[1])
let etimeArr=e.split(":")
let etime=parseInt(etimeArr[0])*60+parseInt(etimeArr[1])
let res=(etime-stime)/gap
return res
mounted() {
}
},
};
</script>
<style>
.MainPlan .ClassPlanTable {
width: 100%;
color: #000;
}
.ClassPlanTable th,
.ClassPlanTable td {
border: 1px solid #d1d1d1;
height: 40px;
}
.MainPlan td {
vertical-align: top;
padding: 5px;
width: 14%;
}
.MainPlan {
margin: 20px;
}
.MainPlan .plan_ClassDate {
height: 30px;
line-height: 30px;
font-size: 15px;
font-weight: bold;
}
mounted() {
this.initData();
this.getEndDay();
let nowDate = new Date().Format("yyyy-MM-dd");
this.nowYear = nowDate.split("-")[0];
this.nowMonth = parseInt(nowDate.split("-")[1]);
.MainPlan .plantHead th {
border-bottom: 0;
}
};
</script>
\ No newline at end of file
.MainPlan .planTabDiv {
max-height: calc(100vh - 280px);
height: calc(100vh - 280px);
overflow-y: overlay;
/* margin-right: -3px; */
}
.planTabDiv::-webkit-scrollbar {
width: 3px;
height: 3px;
background-color: #F5F5F5;
}
/*!*定义滚动条轨道 内阴影+圆角*!*/
.planTabDiv::-webkit-scrollbar-track {
-webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);
border-radius: 10px;
background-color: #F5F5F5;
}
/*!*定义滑块 内阴影+圆角*!*/
.planTabDiv::-webkit-scrollbar-thumb {
border-radius: 10px;
-webkit-box-shadow: -webkit-gradient(linear, 0 0, 0 100%, color-stop(.5, rgba(255, 255, 255, .2)), color-stop(.5, transparent), to(transparent));
background-color: #0ae;
}
.MainPlan .el-collapse-item__header {
font-size: 12px;
line-height: normal;
color: #000;
}
.MainPlan .plan_Inner {
font-size: 12px;
color: #000;
display: flex;
margin-top: 5px;
}
.MainPlan .plan_LeftTitle {
width: 60px;
text-align: right;
flex-shrink: 0
}
.MainPlan .plan_RightInner {
width: 100%;
}
.MainPlan .commonTimeStr {
display: inline-block;
color: #fff;
padding: 1px 3px;
border-radius: 5px;
}
.MainPlan .greenTime {
background-color: green;
}
.MainPlan .blueTime {
background-color: blue;
}
.MainPlan .orangeTime {
background-color: orange;
}
.MainPlan .plan_Tdiv {
text-overflow: ellipsis;
overflow: hidden;
word-break: break-all;
}
</style>
<template>
<div class="page-body con">
<div class="left">
<div class="page-search row items-center">
<div class="col row wrap q-mr-lg q-col-gutter-md">
<div class="col-3">
<q-select @input="schoolChange" standout="bg-primary text-white" option-value="Key" option-label="SchoolName"
v-model="msg.SchoolId" :options="schoolopt" emit-value map-options label="关联校区" />
</div>
<div class="col-3">
<q-select @input="getClassRoomTimeList" standout="bg-primary text-white" option-value="RoomId"
option-label="RoomName" v-model="msg.ClassRoomId" :options="classroomopt" emit-value map-options
label="关联教室" @filter="filterFn">
<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 Sysuser_Date">
<q-field filled>
 <template v-slot:control>
<el-date-picker v-model="msg.StartTime" type="date" placeholder="开始日期" value-format="yyyy-MM-dd"
@change="changedate">
</el-date-picker>    
</template>
</q-field>
</div>
</div>
</div>
<!-- <div class="left">
<div class="dateModel col-5 q-mb-sm cursor-pointer shadow-1">
<!-- <div class="q-mb-sm">开始日期:{{dateModel}}</div>
<q-btn label="重新选择" color="primary" size="sm" >
<q-popup-proxy transition-show="scale" transition-hide="scale">
<q-date now-btn v-model="dateModel" minimal mask="YYYY-MM-DD" @input="dateChoose">
<div class="row items-center justify-end">
<q-btn v-close-popup label="关闭" color="primary q-px-md" flat />
</div>
</q-date>
</q-popup-proxy>
</q-btn> -->
<el-date-picker
v-model="dateModel"
type="date"
......@@ -22,204 +41,248 @@
</div>
<ClassroomNav :NavData="navData" :activeNav="msg.RoomId" :activeFaNav="msg.SchoolId" @success="successNav"/>
</div>
<div class="right">
<Calendar :tbodayData="tbodayData" :startT="dateModel" @change="CalendarChange"></Calendar>
</div>
</div> -->
<div class="right">
<Calendar :tbodayData="tbodayData"></Calendar>
</div>
</div>
</template>
<script>
import ClassroomNav from "./components/classroomNav";
import Calendar from './components/scenicSummary.vue'
import {
getSchoolAndRoomNav,
getClassRoomTimeList
<script>
import ClassroomNav from "./components/classroomNav";
import Calendar from './components/scenicSummary.vue'
import {
getSchoolAndRoomNav,
getClassRoomTimeList
} from '../../api/classroom/index';
export default {
meta: {
title: "使用记录"
},
components:{
ClassroomNav,
Calendar,
components: {
ClassroomNav,
Calendar,
},
data() {
return {
dateModel1:"",
dateModel:"",
return {
dateModel: "",
loading: true,
schoolId:0,
navData:[],
msg:{
RoomId:0,
SchoolId:0,
StartTime:"2020-07-08",
EndTime:""
schoolId: 0,
navData: [],
msg: {
ClassRoomId: 0,
SchoolId: 0,
StartTime: "",
EndTime: ""
},
tbodayData:[]
tbodayData: [],
schoolopt: [],
classroomopt: [{
RoomName: "不限",
RoomId: 0
}],
};
},
created(){
if(this.$route.query.key){
this.msg.SchoolId=this.$route.query.key
created() {
if (this.$route.query.key) {
this.msg.SchoolId = this.$route.query.key
}
if(this.$route.query.roomId){
this.msg.RoomId=this.$route.query.roomId
if (this.$route.query.roomId) {
this.msg.ClassRoomId = this.$route.query.roomId
}
let d=new Date();
let year =d.getFullYear();
let month=d.getMonth()+1;
month=month<10?'0'+month:month;
let day=d.getDate();
day=day<10?'0'+day:day;
let today=year+'-'+month+'-'+day;
this.msg.StartTime=today;
this.dateModel=today;
let endDate = new Date(d.getTime() + 6 * 24 * 60 * 60 * 1000);
let endYear = endDate.getFullYear();
let enDMonth = endDate.getMonth() + 1
if (enDMonth < 10) {
enDMonth = '0' + enDMonth
}
let endDay = endDate.getDate()
if (endDay < 10) {
endDay = '0' + endDay
}
let end = endYear + '-' + enDMonth + '-' + endDay
this.msg.EndTime = end;
let d = new Date();
let year = d.getFullYear();
let month = d.getMonth() + 1;
month = month < 10 ? '0' + month : month;
let day = d.getDate();
day = day < 10 ? '0' + day : day;
let today = year + '-' + month + '-' + day;
this.msg.StartTime = today;
this.dateModel = today;
this.getEndTime(today)
this.getNavList();
},
mounted(){
this.getNavList();
// this.getClassRoomTimeList();
},
methods:{
methods: {
//筛选教室
filterFn(val, update) {
update(() => {
if (val === '') {
this.classroomopt = JSON.parse(JSON.stringify(this.classroomopt))
} else {
const needle = val.toLowerCase();
this.classroomopt = this.classroomopt.filter(v => v.RoomName.toLowerCase().indexOf(needle) > -1);
}
})
},
// 获取校区教室导航列表
getNavList() {
let that=this
getSchoolAndRoomNav({}).then(res => {
if(res.Code===1){
this.navData=res.Data
if(!this.$route.query.key){
this.msg.SchoolId=this.navData[0].Key
}
if(!this.$route.query.roomId){
this.msg.RoomId=this.navData[0].RoomList[0].RoomId
}
that.getClassRoomTimeList()
}
}).catch(() => {
})
},
//获取教室使用记录
getClassRoomTimeList() {
getClassRoomTimeList(this.msg).then(res => {
this.loading = false
if(res.Code===1){
this.tbodayData=res.Data
}
}).catch(() => {
this.loading = false;
})
},
//选择校区教室导航
successNav(val){
this.msg.RoomId=val.RoomId
this.msg.SchoolId=val.schoolId
this.getClassRoomTimeList();
this.$forceUpdate()
},
dateChoose(value, reason, details){
},
//获取结束日期
getEndTime(date){
let d=Date.parse(date)
let endDate = new Date(d + 6 * 24 * 60 * 60 * 1000);
let endYear = endDate.getFullYear();
let enDMonth = endDate.getMonth() + 1
if (enDMonth < 10) {
enDMonth = '0' + enDMonth
}
let endDay = endDate.getDate()
if (endDay < 10) {
endDay = '0' + endDay
}
let end = endYear + '-' + enDMonth + '-' + endDay
this.msg.EndTime = end;
},
//切换日历
CalendarChange(val){
let arr=val.split('-');
if(arr[1].length==1){
let month=parseInt(arr[1])
if(month<10){
arr[1]='0'+arr[1]
getNavList() {
getSchoolAndRoomNav({}).then(res => {
if (res.Code === 1) {
this.navData = res.Data
this.schoolopt = res.Data
if (!this.$route.query.key) {
this.msg.SchoolId = res.Data[0].Key
}
this.schoolopt.unshift({
SchoolName: "不限",
Key: -1
})
this.schoolChange2(this.msg.SchoolId)
}
}).catch(() => {
})
},
schoolChange(val) {
if (val !== -1) {
let res = this.schoolopt.filter(item => {
return item.Key == val
})
if (res.length > 0) {
let obj = {
RoomName: "不限",
RoomId: 0
}
this.classroomopt = [obj, ...res[0].RoomList]
}
let newVal= arr.join("-")
this.dateModel=newVal
this.msg.StartTime=newVal
this.getEndTime(newVal)
this.getClassRoomTimeList();
this.$forceUpdate()
}
this.msg.ClassRoomId = 0
this.getClassRoomTimeList()
},
schoolChange2(val) {
let res = this.schoolopt.filter(item => {
return item.Key == val
})
if (res.length > 0) {
let obj = {
RoomName: "不限",
RoomId: 0
}
this.classroomopt = [obj, ...res[0].RoomList]
}
this.getClassRoomTimeList()
},
//获取教室使用记录
getClassRoomTimeList() {
getClassRoomTimeList(this.msg).then(res => {
this.loading = false
if (res.Code === 1) {
this.tbodayData = res.Data
}
}).catch(() => {
this.loading = false;
})
},
//选择校区教室导航
successNav(val) {
this.msg.ClassRoomId = val.RoomId
this.msg.SchoolId = val.schoolId
this.getClassRoomTimeList();
this.$forceUpdate()
},
dateChoose(value, reason, details) {
},
//获取结束日期
getEndTime(date) {
let d = Date.parse(date)
let endDate = new Date(d + 29 * 24 * 60 * 60 * 1000);
let endYear = endDate.getFullYear();
let enDMonth = endDate.getMonth() + 1
if (enDMonth < 10) {
enDMonth = '0' + enDMonth
}
let endDay = endDate.getDate()
if (endDay < 10) {
endDay = '0' + endDay
}
let end = endYear + '-' + enDMonth + '-' + endDay
this.msg.EndTime = end;
},
changedate(val) {
if (!val) {
val = this.dateModel
}
this.getEndTime(val)
this.getClassRoomTimeList()
}
}
};
</script>
<style lang="scss" scoped>
.con{
padding: 5px !important;
display: flex;
height: calc( 100vh - 80px);
.left{
width: 170px;
background-color: rgb(245, 246, 247);
min-height: 100%;
}
.right{
box-sizing: border-box;
width: calc(100% + 10px);
padding-right: 10px;
height: calc(100vh - 100px);
<style lang="scss">
.con {
padding: 5px !important;
// display: flex;
height: calc(100vh - 80px);
.left {
width: 170px;
background-color: rgb(245, 246, 247);
min-height: 100%;
}
.right {
box-sizing: border-box;
// width: calc(100% + 10px);
width: 100%;
padding-right: 10px;
height: calc(100vh - 180px);
// height: 900px;
overflow-x: scroll;
overflow-y: hidden;
}
}
.right::-webkit-scrollbar{
width:10px;
height:10px;
/**/
}
.right::-webkit-scrollbar-track{
background: rgb(239, 239, 239);
border-radius:2px;
}
.right::-webkit-scrollbar-thumb{
background: #bfbfbf;
border-radius:10px;
}
.right::-webkit-scrollbar-thumb:hover{
background: #333;
}
// .right::-webkit-scrollbar-corner{
// background: #179a16;
// }
.dateModel{
// height: 50px;
padding: 20px 10px;
display: flex;
flex-wrap: wrap;
justify-content: center;
align-content: space-around;
}
// overflow-x: scroll;
overflow-y: hidden;
}
}
.right::-webkit-scrollbar {
width: 10px;
height: 10px;
/**/
}
.right::-webkit-scrollbar-track {
background: rgb(239, 239, 239);
border-radius: 2px;
}
.right::-webkit-scrollbar-thumb {
background: #bfbfbf;
border-radius: 10px;
}
.right::-webkit-scrollbar-thumb:hover {
background: #333;
}
// .right::-webkit-scrollbar-corner{
// background: #179a16;
// }
.dateModel {
// height: 50px;
padding: 20px 10px;
display: flex;
flex-wrap: wrap;
justify-content: center;
align-content: space-around;
}
.Sysuser_Date .el-input {
width: 100%;
border: none;
background-color: transparent;
}
.Sysuser_Date .el-input__inner {
width: 100%;
border: none;
background-color: transparent;
}
</style>
......@@ -4,7 +4,7 @@
<div class="row col" style="justify-content: space-between;align-items: center;margin-bottom: 10px">
<div>
<template v-if="data&& data.ClassInfo">
{{data.ClassInfo.ClassName}}
{{data.ClassInfo.ClassName}} <span v-if='data.ClassInfo.ClassNo!=null' style="cursor: pointer;text-decoration: underline;" @click='gojapaneseTrain(data.ClassInfo.ClassNo)'>({{data.ClassInfo.ClassNo}})</span>
</template>
</div>
<div class="row" style="align-items: center">
......@@ -118,6 +118,12 @@
//刷新页面
refreshClassOrder() {
this.getList();
},
gojapaneseTrain(ClassNo){//跳转到产品列表
var tempStr = '/sale/japaneseTrain?ClassNo=' + ClassNo;
this.$router.push({
path: tempStr
});
}
}
}
......
......@@ -182,101 +182,124 @@
line-height: unset !important;
letter-spacing: unset !important;
}
</style>
<template>
<div class="row">
<div class="page-body lessonPreparation" style="width:40%" v-if="chapter">
<div class="prepareTopTitle q-table__title">
<div class="prePare_Line"></div>
<div>{{chapter.CourseName}}</div>
</div>
<div class="preSecond">
{{chapter.ChapterName}}
</div>
<div class="prepareTopTitle q-table__title">
<div class="prePare_Line" style="background-color:#2961FE"></div>
<div>章节学习内容</div>
</div>
<div class="prePare_Content" v-if="chapter.ChapterContent!=''" v-html="decodeURIComponent(chapter.ChapterContent)"></div>
<div class="prePare_Content text-center q-pa-lg" v-else>暂无内容</div>
<div class="prepareTopTitle q-table__title">
<div class="prePare_Line" style="background-color:#2961FE"></div>
<div>教学目标</div>
</div>
<div class="prePare_Content" style="background:#F7F0FB" v-if="chapter.Objectives!=''" v-html="decodeURIComponent(chapter.Objectives)">
</div>
<div class="prePare_Content text-center q-pa-lg" style="background:#F7F0FB" v-else>暂无内容</div>
<div class="prepareTopTitle q-table__title">
<div class="prePare_Line" style="background:#2961FE"></div>
<div>学生学习要求</div>
</div>
<div class="prePare_Content" style="background:#FBF6F0" v-if="chapter.Requirement!=''" v-html="decodeURIComponent(chapter.Requirement)">
</div>
<div class="prePare_Content text-center q-pa-lg" style="background:#FBF6F0" v-else>暂无内容</div>
</div>
<div class="page-body lessonPreparation row col">
<div>
<div class="lessTop">备课编辑</div>
<div style="margin:20px 0;">
<span class="Less_LeftIcon"></span>
教案名称:<el-input v-model="addMsg.LessonPlan" placeholder="教案名称" class="w260"></el-input>
<span style="margin-left:30px;">
<el-input v-model="addMsg.CourseNum" style="margin:0 5px;" placeholder="第几课" @keyup.native="checkInteger(addMsg,'CourseNum')" class="w60"></el-input></span>
<span style="float:right;display:inline-block;margin-left:20px;">
<q-btn color="accent" size="sm" class="q-mr-md" icon="add" label="选择模板" @click="getModule()" />
</span>
</div>
<div style="display:flex;">
<div>
<span class="less_Time" style="margin-left:30px;">时间:</span>
<span>{{WorkDate}}</span>
<div class="row full-height">
<div class="page-body lessonPreparation" style="width:40%;height: calc(100% - 30px) !important;">
<q-scroll-area
:thumb-style="thumbStyle"
:content-style="contentStyle"
:content-active-style="contentActiveStyle"
class="full-width full-height"
>
<div class="row">
<div class="prepareTopTitle q-table__title col">
<div class="prePare_Line"></div>
<div>{{courseName}}</div>
</div>
<div style="margin-left:188px;">
<span class="less_Time">担当者:</span>
<span>{{TeacherName}}</span>
<div class="prepareTopTitle q-table__title" v-if="chapters && chapters.length>0">
<div class="prePare_Line"></div>
<div>{{chapters[0].ChapterName}}</div>
</div>
</div>
<div class="teach_Content">
教学目标
</div>
<div style="" v-for="(item,index) in addMsg.LessonPlanList" v-if="index==0">
<q-input filled stack-label maxlength="50" v-model="item.CourseTitle" :dense="false" class="col-12 q-pb-lg" label="教学目标" />
</div>
<div class="teach_Content">
教学难点
</div>
<div style="" v-for="(item,index) in addMsg.LessonPlanList" v-if="index==0">
<!-- <div style="margin-top: 10px">{{item.CourseName}}</div> -->
<UeEditor class="col-8" v-model="item.LessonPlanProjectsList[0].ProjectContent" :config="config"></UeEditor>
<div v-if="chapters && chapters.length>0">
<div v-for="(chapter,i) in chapters[0].ChildList">
<div class="preSecond">
{{chapter.ChapterName}}
</div>
<div class="prepareTopTitle q-table__title">
<div class="prePare_Line" style="background-color:#2961FE"></div>
<div>章节学习内容</div>
</div>
<div class="prePare_Content" v-if="chapter.ChapterContent!=''" v-html="decodeURIComponent(chapter.ChapterContent)"></div>
<div class="prePare_Content text-center q-pa-lg" v-else>暂无内容</div>
<div class="prepareTopTitle q-table__title">
<div class="prePare_Line" style="background-color:#2961FE"></div>
<div>教学目标</div>
</div>
<div class="prePare_Content" style="background:#F7F0FB" v-if="chapter.Objectives!=''" v-html="decodeURIComponent(chapter.Objectives)">
</div>
<div class="prePare_Content text-center q-pa-lg" style="background:#F7F0FB" v-else>暂无内容</div>
<div class="prepareTopTitle q-table__title">
<div class="prePare_Line" style="background:#2961FE"></div>
<div>学生学习要求</div>
</div>
<div class="prePare_Content" style="background:#FBF6F0" v-if="chapter.Requirement!=''" v-html="decodeURIComponent(chapter.Requirement)">
</div>
<div class="prePare_Content text-center q-pa-lg" style="background:#FBF6F0" v-else>暂无内容</div>
</div>
</div>
<div style="" v-for="(item,index) in addMsg.LessonPlanList" v-if="index==0">
<div v-else class="q-pa-lg bg-grey-2 rounded-borders q-my-lg">暂无章节信息</div>
</q-scroll-area>
</div>
<div class="page-body lessonPreparation row col" style="height: calc(100% - 30px) !important;">
<q-scroll-area
:thumb-style="thumbStyle"
:content-style="contentStyle"
:content-active-style="contentActiveStyle"
class="full-width full-height"
>
<div>
<div class="lessTop">备课编辑</div>
<div style="margin:20px 0;">
<span class="Less_LeftIcon"></span>
教案名称:<el-input v-model="addMsg.LessonPlan" placeholder="教案名称" class="w260"></el-input>
<span style="margin-left:30px;">
<el-input v-model="addMsg.CourseNum" style="margin:0 5px;" placeholder="第几课" @keyup.native="checkInteger(addMsg,'CourseNum')" class="w60"></el-input></span>
<span style="float:right;display:inline-block;margin-left:20px;">
<q-btn color="accent" size="sm" class="q-mr-md" icon="add" label="选择模板" @click="getModule()" />
</span>
</div>
<div style="display:flex;">
<div>
<span class="less_Time" style="margin-left:30px;">时间:</span>
<span>{{WorkDate}}</span>
</div>
<div style="margin-left:188px;">
<span class="less_Time">担当者:</span>
<span>{{TeacherName}}</span>
</div>
</div>
<div class="teach_Content">
教学目标
</div>
<div style="" v-for="(item,index) in addMsg.LessonPlanList" v-if="index==0">
<q-input :rows="5" type="textarea" filled stack-label v-model="item.CourseTitle" :dense="false" class="col-12 q-pb-lg" label="教学目标" />
</div>
<div class="teach_Content">
教学流程
教学难点
</div>
<div class="row q-gutter-xs cont" v-for="(subItem,subIndex) in item.LessonPlanDetailsList" style="margin-top:20px;align-items: self-end;width:100%;">
<div style="" v-for="(item,index) in addMsg.LessonPlanList" v-if="index==0">
<!-- <div style="margin-top: 10px">{{item.CourseName}}</div> -->
<UeEditor class="col-8" v-model="item.LessonPlanProjectsList[0].ProjectContent" :config="config"></UeEditor>
</div>
<div style="" v-for="(item,index) in addMsg.LessonPlanList" v-if="index==0">
<div class="teach_Content">
教学流程
</div>
<div class="row q-gutter-xs cont" v-for="(subItem,subIndex) in item.LessonPlanDetailsList" style="margin-top:20px;align-items: self-end;width:100%;">
<q-input filled stack-label maxlength="20" v-model="subItem.Duration" @keyup.native="checkInteger(subItem,'Duration')" style="width: 100%;" :dense="false" class=" " label="时长" suffix="分钟" />
<q-input filled stack-label v-model="subItem.Duration" @keyup.native="checkInteger(subItem,'Duration')" style="width: 100%;" :dense="false" class=" " label="时长" suffix="分钟" />
<UeEditor class="" style="width: 100%;" v-model="subItem.ProjectContent" :config="config"></UeEditor>
<div class="Less_Delete " title="删除详情" @click="delLessInfo(index,subIndex)">
<i class="iconfont icon-shanchu"></i>
<UeEditor class="" style="width: 100%;" v-model="subItem.ProjectContent" :config="config"></UeEditor>
<div class="Less_Delete " title="删除详情" @click="delLessInfo(index,subIndex)">
<i class="iconfont icon-shanchu"></i>
</div>
</div>
</div>
<div class="addbtn flex flex-center" @click="addPlanDetailsList(index)">
<i class="iconfont icon-add"></i>
<div class="addbtn flex flex-center" @click="addPlanDetailsList(index)">
<i class="iconfont icon-add"></i>
</div>
</div>
</div>
<div style="margin-top:30px;" v-if="isShowEdit">
<span class="beikeModule" @click="saveInfo(1)">存为模板</span>
<q-btn label="提交" size="md" color="accent q-px-md" @click="saveInfo(0)" />
<div style="margin-top:30px;">
<span class="beikeModule" @click="saveInfo(1)">存为模板</span>
<q-btn label="提交" size="md" color="accent q-px-md" @click="saveInfo(0)" />
</div>
<lessoncheck-form v-if="IsShowLessForm" @close="closeTeachSaveForm" @success="refreshPage">
</lessoncheck-form>
</div>
<lessoncheck-form v-if="IsShowLessForm" @close="closeTeachSaveForm" @success="refreshPage">
</lessoncheck-form>
</div>
</q-scroll-area>
</div>
</div>
</template>
......@@ -299,6 +322,15 @@ export default {
},
data() {
return {
contentStyle: {},
contentActiveStyle: {},
thumbStyle: {
right: '2px',
borderRadius: '5px',
backgroundColor: '#027be3',
width: '5px',
opacity: 0.75
},
msg: {
ClassId: 0,
School_Id: 0,
......@@ -321,7 +353,8 @@ export default {
},
IsShowLessForm: false,
nowDate: '',
chapter: null,
chapters: null,
courseName:"",
isShowEdit: false, //是否显示提交按钮
}
},
......@@ -350,9 +383,16 @@ export default {
console.log(res.Data)
if (res.Code == 1) {
let data = res.Data;
if (data.Chapter) {
this.chapter = data.Chapter
if (data.Chapter && data.Chapter.length>0) {
if(!data.Chapter[0].ChildList || data.Chapter[0].ChildList.length==0){
console.log(data.Chapter[0].ChildList.length)
data.Chapter[0].ChildList=[]
data.Chapter[0].ChildList.push(data.Chapter[0])
}
this.chapters = data.Chapter
}
this.courseName=data.CourseName
// this.addMsg.CourseNum = data.CourseNum;
this.addMsg.ClassId = data.ClassId;
this.addMsg.School_Id = data.School_Id;
......
......@@ -17,8 +17,6 @@
}
.prepareclassDetails .comment {
height: 600px;
overflow: auto;
padding: 0 15px;
}
......@@ -218,190 +216,229 @@
<template>
<div class="row prepareclassDetails">
<div class="page-body col" v-if="data.Chapter">
<div class="prepareTopTitle q-table__title">
<div class="prePare_Line"></div>
<div>{{data.Chapter.CourseName}}</div>
</div>
<div class="preSecond">
{{data.Chapter.ChapterName}}
</div>
<div class="prepareTopTitle q-table__title">
<div class="prePare_Line" style="background-color:#2961FE"></div>
<div>章节学习内容</div>
</div>
<div class="prePare_Content" v-if="data.Chapter.ChapterContent!=''"
v-html="decodeURIComponent(data.Chapter.ChapterContent)"></div>
<div class="prePare_Content text-center q-pa-lg" v-else>暂无内容</div>
<div class="prepareTopTitle q-table__title">
<div class="prePare_Line" style="background-color:#2961FE"></div>
<div>教学目标</div>
</div>
<div class="prePare_Content" style="background:#F7F0FB" v-if="data.Chapter.Objectives!=''"
v-html="decodeURIComponent(data.Chapter.Objectives)">
</div>
<div class="prePare_Content text-center q-pa-lg" style="background:#F7F0FB" v-else>暂无内容</div>
<div class="prepareTopTitle q-table__title">
<div class="prePare_Line" style="background:#2961FE"></div>
<div>学生学习要求</div>
</div>
<div class="prePare_Content" style="background:#FBF6F0" v-if="data.Chapter.Requirement!=''"
v-html="decodeURIComponent(data.Chapter.Requirement)">
</div>
<div class="prePare_Content text-center q-pa-lg" style="background:#FBF6F0" v-else>暂无内容</div>
<div class="page-body col" style="height: calc(100% - 30px) !important;" v-if="data.Chapter">
<q-scroll-area
:thumb-style="thumbStyle"
:content-style="contentStyle"
:content-active-style="contentActiveStyle"
class="full-width full-height"
>
<div class="row">
<div class="prepareTopTitle q-table__title col">
<div class="prePare_Line"></div>
<div>{{data.CourseName}}</div>
</div>
<div class="prepareTopTitle q-table__title" v-if="data.Chapter && data.Chapter.length>0">
<div class="prePare_Line"></div>
<div>{{data.Chapter[0].ChapterName}}</div>
</div>
</div>
<div v-if="data.Chapter && data.Chapter.length>0">
<div v-for="(chapter,i) in data.Chapter[0].ChildList">
<div class="preSecond">
{{chapter.ChapterName}}
</div>
<div class="prepareTopTitle q-table__title">
<div class="prePare_Line" style="background-color:#2961FE"></div>
<div>章节学习内容</div>
</div>
<div class="prePare_Content" v-if="chapter.ChapterContent!=''" v-html="decodeURIComponent(chapter.ChapterContent)"></div>
<div class="prePare_Content text-center q-pa-lg" v-else>暂无内容</div>
<div class="prepareTopTitle q-table__title">
<div class="prePare_Line" style="background-color:#2961FE"></div>
<div>教学目标</div>
</div>
<div class="prePare_Content" style="background:#F7F0FB" v-if="chapter.Objectives!=''" v-html="decodeURIComponent(chapter.Objectives)">
</div>
<div class="prePare_Content text-center q-pa-lg" style="background:#F7F0FB" v-else>暂无内容</div>
<div class="prepareTopTitle q-table__title">
<div class="prePare_Line" style="background:#2961FE"></div>
<div>学生学习要求</div>
</div>
<div class="prePare_Content" style="background:#FBF6F0" v-if="chapter.Requirement!=''" v-html="decodeURIComponent(chapter.Requirement)">
</div>
<div class="prePare_Content text-center q-pa-lg" style="background:#FBF6F0" v-else>暂无内容</div>
</div>
</div>
<div v-else class="q-pa-lg bg-grey-2 rounded-borders q-my-lg">暂无章节信息</div>
</q-scroll-area>
</div>
<div class="page-body col">
<div class="q-table__title">备课内容</div>
<div style="width: 100%;">
<div class="row" style="margin-top: 10px;align-items: center">
<div class="beike-jan">
<div class="jan-l"></div>
</div>
<div class="row" style="font-size: 14px;color: #000000;font-weight: bold;font-family: perfectFont">
教案·{{data.ClassId}}
<span class="text12-o marginl-15"
style="line-height: 21px;font-weight: inherit">{{data.LessonPlan}}·第{{data.CourseNum}}</span>
</div>
</div>
<div class="row marginl-15 margint-15">
<div class="row">
<span class="text12-n">时间:</span>
<span class="text12-o">{{data.WorkDate}} ({{data.WeekStr}}) {{data.DayTime}}</span>
</div>
<div class="row" style="margin-left: 100px">
<span class="text12-n">担当者:</span>
<span class="text12-o">{{data.TeacherName}}</span>
<div class="page-body col" style="height: calc(100% - 30px) !important;">
<q-scroll-area
:thumb-style="thumbStyle"
:content-style="contentStyle"
:content-active-style="contentActiveStyle"
class="full-width full-height"
>
<div class="q-table__title">备课内容</div>
<div style="width: 100%;">
<div class="row" style="margin-top: 10px;align-items: center">
<div class="beike-jan">
<div class="jan-l"></div>
</div>
<div class="row" style="font-size: 14px;color: #000000;font-weight: bold;font-family: perfectFont">
教案·{{data.ClassId}}
<span class="text12-o marginl-15"
style="line-height: 21px;font-weight: inherit">{{data.LessonPlan}}·第{{data.CourseNum}}</span>
</div>
</div>
</div>
<div class="marginl-15 margint-15 ">
<div class="text-title">教学目标</div>
<div class="margint-15 row" style="align-items: flex-start"
v-for="(item,index) in data.LessonPlanList" :key="index" v-if="index==0">
<div class="text14-o q-pa-md Pre-ComBg rounded-borders" style="flex:1">{{item.CourseTitle}}</div>
<div class="row marginl-15 margint-15">
<div class="row">
<span class="text12-n">时间:</span>
<span class="text12-o">{{data.WorkDate}} ({{data.WeekStr}}) {{data.DayTime}}</span>
</div>
<div class="row" style="margin-left: 100px">
<span class="text12-n">担当者:</span>
<span class="text12-o">{{data.TeacherName}}</span>
</div>
</div>
</div>
<div class="marginl-15 margint-15 ">
<div class="text-title">教学难点</div>
<div class="margint-15" style="align-items: flex-start"
v-for="(item,index) in data.LessonPlanList" :key="index" v-if="index==0">
<!-- <div class="text12-n width50">{{item.CourseName}}</div> -->
<div class="text14-o q-pa-md Pre-ComBg rounded-borders" v-for="(x,y) in item.LessonPlanProjectsList" :key="y" v-if="x.ProjectContent!=''">
<div v-html="x.ProjectContent">
</div>
<div class="marginl-15 margint-15 ">
<div class="text-title">教学目标</div>
<div class="margint-15 row" style="align-items: flex-start"
v-for="(item,index) in data.LessonPlanList" :key="index" v-if="index==0">
<div class="text14-o q-pa-md Pre-ComBg rounded-borders" style="flex:1">{{item.CourseTitle}}</div>
</div>
</div>
</div>
<div class="marginl-15 margint-15 ">
<div class="text-title">教学流程</div>
<div class="margint-15 row" style="align-items: flex-start;flex-wrap: nowrap"
v-for="(item,index) in data.LessonPlanList" :key="index" v-if="index==0">
<!-- <div class="text12-n width50">{{item.CourseName}}</div> -->
<div class="text14-o" style="flex:1">
<div class="column" v-for="(x,y) in item.LessonPlanDetailsList" :key="y">
<div class="text14-l" style="margin-bottom:10px;">{{x.Duration}}分钟-{{x.DurationEndTime}}</div>
<div class="text14-o q-pa-md Pre-ComBg rounded-borders" v-html="x.ProjectContent"></div>
<!-- <template v-if="data.IsEditSummary>0">
<div v-if="x.Summary" style="width: 100%;background: #F0F5FB;border-radius: 5px;padding:10px;margin-bottom:20px;">
单项总结:{{x.Summary}}
</div>
</template>
<template v-else>
<div style="width: 100%;background: #F0F5FB;border-radius: 5px;margin-bottom:20px;">
<q-input
style="background:#F0F5FB ;font-size: 12px"
v-model="x.Summary"
label="课后总结"
type="textarea"
filled
clearable
autogrow
:disable="AccountType||!isCanEdit"
/>
</div>
</template> -->
<div class="marginl-15 margint-15 ">
<div class="text-title">教学难点</div>
<div class="margint-15" style="align-items: flex-start"
v-for="(item,index) in data.LessonPlanList" :key="index" v-if="index==0">
<!-- <div class="text12-n width50">{{item.CourseName}}</div> -->
<div class="text14-o q-pa-md Pre-ComBg rounded-borders" v-for="(x,y) in item.LessonPlanProjectsList" :key="y" v-if="x.ProjectContent!=''">
<div v-html="x.ProjectContent">
</div>
</div>
</div>
</div>
</div>
<div class="marginl-15">
<div class="row" style="margin: 20px 0;align-items: center">
<div class="beike-jan">
<div class="jan-l"></div>
</div>
<div class="row" style="font-size: 14px;color: #000000;font-weight: bold;font-family: perfectFont">
课后总结
<div class="marginl-15 margint-15 ">
<div class="text-title">教学流程</div>
<div class="margint-15 row" style="align-items: flex-start;flex-wrap: nowrap"
v-for="(item,index) in data.LessonPlanList" :key="index" v-if="index==0">
<!-- <div class="text12-n width50">{{item.CourseName}}</div> -->
<div class="text14-o" style="flex:1">
<div class="column" v-for="(x,y) in item.LessonPlanDetailsList" :key="y">
<div class="text14-l" style="margin-bottom:10px;">{{x.Duration}}分钟-{{x.DurationEndTime}}</div>
<div class="text14-o q-pa-md Pre-ComBg rounded-borders" v-html="x.ProjectContent"></div>
<!-- <template v-if="data.IsEditSummary>0">
<div v-if="x.Summary" style="width: 100%;background: #F0F5FB;border-radius: 5px;padding:10px;margin-bottom:20px;">
单项总结:{{x.Summary}}
</div>
</template>
<template v-else>
<div style="width: 100%;background: #F0F5FB;border-radius: 5px;margin-bottom:20px;">
<q-input
style="background:#F0F5FB ;font-size: 12px"
v-model="x.Summary"
label="课后总结"
type="textarea"
filled
clearable
autogrow
:disable="AccountType||!isCanEdit"
/>
</div>
</template> -->
</div>
</div>
</div>
</div>
<template v-if="LessonPlanNum>0&&LessonPlanSummaryNum>0">
<div class="text14-o q-pa-md Pre-ComBg rounded-borders" style="margin-top:10px;background-color:rgb(251, 246, 240)">{{conclusion}}</div>
<div style="display:flex;flex-wrap: wrap;margin-top:20px;">
<div v-if="ImgList.length>0" v-for="(item,index) in ImgList">
<div class="pre-ImgDiv">
<q-img :src="item" spinner-color="white" style="height: 100%;height:100%" />
</div>
<div class="marginl-15">
<div class="row" style="margin: 20px 0;align-items: center">
<div class="beike-jan">
<div class="jan-l"></div>
</div>
<div class="row" style="font-size: 14px;color: #000000;font-weight: bold;font-family: perfectFont">
课后总结
</div>
</div>
</template>
<template v-else>
<q-input type="textarea" filled label="课后总结" v-model="conclusion" :rows="3" style="flex:1;margin-top:20px;" />
<div style="display:flex;flex-wrap: wrap;margin-top:20px;">
<div v-if="ImgList.length>0" v-for="(item,index) in ImgList">
<div class="pre-ImgDiv">
<q-img :src="item" spinner-color="white" style="height: 100%;height:100%" />
<q-btn size="7px" @click="deleteItemImg(index)" style="position:absolute;right:-5px;top:-5px;" round
color="red" icon="iconfont icon-guanbi1" />
<template v-if="(LessonPlanNum>0&&LessonPlanSummaryNum>0) || this.data.LessonPlanList[0].Summary!=''">
<div class="text14-o q-pa-md Pre-ComBg rounded-borders" style="margin-top:10px;background-color:rgb(251, 246, 240)">{{conclusion}}</div>
<div style="display:flex;flex-wrap: wrap;margin-top:20px;">
<div v-if="ImgList.length>0" v-for="(item,index) in ImgList">
<div class="pre-ImgDiv">
<el-image
style="height: 100%;height:100%"
:src="item"
fit="cover"
:preview-src-list="ImgList"></el-image>
</div>
</div>
</div>
<el-upload action="" class="avatar-uploader prepareDuty" :before-upload="uploadFile"
:show-file-list="false">
<i class="el-icon-plus avatar-uploader-icon"></i>
</el-upload>
</div>
</template>
</div>
<q-btn color="accent" size="sm" v-if="LessonPlanNum>0&&LessonPlanSummaryNum==0&&isShowBtn" class="margint-15" @click="saveOrderInfo()"
style="margin:20px 0 0 15px;width:97%;height:40px;" label="提交" />
</template>
<template v-else>
<q-input type="textarea" filled label="课后总结" v-model="conclusion" :rows="3" style="flex:1;margin-top:20px;" />
<div style="display:flex;flex-wrap: wrap;margin-top:20px;">
<div v-if="ImgList.length>0" v-for="(item,index) in ImgList">
<div class="pre-ImgDiv">
<el-image
style="height: 100%;height:100%"
:src="item"
fit="cover"
:preview-src-list="ImgList"></el-image>
<q-btn size="7px" @click="deleteItemImg(index)" style="position:absolute;right:-5px;top:-5px;" round
color="red" icon="iconfont icon-guanbi1" />
</div>
</div>
<el-upload action="" class="avatar-uploader prepareDuty" :before-upload="uploadFile"
:show-file-list="false">
<i class="el-icon-plus avatar-uploader-icon"></i>
</el-upload>
</div>
</template>
</div>
<q-btn color="accent" size="sm" v-if="LessonPlanNum>0&&LessonPlanSummaryNum==0&&isShowBtn" class="margint-15" @click="saveOrderInfo()"
style="margin:20px 0 0 15px;width:97%;height:40px;" label="提交" />
<!-- <q-btn color="accent" size="sm" class="q-mr-md marginl-15 margint-15" label="提交" @click="saveOrderInfo()"
:loading="Dloading" v-if="(AccountType==false&&data.IsEditSummary<=0)&&isUpData" /> -->
</div>
<!-- <q-btn color="accent" size="sm" class="q-mr-md marginl-15 margint-15" label="提交" @click="saveOrderInfo()"
:loading="Dloading" v-if="(AccountType==false&&data.IsEditSummary<=0)&&isUpData" /> -->
</div>
</q-scroll-area>
</div>
<div class="col-3"
style="position: relative;overflow: hidden;border-radius: 6px;background: #FFF;margin: 5px;height: 800px">
style="position: relative;overflow: hidden;border-radius: 6px;background: #FFF;margin: 5px;height: calc(100% - 30px) !important;">
<div class="q-table__title" style="padding: 15px;">评价</div>
<div class="comment">
<div class="row"
style="width: 100%;height: 50px;align-items: center;justify-content: center;font-size: 16px;color: #999999"
v-if="CommentList.length==0">
暂无评论
</div>
<div class="comment-item" v-for="(item,index) in CommentList" :key="index" v-if="CommentList.length>0">
<div class="row">
<!-- <div class="c-i-t-l row">{{item.CreateByName.substr(0, 1)}}</div>-->
<q-avatar size="35px" rounded color="primary" text-color="white">
<img :src="userInfo.UserIcon" v-if="item.UserIcon">
<span v-else>{{item.CreateByName.substring(0,1)}}</span>
</q-avatar>
<div class="c-i-t-r column">
<div class="row" style="align-items: center">
<span style="margin-right: 10px">{{item.CreateByName}}</span>
<q-rating v-model="item.Score" size="1em" v-if="item.Score!=-1" icon="thumb_up" readonly />
<q-scroll-area
:thumb-style="thumbStyle"
:content-style="contentStyle"
:content-active-style="contentActiveStyle"
class="full-width"
style="height:calc(100% - 161px);"
>
<div class="comment">
<div class="row"
style="width: 100%;height: 50px;align-items: center;justify-content: center;font-size: 16px;color: #999999"
v-if="CommentList.length==0">
暂无评论
</div>
<div class="comment-item" v-for="(item,index) in CommentList" :key="index" v-if="CommentList.length>0">
<div class="row">
<!-- <div class="c-i-t-l row">{{item.CreateByName.substr(0, 1)}}</div>-->
<q-avatar size="35px" rounded color="primary" text-color="white">
<img :src="userInfo.UserIcon" v-if="item.UserIcon">
<span v-else>{{item.CreateByName.substring(0,1)}}</span>
</q-avatar>
<div class="c-i-t-r column">
<div class="row" style="align-items: center">
<span style="margin-right: 10px">{{item.CreateByName}}</span>
<q-rating v-model="item.Score" size="1em" v-if="item.Score!=-1" icon="thumb_up" readonly />
</div>
<span style="font-size: 12px;color: #999999">
{{item.CreateTimeStr}}
</span>
</div>
<span style="font-size: 12px;color: #999999">
{{item.CreateTimeStr}}
</span>
</div>
</div>
<div class="c-i-Comment">
{{item.Comment}}
<div class="c-i-Comment">
{{item.Comment}}
</div>
</div>
</div>
</div>
</q-scroll-area>
<!-- 评论区域-->
<div class="pl column">
<div class="row" style="align-items: center">
......@@ -443,6 +480,15 @@
name: "prepareclassDetails",
data() {
return {
contentStyle: {},
contentActiveStyle: {},
thumbStyle: {
right: '2px',
borderRadius: '5px',
backgroundColor: '#027be3',
width: '5px',
opacity: 0.75
},
msg: {
ClassId: 0,
School_Id: 0,
......@@ -529,8 +575,16 @@
getList() {
getClassLessPlan(this.msg).then(res => {
if (res.Code == 1) {
this.data = res.Data;
console.log(this.data, 'data');
let data=res.Data;
if (data.Chapter && data.Chapter.length>0) {
if(!data.Chapter[0].ChildList || data.Chapter[0].ChildList.length==0){
console.log(data.Chapter[0].ChildList.length)
data.Chapter[0].ChildList=[]
data.Chapter[0].ChildList.push(data.Chapter[0])
}
this.chapters = data.Chapter
}
this.data = data;
this.plmsg.TeacherId = res.Data.UpdateBy;
var beginTimes = this.nowDate.replace(/-/g, "/"); //当前
var endTimes = this.data.ClassEndTime.replace(/-/g, "/"); //结束
......@@ -545,6 +599,7 @@
if(this.data.LessonPlanList&&this.data.LessonPlanList.length>0){
this.conclusion = this.data.LessonPlanList[0].Summary;
this.ImgList = this.data.LessonPlanList[0].ProjectPicList;
this.isShowBtn=false
}
}
})
......
......@@ -224,6 +224,8 @@
if(this.$route.query && this.$route.query.ClassName){
let Name = decodeURI(this.$route.query.ClassName)
this.ClassName = [Name]
console.log(Name)
this.msg.pageSize = 1000
}
},
......
......@@ -363,6 +363,9 @@
if (this.$route.query && this.$route.query.ClassName) {
this.msg.ClassName = this.$route.query.ClassName;
}
if (this.$route.query && this.$route.query.ClassNo) {
this.msg.ClassNo = this.$route.query.ClassNo;
}
let nowDay = new Date();
var year = nowDay.getFullYear(); //年
var month = nowDay.getMonth() + 1; //月
......
......@@ -97,7 +97,7 @@
},
data() {
return {
ActionStr: "/Class/InitClassCheck",
ActionStr: "/Class/InitData",
parameterList: [{
Name: "",
Value: ""
......@@ -156,6 +156,7 @@
tempStr = "{" + tempStr.substring(1, tempStr.length) + "}";
data = JSON.parse(tempStr);
}
var tempMsg = {
Msg: data
};
......
......@@ -51,6 +51,7 @@
padding-left: 39px;
/* margin-top: 55px; */
margin-top: 8px;
cursor: pointer;
}
.personalData .box_l_cen {
......@@ -63,6 +64,7 @@
color: #3F4254;
padding-left: 39px;
margin-top: 8px;
cursor: pointer;
justify-content: space-between;
}
......@@ -115,7 +117,7 @@
<div class="text-muted" style="font-size:14px;margin-top: 12px;">
{{showObj.SchoolName}}·{{showObj.PostName}}</div>
<div class="q-mt-xs">
<q-btn style="background: var(--q-color-negative);color: white;" @click="logout">退出登录</q-btn>
<q-btn style="background: var(--q-color-negative);color: white;margin-top: 10px;" size="sm" @click="logout">退出登录</q-btn>
</div>
</div>
</div>
......@@ -131,9 +133,8 @@
<span class="box_l_t_l">部门:</span>
<span>{{showObj.DeptName}}</span>
</div>
<!-- <div class="box_l_title" style="margin-top: 55px;">概要信息</div> -->
<!-- <div :class="rightType==0?'box_l_title':'box_l_cen'" @click='rightType=0'>概要信息</div>
<div :class="rightType==3?'box_l_title':'box_l_cen'" @click='rightType=3'>预警信息</div> -->
<div :class="rightType==0?'box_l_title':'box_l_cen'" @click='rightType=0'>概要信息</div>
<!-- <div :class="rightType==3?'box_l_title':'box_l_cen'" @click='rightType=3'>预警信息</div> -->
<div :class="rightType==1?'box_l_title':'box_l_cen'" @click='rightType=1'>账户资料</div>
<div :class="rightType==2?'box_l_title':'box_l_cen'" @click='rightType=2'>密码修改</div>
</div>
......@@ -238,7 +239,7 @@
loading1: false,
loading2:false,
showObj: {},
rightType: 1,//右边显示类型
rightType: 0,//右边显示类型
datamodify: {},
CompanyList: [],
passwordMsg:Object.assign({},defaultpassword),
......
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