Commit b6602395 authored by sujie@126.com's avatar sujie@126.com

dd

parents 7cdaadcf 8e80cdda
......@@ -41,6 +41,12 @@ App({
},
onShow: function (params) { // 小程序启动,或从后台进入前台显示时
const {path, query, scene, shareTicket, referrerInfo} = params;
// if (visitor.version != constants.storageVersion) {
// LocalStorage.removeItem('teacher');
// LocalStorage.removeItem('user');
// LocalStorage.removeItem('dakarole');
// LocalStorage.removeItem('visitor');
// }
if(path == 'business/pages/loginregistermgt/login'){
this.globalData.fromUrl = path;
this.globalData.query = {};
......@@ -54,6 +60,18 @@ App({
this.globalData.fromUrl = 'ucenter/index';
this.globalData.query = {};
}
if (path == 'ucenter/index') {
const visitor = LocalStorage.getItem('visitor');
if (visitor && visitor.version != constants.storageVersion) {
LocalStorage.removeItem('teacher');
LocalStorage.removeItem('user');
LocalStorage.removeItem('dakarole');
LocalStorage.removeItem('visitor');
wx.reLaunch({
url: 'ucenter/index'
});
}
}
if (path != 'ucenter/index') {
this.canEnterSystem(path);
}
......@@ -117,6 +135,7 @@ App({
},
canEnterSystem (path) {
const visitor = LocalStorage.getItem('visitor');
console.log(visitor, 'visitor');
// 新版本通知
// if (LocalStorage.getItem('versionNotice') != 1 && path != 'src/pages/versionnotice/index') {
// wx.redirectTo({
......
......@@ -22,7 +22,8 @@
"index",
"studentdetail",
"editstudent",
"rewardstudent"
"rewardstudent",
"buycourse"
]
},
{
......
......@@ -94,7 +94,7 @@
<view class="item-title">班级</view>
</view>
</permission-box>
<permission-box cinfigid="1">
<permission-box cinfigid="0">
<view class="item" bindtap="gorollcalllist" data-page="myschedule" slot="menubtn">
<form report-submit="true" bindsubmit="formIdCreate" class="createidform">
<button form-type="submit" class="createidbutton">生成form</button>
......
......@@ -134,7 +134,7 @@ Page({
this.setData({
[`courseList[${this.data.page - 1}]`]: data.list
}, () => {
if (this.data.classTatol > this.caculateArrLength(this.data.courseList)) {
if (this.data.courseTatol > this.caculateArrLength(this.data.courseList)) {
let page = this.data.page + 1;
this.setData({
page,
......
......@@ -4,7 +4,8 @@ import {
loginTime
} from '../../../service/business/ucenter.js';
import {
LocalStorage
LocalStorage,
formatDay
} from '../../../utilities/index.js';
import {
commonwaitjobGet,
......@@ -58,16 +59,10 @@ Page({
windowWidth: app.globalData.windowWidth,
windowHeight: app.globalData.windowHeight,
total:0,
ringChart:{
1:'',
2:'',
3:''
},
todocallTotal:0,
modalshow: false,
modelHideClass: false,
analyzeDashStatic: {},//面板数据
hideCanvasRing: true,
guideDailogShow: false,
guideIndex: 1
},
......@@ -102,59 +97,11 @@ Page({
}, 200)
}
},
onReady(){
let that = this;
let query = wx.createSelectorQuery();
let watchTop = 0;
query.select('.ring-chart-box').boundingClientRect()
query.exec(res=>{
watchTop = res[0].top + 20;
this.data.watchTop = watchTop;
// ringchart进入页面一般都看不到
// if(watchTop<this.data.windowHeight-120){
// this.setData({
// hideCanvasRing: false
// })
// }else{
// this.setData({
// hideCanvasRing: true
// })
// }
})
},
onPageScroll(e){
let that = this;
let watchTop = this.data.watchTop;
let scrollTop = e.scrollTop;
if(watchTop>this.data.windowHeight){
if(scrollTop >= Math.abs(watchTop-this.data.windowHeight-300)){
this.setData({
hideCanvasRing: false
})
}else{
this.setData({
hideCanvasRing: true
})
}
}else{
if(scrollTop >= Math.abs(this.data.windowHeight-watchTop+20)){
this.setData({
hideCanvasRing: false
})
}else{
this.setData({
hideCanvasRing: true
})
}
}
},
analyzeDashboardGet(){
let date = new Date();
let today = date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + (date.getDate() < 10 ? ('0' + date.getDate()) : date.getDate());
let today = new Date().getTime()/1000;
analyzeDashboardGet({
school_id: this.data.sid,
start_date: today
start_date: formatDay(today)
}).then(res=>{
const {code, data} = res;
if (code == 200) {
......@@ -416,12 +363,12 @@ Page({
}).then((res)=>{
const {code, data} = res;
if(code == 200){
data.list.forEach((ele) => {
ele.calc_rate = `${(ele.course_time_rate*100).toFixed(2)}`;
})
this.setData({
classCours:data.list
classCours: data.list
})
data.list.forEach((ele,index) => {
this.initRingChart(index+1,ele)
});
}
}).catch((res)=>{
......@@ -465,42 +412,6 @@ Page({
dataLabel: false
});
},
initRingChart(index,data){
let canvasWidth = (this.data.windowWidth-48)/3;
this.data.ringChart[index] = new wxCharts({
animation: true,
canvasId: `ringCanvas${index}`,
type: 'ring',
extra: {
ringWidth: 14,
pie: {
offsetAngle: -90
}
},
title: {
name: `${(data.course_time_rate*100).toFixed(2)}%`,
color: '#000000',
fontSize: 12
},
series: [{
name: '已完成',
data: data.course_time_rate*100,
stroke: false,
color: '#FFB97A',
}, {
name: '除去已完成',
data: 100 - data.course_time_rate*100,
stroke: false,
color: '#FFEBD9',
}],
disablePieStroke: true,
width: canvasWidth,
height: 200,
dataLabel: false,
legend: false,
padding: 0
});
},
nextGuide(e){
const { index } = e.currentTarget.dataset;
if(index == 5){
......
......@@ -152,33 +152,17 @@
<text class="subtitle-text">(近6个月)</text>
</view>
<view class="chart-box" wx:if="{{classCours.length>0}}">
<view class="chart-item" wx:if="{{classCours[0]}}">
<view class="canvas-box" >
<canvas canvas-id="ringCanvas1" class="ringcanvas" hidden="{{modalshow || hideCanvasRing}}"></canvas>
<block wx:for="{{classCours}}" wx:key="index">
<view class="chart-item">
<view class="canvas-box2" style="background-image: conic-gradient(#FFB97A 0 {{item.calc_rate}}%, #FFEBD9 {{item.calc_rate}}% 100%)">
<view class="num">{{item.calc_rate}}%</view>
</view>
<view class="content-box">
<view class="name">{{item.title}}</view>
<view class="count">{{item.course_time}}课时</view>
</view>
</view>
<view class="content-box">
<view class="name" >{{classCours[0].title}}</view>
<view class="count" >{{classCours[0].course_time}}课时</view>
</view>
</view>
<view class="chart-item" wx:if="{{classCours[1]}}">
<view class="canvas-box" >
<canvas canvas-id="ringCanvas2" class="ringcanvas" hidden="{{modalshow || hideCanvasRing}}"></canvas>
</view>
<view class="content-box">
<view class="name" >{{classCours[1].title}}</view>
<view class="count" >{{classCours[1].course_time}}课时</view>
</view>
</view>
<view class="chart-item" wx:if="{{classCours[2]}}">
<view class="canvas-box" >
<canvas canvas-id="ringCanvas3" class="ringcanvas" hidden="{{modalshow || hideCanvasRing}}"></canvas>
</view>
<view class="content-box">
<view class="name" >{{classCours[2].title}}</view>
<view class="count" >{{classCours[2].course_time}}课时</view>
</view>
</view>
</block>
</view>
<view class="empty-content" wx:else>
<view class="empty-text">暂无课程分析数据~</view>
......
......@@ -310,17 +310,52 @@ page{
.ring-chart-box .chart-box{
display: flex;
position: relative;
padding: 55rpx 0 5rpx
}
.ring-chart-box .chart-box .chart-item .canvas-box2{
width: 170rpx;
height: 170rpx;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
position: relative;
}
.ring-chart-box .chart-box .chart-item .canvas-box2::after{
content: '';
width: 180rpx;
height: 180rpx;
border-radius: 50%;
border: 1px solid #FFB97A;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%,-50%);
}
.ring-chart-box .chart-box .chart-item .canvas-box2 .num{
width: 110rpx;
height: 110rpx;
color: #000;
font-size: 24rpx;
display: flex;
align-items: center;
justify-content: center;
background: #fff;
border-radius: 50%;
}
.ring-chart-box .chart-box .chart-item{
flex: 1;
/* overflow: hidden; */
max-width: 33.33%;
padding: 20rpx 0;
width: 33.33%;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
}
.ring-chart-box .chart-box .chart-item .canvas-box{
position: relative;
height: 85px;
/* margin-top: -120rpx; */
}
.ring-chart-box .chart-box .chart-item .canvas-box::after{
content: '';
......@@ -335,7 +370,8 @@ page{
}
.content-box{
position: relative;
/* margin-top: -120rpx; */
padding-top: 24rpx;
width: 100%;
}
.ring-chart-box .chart-box .chart-item .name{
font-size: 24rpx;
......@@ -347,6 +383,7 @@ page{
overflow: hidden;
text-overflow:ellipsis;
white-space: nowrap;
padding: 0 5rpx;
}
.ring-chart-box .chart-box .chart-item .count{
font-size:24rpx;
......@@ -715,4 +752,6 @@ cover-view{
}
.guide-step5 .guide-line{
top: 710rpx;
}
\ No newline at end of file
}
......@@ -3,7 +3,7 @@
<view class="box" wx:if="{{sid && sid!=0}}">
<view class="box-title">
<view class="title">资料设置{{sid==0 || dakarole==1? 0: 7}}</view>
<view class="title">资料设置</view>
</view>
<view class="line-item">
<view class="item-label">头像</view>
......
// business/pages/studentcenter/buycourse.js
import {
studentclasseslistGet,
studentclassesGet
} from '../../../service/business/studentmgt';
import {
coursemakePost,
} from '../../../service/business/classservice'
import {
courseList,
} from '../../../service/business/coursemgt.js';
var app = getApp();
Page({
/**
* 页面的初始数据
*/
data: {
imageRoot: app.globalData.imageRoot,
imageVersion: app.globalData.imageVersion,
localImageRoot: "../../../images",
submiting: false,
sid: 0,
params: {
student_id: '',
course_id:'',
mode_type:1,
buy:'',
give:'',
class_ids:'',
remark:''
},
courseList: [],
page: 1,
perPage: 10,
hasmore: true,
emptyPage: false,
selectCourseShow: false,
selectClassShow: false,
selectCourse: '',
classList:[],
selectClassNames:'',
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
const {
sid,
studentId,
id
} = options;
this.setData({
sid,
studentId,
id,
'params.student_id':studentId
})
if(id){
wx.setNavigationBarTitle({
title:'续费课程'
})
this.studentclassesGet()
}
this.getCourseList('init')
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
this.getCourseList('init')
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
},
getCourseList(type) {
if (!this.data.hasmore) {
return;
}
if (this.data.listLoading) {
return
}
wx.showLoading({
title: '加载中',
})
this.setData({
listLoading: true
})
courseList({
page: this.data.page,
perPage: this.data.perPage,
school_id: this.data.sid
}).then((res) => {
const { code, data } = res;
this.setData({
listLoading: false
})
wx.hideLoading();
if (code != 200) { // 失败的处理
} else {
if (data.total) {
this.setData({
courseTatol: data.total
})
}
switch (type) {
case 'init': //页面进来第一次加载
this.setData({
courseList: data.list
}, () => {
if (data.total > this.data.courseList.length) {
let page = this.data.page + 1;
this.setData({
page,
})
} else { // 没有更多了
this.setData({
hasmore: false
})
}
})
break;
case 'down': // 页面下拉刷新
this.setData({
courseList: data.list
}, () => {
if (data.total > this.data.courseList.length) {
let page = this.data.page + 1;
this.setData({
page,
})
} else { // 没有更多了
this.setData({
hasmore: false
})
}
})
wx.stopPullDownRefresh();
break;
case 'up': // 页面上拉刷新
const courseList = this.data.courseList;
this.setData({
courseList:courseList.concat(data.list)
}, () => {
console.log(this.data.courseTatol , this.data.courseList.length)
if (this.data.courseTatol > this.data.courseList.length) {
let page = this.data.page + 1;
this.setData({
page,
})
} else { // 没有更多了
this.setData({
hasmore: false
})
}
})
break;
default:
break;
}
if (this.data.courseList.length == 0) {
this.setData({
emptyPage: true
})
} else {
this.setData({
emptyPage: false,
})
}
}
}).catch((e) => {
wx.hideLoading();
this.setData({
listLoading: false
})
})
},
studentclassesGet(){
const { studentId, id } = this.data;
studentclassesGet({
student_id: studentId,
extra:'course',
id,
type:1
}).then((res)=>{
const { code, data } = res;
if(code == 200){
if(data){
this.setData({
selectCourse: data.course,
"params.mode_type": data.course_mode,
selectClassNames: data.course.classes.map((ele)=>{
return ele.title
}).join(',')
})
}
}
})
},
studentclasseslistGet(){
if(this.data.selectCourse && this.data.selectCourse.id){
studentclasseslistGet({
school_id: this.data.sid,
course_id: this.data.selectCourse.id,
graduation_status: 1
}).then((res) => {
const { code, data } = res;
if(code == 200){
data.list.forEach((item) => {
item.isSelected = false
})
this.setData({
classList: data.list
})
}
})
} else{
// wx.showToast({
// title: '',
// icon: 'none',
// duration: 2000
// })
}
},
showselectCourse(){
if(this.data.id){
return
}
this.setData({
selectCourseShow: true
})
},
hideselectCourse(e){
const { flag } = e.target.dataset;
if(flag){
this.setData({
selectCourseShow: false
})
}
},
scrolltolowerCourse(){
this.getCourseList('up');
},
selectCourseHandle(e){
const { item } = e.currentTarget.dataset;
this.setData({
selectCourse: item,
selectCourseShow: false
})
this.studentclasseslistGet();
},
showselectClass(e){
if(this.data.selectCourse){
this.setData({
selectClassShow: true
})
}else{
wx.showToast({
title: '请先选择课程',
icon: 'none',
duration: 2000
})
}
},
hideselectClass(e){
const { flag } = e.target.dataset;
if(flag){
this.setData({
selectClassShow: false
})
}
},
selectClassHandle(e){
const { item,} = e.currentTarget.dataset;
const { classList } = this.data;
let selectClassNames = this.data.selectClassNames;
classList.find(ele => ele.id == item.id ).isSelected = !item.isSelected;
selectClassNames = classList.map((ele)=>{
if(ele.isSelected){
return ele.title
}
}).join(',');
this.setData({
classList,
selectClassNames
})
},
remarkInput(e){
const { value } = e.detail;
this.setData({
"params.remark": value
})
},
selectModeType(e){
if(this.data.id){
return
}
const { type } = e.currentTarget.dataset;
this.setData({
"params.mode_type": type,
"params.buy": '',
"params.give": ''
})
},
buyInput(e){
let value;
if(this.data.params.mode_type == 1){
value = this.checkData(e.detail.value);
}else{
value = parseInt(e.detail.value)
}
this.setData({
"params.buy": value
})
},
giveInput(e){
let value;
if(this.data.params.mode_type == 1){
value = this.checkData(e.detail.value);
}else{
value = parseInt(e.detail.value)
}
this.setData({
"params.give": value
})
},
save(){
const {selectCourse, classList, params} = this.data;
const class_ids = classList.map(ele => {
if(ele.isSelected){
return ele.id
}
})
Object.assign(params, {
course_id: selectCourse.id,
class_ids: class_ids.join(',')
})
if(!this.data.selectCourse){
wx.showToast({
title: '请选择课程',
icon: 'none',
duration: 2000
})
}
if(params.mode_type == 3 && class_ids.length==0){
wx.showToast({
title: '请选择班级',
icon: 'none',
duration: 2000
})
}
if(this.data.submiting){
return;
}
this.data.submiting = true;
coursemakePost(params).then((res)=>{
const { code, data } = res;
if(code == 200){
wx.showToast({
title: '购课成功',
icon: 'success',
duration: 2000
})
wx.navigateBack({
delta: 1
})
}
this.data.submiting = false;
}).catch(()=>{
this.data.submiting = false;
})
},
checkData(value) {
let str = value.replace(/[^\d\.]/g, '');
const pointIndex = str.search(/\./);
if (pointIndex !== -1) {
str = str.substr(0, pointIndex + 1).replace(/\./, '.5');
}
return str;
},
})
\ No newline at end of file
{
"navigationBarTitleText": "购买课程",
"usingComponents": {
"expiredTip": "../../components/expiredTip"
}
}
\ No newline at end of file
<!--business/pages/studentcenter/buycourse.wxml-->
<wxs src="../../../filter/index.wxs" module="filter" />
<view class="container">
<view class="form-box">
<view class="form-item">
<view class="form-label boder-lable">购买课程</view>
<view class="form-content" bindtap="showselectCourse">
<text class="content-text" selectable="false" space="false" decode="false">{{selectCourse ? selectCourse.title : '请选择'}}</text>
<image class="arrowsmall" src="{{imageRoot}}2b/organizationalmgt/right.png?{{imageVersion}}"></image>
</view>
</view>
<view class="line20"></view>
<view class="form-item-group">
<view class="form-item">
<view class="form-label boder-lable">收费模式</view>
<view class="form-content select-content">
<view class="select-item" data-type="{{1}}" bindtap="selectModeType">
<view class="icon {{params.mode_type == 1 ? 'act-icon' : ''}}">
<view class="inner" wx:if="{{params.mode_type == 1}}"></view>
</view>
<view class="text">课时</view>
</view>
<view class="select-item " data-type="{{2}}" bindtap="selectModeType">
<view class="icon {{params.mode_type == 2 ? 'act-icon' : ''}}">
<view class="inner" wx:if="{{params.mode_type == 2}}"></view>
</view>
<view class="text">天数</view>
</view>
<view class="select-item " style="margin-right: 0;" data-type="{{3}}" bindtap="selectModeType">
<view class="icon {{params.mode_type == 3 ? 'act-icon' : ''}}">
<view class="inner" wx:if="{{params.mode_type == 3}}"></view>
</view>
<view class="text">班级</view>
</view>
</view>
</view>
<block wx:if="{{params.mode_type == 1}}">
<view class="form-item">
<view class="form-label">购买课时</view>
<view class="form-content">
<input type="number" class="form-input" value="{{params.buy}}" placeholder="请输入" bindinput="buyInput"/>
<image class="arrowsmall" src="{{imageRoot}}2b/organizationalmgt/right.png?{{imageVersion}}"></image>
</view>
</view>
<view class="form-item">
<view class="form-label">赠送课时</view>
<view class="form-content">
<input type="number" class="form-input" value="{{params.give}}" placeholder="请输入" bindinput="giveInput"/>
<image class="arrowsmall" src="{{imageRoot}}2b/organizationalmgt/right.png?{{imageVersion}}"></image>
</view>
</view>
</block>
<block wx:if="{{params.mode_type == 2}}">
<view class="form-item">
<view class="form-label">购买天数</view>
<view class="form-content">
<input type="number" class="form-input" value="{{params.buy}}" placeholder="请输入" bindinput="buyInput"/>
<image class="arrowsmall" src="{{imageRoot}}2b/organizationalmgt/right.png?{{imageVersion}}"></image>
</view>
</view>
<view class="form-item">
<view class="form-label">赠送天数</view>
<view class="form-content">
<input type="number" class="form-input" value="{{params.give}}" placeholder="请输入" bindinput="giveInput"/>
<image class="arrowsmall" src="{{imageRoot}}2b/organizationalmgt/right.png?{{imageVersion}}"></image>
</view>
</view>
</block>
<block wx:if="{{params.mode_type == 3}}">
<view class="form-item">
<view class="form-label">选择班级</view>
<view class="form-content" bindtap="showselectClass">
<text class="content-text" selectable="false" space="false" decode="false">{{ selectClassNames ? selectClassNames : '请选择'}}</text>
<image class="arrowsmall" src="{{imageRoot}}2b/organizationalmgt/right.png?{{imageVersion}}"></image>
</view>
</view>
</block>
</view>
<view class="line20"></view>
<view class="form-item">
<view class="form-label boder-lable">备注</view>
<view class="form-content">
<input type="text" class="form-input" value="{{params.remark}}" placeholder="请输入" bindinput="remarkInput"/>
<image class="arrowsmall" src="{{imageRoot}}2b/organizationalmgt/right.png?{{imageVersion}}"></image>
</view>
</view>
</view>
<view class="form-fixbtn" bindtap="save">
保存
</view>
</view>
<view class="select-student-dailog" wx:if="{{selectCourseShow}}" bindtap="hideselectCourse" data-flag="{{1}}">
<view class="dailog-content dailog-class-content">
<scroll-view class="student-list class-list" scroll-y="true" lower-threhold="200" bindscrolltolower="scrolltolowerCourse">
<view class="class-item {{selectCourse.id == item.id ? 'act-class' : ''}}" wx:for="{{courseList}}" wx:key="index" data-item="{{item}}" bindtap="selectCourseHandle">{{item.title}}</view>
</scroll-view>
<view class="line-16"></view>
<view class="cancle-btn" bindtap="hideselectCourse" data-flag="{{1}}">取消</view>
</view>
</view>
<view class="select-student-dailog" wx:if="{{selectClassShow}}" bindtap="hideselectClass" data-flag="{{1}}">
<view class="dailog-content dailog-class-content">
<scroll-view class="student-list class-list" scroll-y="true" lower-threhold="200">
<view class="class-item {{item.isSelected ? 'act-class' : ''}}" wx:for="{{classList}}" wx:key="index" data-item="{{item}}" bindtap="selectClassHandle">{{item.title}}</view>
</scroll-view>
<view class="line-16"></view>
<view class="cancle-btn" bindtap="hideselectClass" data-flag="{{1}}">确定</view>
</view>
</view>
<expiredTip/>
/* business/pages/studentcenter/buycourse.wxss */
@import '../../../style/commonform.wxss';
page{
background: #F7F7F9;
}
.container{
}
.form-box{
padding-top: 30rpx;
background: #fff;
}
.form-box .form-item::after{
width: calc(100% - 25rpx);
}
.form-box .form-item{
/* display: none; */
position: none;
}
.form-box .form-item .boder-lable{
font-size:28rpx;
font-family:PingFang SC;
font-weight:bold;
color:rgba(0,0,0,1);
}
.form-box .form-item .form-content{
justify-content: flex-end;
}
.form-box .form-item .form-content .content-text{
font-size:26rpx;
font-family:PingFang SC;
font-weight:400;
color:rgba(140,140,140,1);
overflow: hidden;
text-overflow:ellipsis;
white-space: nowrap;
}
.select-content{
justify-content: flex-start;
}
.select-content .select-item{
display: flex;
align-items: center;
margin-right: 72rpx;
}
.select-content .select-item .icon{
width:31rpx;
height:31rpx;
background:rgba(255,255,255,1);
border: 2rpx solid rgba(116,116,116,1);
border-radius:50%;
margin-right: 14rpx;
display: flex;
align-items: center;
justify-content: center;
}
.select-content .select-item .act-icon{
border: 2px solid rgba(101,184,244,1);
}
.select-content .select-item .text{
font-size:26rpx;
font-family:PingFang SC;
font-weight:400;
color:rgba(140,140,140,1);
}
.select-content .select-item .icon .inner{
width:19rpx;
height:19rpx;
background:rgba(101,184,244,1);
border-radius:50%;
}
.select-student-dailog{
width: 100%;
height: 100%;
position: fixed;
left: 0;
top: 0;
background:rgba(0,0,0,.5);
z-index: 100;
}
.select-student-dailog .dailog-content{
width: 100%;
position: absolute;
left: 0;
bottom: 0;
background:rgba(255,255,255,1);
border-radius:20rpx 20rpx 0px 0px;
}
.select-student-dailog .dailog-content .search-box{
width:525rpx;
height:60rpx;
background:rgba(247,247,249,1);
border-radius:30rpx;
margin: 40rpx auto;
display: flex;
align-items: center;
}
.select-student-dailog .dailog-content .search-box .icon{
width:30rpx;
height:30rpx;
margin: 0 26rpx;
}
.select-student-dailog .dailog-content .search-box .ipt{
flex: 1;
}
.select-student-dailog .dailog-content .search-box .search-btn{
width:107rpx;
height:60rpx;
background:rgba(101,184,244,1);
border-radius:30rpx;
font-size:26rpx;
font-family:PingFang SC;
font-weight:400;
color:rgba(255,255,255,1);
line-height:60rpx;
text-align: center;
}
.select-student-dailog .dailog-content .student-list{
display: flex;
flex-wrap: wrap;
max-height: 475rpx;
}
.select-student-dailog .dailog-content .student-list .student-item{
display: inline-block;
width: 25%;
text-align: center;
margin-bottom: 60rpx;
}
.select-student-dailog .dailog-content .student-list .student-item .avatar-box{
padding-bottom: 16rpx;
}
.select-student-dailog .dailog-content .student-list .student-item .avatar-box image{
width:107rpx;
height:107rpx;
border-radius:50%;
}
.select-student-dailog .dailog-content .student-list .student-item .name{
font-size:26rpx;
font-family:PingFang SC;
font-weight:bold;
color:rgba(0,0,0,1);
line-height:1;
padding-bottom: 20rpx;
}
.select-student-dailog .dailog-content .student-list .student-item .count{
font-size:22rpx;
font-family:PingFang SC;
font-weight:400;
color:rgba(137,138,136,1);
line-height:1;
}
.dailog-class-content .cancle-btn{
height: 106rpx;
font-size:28rpx;
font-family:PingFang SC;
font-weight:bold;
color:rgba(0,0,0,1);
display: flex;
align-items: center;
justify-content: center;
}
.select-student-dailog .dailog-class-content .class-list .class-item{
height: 95rpx;
padding: 33rpx 66rpx;
font-size:28rpx;
font-family:PingFang SC;
font-weight:bold;
color:rgba(0,0,0,1);
border-bottom: 1px solid rgba(0,0,0,.05);
line-height: 1;
overflow: hidden;
text-overflow:ellipsis;
white-space: nowrap;
text-align: center;
}
.select-student-dailog .dailog-class-content .class-list .class-item:last-of-type{
border: none;
}
.select-student-dailog .dailog-class-content .class-list .act-class{
color:rgba(83,200,255,1);
}
.select-student-dailog .dailog-class-content{
/* height:600rpx; */
background:rgba(255,255,255,1);
border-radius:20rpx 20rpx 0px 0px;
}
.select-student-dailog .dailog-class-content .class-list{
max-height:475rpx;
}
.line20{
width: 100%;
height: 20rpx;
background:rgba(247,247,249,1);
}
\ No newline at end of file
......@@ -313,6 +313,7 @@ const apis = {
scheduleremind:`${api}member/erp/schedules/schedule_remind`,//B端-上课提醒列表
behaviorlog:`${api}member/data/behavior`,//B端-上课提醒列表
scheduleleave:`${api}member/erp/student/leave/schedule_leave`,//B端-上课提醒请假列表
coursemake:`${api}member/erp/course/make`,//购买和续课
},
common: {
memberSession: `${api}member/session`,
......
export default {
imageRoot: 'https://cdn.img.shangjiadao.cn/qingxiao/daka/images/',
host: 'https://qxapi.qingxiao.online/daka',
host2: 'https://wx.m.shangjiadao.cn',
storageVersion: '4.0',
// host: 'https://qxapi.qingxiao.online/daka',
// host2: 'https://wx.m.shangjiadao.cn',
storageVersion: '5.0',
imageVersion: '20191104',
// host: 'https://clock.wp53.cn',
// host2: 'https://test.wp53.cn',
host: 'https://clock.wp53.cn',
host2: 'https://test.wp53.cn',
appId: 'wxc1246ea029394785',
miniProgram: {
clock: 'wxdeee20e52a1fd7ee'
......
......@@ -509,5 +509,12 @@ export default [
sharer_source_id: 'id',
qrcode_source_id: '',
source_type_model: 12
},
{
"root": "src/pages/myschedule/landpage",
"name": "课程表",
sharer_source_id: 'sid',
qrcode_source_id: '',
source_type_model: 1
}
]
......@@ -90,6 +90,7 @@ const staticLog = function () {
source_id: getSourceId(currentPage, options, originScene).pageSourceId || '',
from_path: originPage || '',
from_id: getSourceId(originPage, originParams, originScene).pageSourceId || '',
from_type_model: getSourceId(originPage, originParams, originScene).sourcetypemodel || '',
source_type_model: getSourceId(currentPage, originParams, originScene).sourcetypemodel || '',
scene: originScene || '',
param: JSON.stringify({
......
......@@ -256,6 +256,15 @@ function scheduleleaveGet (data) {
errorresolve: 1,
})
}
function coursemakePost (data) {
return wxRequest({
role: '2b',
url: apis.business.classservice.coursemake,
data,
method: 'POST',
errorresolve: 2,
})
}
export {
statisticalGet,
schedulesGet,
......@@ -284,5 +293,6 @@ export {
classrecentlyrecordsGet,
scheduleremindGet,
behaviorlogPost,
scheduleleaveGet
scheduleleaveGet,
coursemakePost
}
\ No newline at end of file
......@@ -132,9 +132,9 @@
</view>
</view>
<view class="modal-dialog modal-backLeave" hidden="{{!modalBackLeaveShow}}" catchtouchmove='true'>
<view class="modal-dialog modal-backLeave" hidden="{{!modalBackLeaveShow}}" catchtouchmove='true' style="z-index: 101;">
<view class="modal-mask"></view>
<view class="modal-box">
<view class="modal-box" style="z-index: 102;">
<view class="modal-content">
<view class="tip-content">确定要撤销请假操作吗?</view>
</view>
......
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