Merge refs/remotes/origin/master into refs/heads/master
| | |
| | | data |
| | | }) |
| | | }, |
| | | // 获取加入的班级列表 |
| | | getJoinCourseClassList(data) { |
| | | return request({ |
| | | url: '/edu/api/ApiGetJoinCourseClassList', |
| | | method: 'post', |
| | | data |
| | | }) |
| | | }, |
| | | } |
| | | |
| | | export default eduApi |
| | |
| | | data-answerType="errorQuestion" |
| | | > |
| | | <view slot="content" class="btn-content"> |
| | | <image src="/static/images/bookService/detail/yijiangoumai.png" /> |
| | | <image src="/static/images/bookService/detail/cart.png" /> |
| | | <text class="primary-color">加入购物车</text> |
| | | </view> |
| | | </t-button> |
| | |
| | | } |
| | | |
| | | const token = wx.getStorageSync(app.config.tokenKey) |
| | | |
| | | if (!token) { |
| | | loginInfo(app, (data) => { |
| | | if (data) { |
| | |
| | | } else { |
| | | this.init() |
| | | } |
| | | |
| | | }, |
| | | |
| | | /** |
| | |
| | | }, ], |
| | | }); |
| | | this.init(); |
| | | } else if (this.data.answerType == 'interaction') { |
| | | this.setData({ |
| | | countdownTime: 2 * 60 * 60 * 1000, |
| | | }); |
| | | this.delinteractionInfo(() => { |
| | | this.getQuestionList() |
| | | this.clearTime(); |
| | | }) |
| | | } else { |
| | | this.init(); |
| | | this.clearTime(); |
| | |
| | | questionDataList: questionList, |
| | | cardList: cardUpdatedList, |
| | | }); |
| | | console.log( |
| | | '题目', this.data.questionDataList |
| | | ); |
| | | }); |
| | | }); |
| | | } |
| | |
| | | const query = { |
| | | start: 0, |
| | | size: 999, |
| | | filterList: [], |
| | | infoTypes: [], |
| | | } |
| | | app.MG.identity.joinedGroupByList(query).then((res) => { |
| | | console.log('班级信息', res); |
| | | res.datas.forEach(async item => { |
| | | item.topicId = null |
| | | const data = await this.getTopicInfo(item.id) |
| | |
| | | item.topicId = data.id |
| | | } |
| | | }) |
| | | |
| | | console.log('班级', res) |
| | | if (res.datas.length) { |
| | | this.setData({ |
| | | classList: res.datas |
| | | }) |
| | | // 判断班级 是否所属于该书 |
| | | const flag = res.datas.some(item => item.linkProductDto.product.id == this.data.bookId) |
| | | if (!flag) { |
| | | this.setData({ |
| | | visible: true, |
| | | }) |
| | | const classData = res.datas.find(item => item.linkProductDto.product.id == this.data.bookId) |
| | | if (classData) { |
| | | if (classData.userState == 'Normal') { |
| | | // 加入班级 |
| | | this.setData({ |
| | | joinGroup: true |
| | | }) |
| | | } else if (classData.userState == 'WaitValid') { |
| | | this.setData({ |
| | | submitStatus: true |
| | | }) |
| | | // 审核中 |
| | | wx.showModal({ |
| | | title: '提示', |
| | | content: '请等待老师审核加入班级后答题', |
| | | confirmColor: "#ff6c00", |
| | | complete: (res) => { |
| | | if (res.cancel) { |
| | | wx.navigateBack() |
| | | } |
| | | if (res.confirm) { |
| | | wx.navigateBack() |
| | | } |
| | | } |
| | | }) |
| | | } else { |
| | | // 拒绝 |
| | | this.setData({ |
| | | visible: true |
| | | }) |
| | | } |
| | | } else { |
| | | // 未加入班级 |
| | | this.setData({ |
| | | visible: false, |
| | | joinGroup: true |
| | | visible: true |
| | | }) |
| | | } |
| | | } else { |
| | |
| | | }) |
| | | } |
| | | |
| | | // if (res.datas.length) { |
| | | // this.setData({ |
| | | // classList: res.datas, |
| | | // visible: true |
| | | // }) |
| | | // } else { |
| | | // // 未加入班级,唤起加入班级弹窗 |
| | | // this.setData({ |
| | | // joinGroup: false, |
| | | // visible: true |
| | | // }) |
| | | // } |
| | | }) |
| | | }, |
| | | // 加入班级 |
| | |
| | | let value = JSON.parse(res[0].value); |
| | | const scoreData = value.dataList.find(item => item.name == "客观题得分" && item.path == this.data.productLinkPath) |
| | | this.setData({ |
| | | submitStatus: value.submitStatus, |
| | | currentIndex: value.currentIndex, |
| | | subjectiveNum: scoreData ? scoreData.score : 0 |
| | | currentIndex: value.currentIndex ? value.currentIndex : 0, |
| | | subjectiveNum: scoreData ? scoreData.score : 0, |
| | | submitStatus: true |
| | | }); |
| | | // 携带答题记录 获取题目 |
| | | this.getQuestionList(value.dataList); |
| | |
| | | }); |
| | | }, |
| | | // 提交教学互动答题数据 |
| | | setinteractionInfo(submitStatus) { |
| | | setinteractionInfo() { |
| | | const list = [] |
| | | this.data.cardList.forEach(item => { |
| | | list.push({ |
| | |
| | | score: this.data.subjectiveNum, |
| | | path: this.data.productLinkPath, |
| | | }) |
| | | console.log('提交数据', list); |
| | | app.MG.identity |
| | | .setUserKey({ |
| | | setKeyRequests: [{ |
| | | domain: "interactionData", |
| | | key: this.data.productLinkPath, |
| | | value: JSON.stringify({ |
| | | submitStatus, |
| | | currentIndex: this.data.currentIndex, |
| | | dataList: list |
| | | }), |
| | |
| | | }, |
| | | // 处理教学互动答题 |
| | | handleClassQuestion() { |
| | | console.log(1, this.data.questionDataList); |
| | | const flag = this.data.questionDataList.some(item => !item.userAnswer) |
| | | if (flag) { |
| | | // 没做完,保存即可 |
| | | const isAnswer = this.data.questionDataList.some(item => item.userAnswer) |
| | | if (isAnswer) this.setinteractionInfo(false) |
| | | if (isAnswer) this.setinteractionInfo() |
| | | } else { |
| | | // 做完了且加入了班级,提交到message |
| | | if (this.data.classList.length && this.data.joinGroup) { |
| | |
| | | if (item.linkProductDto.product.id == this.data.bookId) |
| | | this.newTopicMessage(item.topicId) |
| | | }) |
| | | this.setinteractionInfo(true) |
| | | this.setinteractionInfo() |
| | | } else { |
| | | // 做完了,没加入班级 |
| | | this.setinteractionInfo(false) |
| | | this.setinteractionInfo() |
| | | } |
| | | this.setData({ |
| | | isShowDialog: true |
| | |
| | | state: citem.questionType == 'shortAnswer' ? 'none' : citem.isRight, |
| | | type: citem.questionType |
| | | }) |
| | | } |
| | | const data = { |
| | | description: '', |
| | | icon: '', |
| | | state: 'Normal', |
| | | topicIdOrRefCode: String(topicId), |
| | | name: this.data.answerTitle, |
| | | content: JSON.stringify({ |
| | | bookId: this.data.bookId, |
| | | userName: JSON.parse(wx.getStorageSync(app.config.userInfoKey)).name, |
| | | path: this.data.productLinkPath, |
| | | content |
| | | }), |
| | | type: 'Normal', |
| | | cmsTypeRefCode: '', |
| | | newDataListRequest: [] |
| | | } |
| | | app.MG.ugc.newTopicMessage(data).then((res) => { |
| | | if (res) { |
| | | this.setData({ |
| | | isShowDialog: true |
| | | }) |
| | | const userInfo = JSON.parse(wx.getStorageSync(app.config.userInfoKey)) |
| | | const data = { |
| | | description: '', |
| | | icon: '', |
| | | state: 'Normal', |
| | | topicIdOrRefCode: String(topicId), |
| | | name: this.data.answerTitle, |
| | | content: JSON.stringify({ |
| | | bookId: this.data.bookId, |
| | | userName: userInfo.name ? userInfo.name : userInfo.nickName ? userInfo.nickName : '-', |
| | | path: this.data.productLinkPath, |
| | | content |
| | | }), |
| | | type: 'Normal', |
| | | cmsTypeRefCode: '', |
| | | newDataListRequest: [] |
| | | } |
| | | }) |
| | | app.MG.ugc.newTopicMessage(data).then((res) => { |
| | | if (res) { |
| | | this.setData({ |
| | | isShowDialog: true |
| | | }) |
| | | } |
| | | }) |
| | | } |
| | | }, |
| | | // 新建子topicMessage |
| | | // newTopicSubMessage(parentId,topicId) { |
| | | // const data = { |
| | | // description: '', |
| | | // icon: '', |
| | | // parentId, |
| | | // state: 'Normal', |
| | | // topicIdOrRefCode: String(topicId), |
| | | // name: this.data.answerTitle, |
| | | // content: '', |
| | | // type: 'Normal', |
| | | // cmsTypeRefCode: '', |
| | | // newDataListRequest: [] |
| | | // } |
| | | // MG.ugc.newTopicMessage(data).then((res) => { |
| | | // if (res) { |
| | | |
| | | // } |
| | | // }) |
| | | // }, |
| | | }); |
| | | // 删除教学互动答题记录 |
| | | delinteractionInfo(callback) { |
| | | app.MG.identity |
| | | .delUserKey({ |
| | | domain: 'interactionData', |
| | | keys: [this.data.productLinkPath] |
| | | }) |
| | | .then((res) => { |
| | | if (callback) callback() |
| | | }) |
| | | } |
| | | }) |
| | |
| | | subjectiveGrade="{{subjectiveGrade}}" |
| | | correctNum="{{correctNum}}" |
| | | mockSumTime="{{mockData.sumTime}}" |
| | | joinGroup="{{joinGroup}}" |
| | | showId="{{showId}}" |
| | | bind:setCollect="setCollect" |
| | | bind:submitPaper="submitPaper" |
| | |
| | | ></page-container> |
| | | |
| | | <!-- 加入班级弹窗 --> |
| | | <join-dialog visible="{{visible}}" bind:joinClass="joinClass"> |
| | | |
| | | </join-dialog> |
| | | <join-dialog visible="{{visible}}" bind:joinClass="joinClass"> </join-dialog> |
| | |
| | | }, |
| | | isShowDialog: { |
| | | type: Boolean |
| | | }, |
| | | joinGroup:{ |
| | | type:Boolean |
| | | } |
| | | }, |
| | | |
| | |
| | | <view |
| | | class="li-option" |
| | | bind:tap="resterBtn" |
| | | wx:if="{{answerType == 'option' || (answerType == 'mock' && !submitStatus)}}" |
| | | wx:if="{{answerType == 'option' || (answerType == 'mock' && !submitStatus) || (answerType == 'interaction' && !joinGroup)}}" |
| | | style="color: {{isNight ? '#fff' : '#000'}};" |
| | | > |
| | | <image |
| | |
| | | width: 85vw; |
| | | height: 180px; |
| | | border-radius: 10rpx; |
| | | position: relative; |
| | | } |
| | | |
| | | .block-select-title { |
| | |
| | | display: flex; |
| | | justify-content: flex-start; |
| | | align-items: center; |
| | | padding: 70rpx 20rpx; |
| | | padding: 50rpx 20rpx; |
| | | box-sizing: border-box; |
| | | } |
| | | |
| | |
| | | display: flex; |
| | | justify-content: flex-end; |
| | | align-items: center; |
| | | padding: 0 20rpx; |
| | | min-height: 120rpx; |
| | | padding: 0rpx 20rpx; |
| | | box-sizing: border-box; |
| | | position: absolute; |
| | | bottom: 0; |
| | | right: 0; |
| | | } |
| | | |
| | | |
| | |
| | | }, |
| | | // 处理数据结构 |
| | | chageData(arr, zrr) { |
| | | let newData = [] |
| | | // 题库题目类型 |
| | | const questionTypeList = [{ |
| | | name: '单选题', |
| | |
| | | ] |
| | | for (let i = 0; i < arr.length; i++) { |
| | | const item = arr[i] |
| | | item.questionTypeList = questionTypeList |
| | | for (let j = 0; j < zrr.length; j++) { |
| | | const ele = zrr[j] |
| | | const qusObj = item.question.find((citem) => citem.cmsItemId == ele.id) |
| | | if (qusObj?.cmsItemId) { |
| | | ele.userAnswer = qusObj.answer |
| | | const index = findIndexByValue(questionTypeList, ele.questionType) |
| | | if (index > -1) { |
| | | item.questionTypeList[index].data.push(ele) |
| | | item.questionTypeList = JSON.parse(JSON.stringify(questionTypeList)); |
| | | item.other = [] |
| | | for (let j = 0; j < item.question.length; j++) { |
| | | const ele = item.question[j] |
| | | const data = zrr.find((sitem) => sitem.id == ele.cmsItemId) |
| | | const index = findIndexById(zrr, ele.cmsItemId) |
| | | if (index > -1) { |
| | | item.other[index] = { |
| | | ...data, |
| | | userAnswer: ele.answer |
| | | } |
| | | } |
| | | } |
| | | item.questionTypeList = item.questionTypeList.filter((item) => item.data.length > 0) |
| | | newData.push(item) |
| | | if (item.other.length > 0) { |
| | | item.other.forEach((aitem) => { |
| | | const index = findIndexByValue(item.questionTypeList, aitem.questionType) |
| | | if (index > -1) { |
| | | item.questionTypeList[index].data.push(aitem) |
| | | } |
| | | }) |
| | | } |
| | | item.questionTypeList = item.questionTypeList.filter((xitem) => xitem.data.length > 0) |
| | | } |
| | | return newData.filter((item) => item.questionTypeList.length > 0) |
| | | return arr |
| | | }, |
| | | findIndexByValue(res, type) { |
| | | for (let i = 0; i < res.length; i++) { |
| | |
| | | } |
| | | return -1 // 如果未找到,则返回 -1 |
| | | }, |
| | | |
| | | findIndexById(res, id) { |
| | | for (let i = 0; i < res.length; i++) { |
| | | if (res[i].id == id) { |
| | | return i |
| | | } |
| | | } |
| | | return -1 // 如果未找到,则返回 -1 |
| | | }, |
| | | |
| | | toDetail(e) { |
| | | const { |
| | | item |
| | |
| | | }, |
| | | courseLoading: true, |
| | | classLoading: false, |
| | | showContentOnly: false, |
| | | reason: '', |
| | | // 加载参数 |
| | | bottomLoading: false, |
| | | isMoreData: false, |
| | |
| | | title: '基本信息', |
| | | }) |
| | | this.getData() |
| | | }, |
| | | |
| | | |
| | | showDialog(e) { |
| | | const { |
| | | item |
| | | } = e.currentTarget.dataset; |
| | | const str = item.reason ? item.reason : '-' |
| | | this.setData({ |
| | | showContentOnly: true, |
| | | reason: str |
| | | }); |
| | | }, |
| | | |
| | | closeDialog() { |
| | | this.setData({ |
| | | showContentOnly: false |
| | | }); |
| | | }, |
| | | |
| | | // 获取课程信息 |
| | |
| | | classId, |
| | | item |
| | | } = e.currentTarget.dataset |
| | | if (item.applyState == 'WaitAudit' || item.applyState == 'Reject') { |
| | | if (item.applyState == 'WaitAudit') { |
| | | wx.showToast({ |
| | | title: item.applyState == 'WaitAudit' ? '审核中' : '未通过', |
| | | title: '审核中', |
| | | duration: 1000, |
| | | icon: 'none', |
| | | }) |
| | | return false |
| | | } |
| | | if (item.applyState == 'Reject') { |
| | | return false |
| | | } |
| | | wx.navigateTo({ |
| | | url: '/packageCourse/pages/teachClass/index?classId=' + classId + '&courseId=' + this.data.courseId + '&author=' + this.data.bookData.author + '&isbn=' + this.data.bookData.isbn + '&bookId=' + this.data.bookData.id + '&rootCmsItemId=' + this.data.bookData.rootCmsItemId + "&bookRefCode=" + this.data.defaultCmsPath, |
| | | }) |
| | |
| | | "t-back-top": "tdesign-miniprogram/back-top/back-top", |
| | | "empty": "/components/empty/index", |
| | | "t-skeleton": "tdesign-miniprogram/skeleton/skeleton", |
| | | "t-loading": "tdesign-miniprogram/loading/loading" |
| | | "t-loading": "tdesign-miniprogram/loading/loading", |
| | | "t-dialog": "tdesign-miniprogram/dialog/dialog" |
| | | } |
| | | } |
| | |
| | | <text class="classTag" wx:if="{{item.applyState == 'Normal'}}" style="color: #1dbd11">状态: 进行中</text> |
| | | <text class="classTag" wx:if="{{item.applyState == 'Reject'}}" style="color: red">状态: 未通过</text> |
| | | <t-icon bindtap="delClass" data-del-id="{{item.id}}" class="delete" wx:if="{{item.applyState == 'Reject'}}" name="delete" color="red" size='18px' /> |
| | | <text class="classTag" wx:if="{{item.applyState == 'Reject'}}" style="color: red">拒绝原因:{{ item.reason != '' ? item.reason : '-' }}</text> |
| | | <view wx:if="{{item.applyState == 'Reject'}}" class="reason"> |
| | | <text> 拒绝原因:</text> |
| | | <t-tag style="margin-left: 0;" bind:tap="showDialog" data-item="{{item}}" class="margin-16 replay" theme="danger">点击查看</t-tag> |
| | | </view> |
| | | <!-- <text class="classTag" wx:if="{{item.applyState == 'Reject'}}" style="color: red">拒绝原因:{{ item.reason != '' ? item.reason : '-' }}</text> --> |
| | | <text class="classTag">班级人数: {{ item.memberCount }} / {{ item.maxUserCount }}</text> |
| | | <text class="classTag">有效期:{{ item.beginDate }} - {{ item.endDate }}</text> |
| | | </view> |
| | |
| | | </view> |
| | | </view> |
| | | </t-popup> |
| | | <t-dialog visible="{{showContentOnly}}" bind:confirm="closeDialog" close-on-overlay-click> |
| | | <view slot="content" class="reasonContent"> |
| | | {{reason}} |
| | | </view> |
| | | <view slot="confirm-btn" style="width: 100%;"> |
| | | <t-button style="color: #ff6d00;border-top: 1px solid #eee ;" variant="text" bindtap="closeDialog" size="large" block t-class="external-class">知道了</t-button> |
| | | </view> |
| | | </t-dialog> |
| | | </view> |
| | | </view> |
| | | <view class="tabbar-bottom"> |
| | |
| | | font-weight: 700; |
| | | } |
| | | |
| | | .replay { |
| | | margin-left: 20rpx; |
| | | background-color: red !important; |
| | | border: 0 !important; |
| | | } |
| | | |
| | | .reason { |
| | | margin-bottom: 10rpx; |
| | | } |
| | | |
| | | .reasonContent { |
| | | color: #666; |
| | | font-size: 26rpx; |
| | | line-height: 44rpx; |
| | | } |
| | | |
| | | .external-class { |
| | | border-radius: 0 !important; |
| | | } |
| | | |
| | | .statics { |
| | | width: 100%; |
| | | margin-bottom: 40rpx; |
| | |
| | | top: 55px !important |
| | | } |
| | | |
| | | .classBox .t-dialog { |
| | | border: 1rpx solid #eee; |
| | | } |
| | | |
| | | .block-title { |
| | | padding: 30rpx 20rpx; |
| | | font-size: 30rpx; |
| | |
| | | updateCourse: false, |
| | | currentCourse: null, |
| | | submitLoading: false, |
| | | showContentOnly: false, |
| | | // 加载参数 |
| | | bottomLoading: false, |
| | | isMoreData: false, |
| | |
| | | this.getData() |
| | | }, |
| | | |
| | | showDialog() { |
| | | this.setData({ |
| | | showContentOnly: true, |
| | | }); |
| | | }, |
| | | |
| | | closeDialog() { |
| | | this.setData({ |
| | | showContentOnly: false |
| | | }); |
| | | }, |
| | | |
| | | // 课程详情 |
| | | todetail(e) { |
| | | const { |
| | |
| | | "t-icon": "tdesign-miniprogram/icon/icon", |
| | | "t-back-top": "tdesign-miniprogram/back-top/back-top", |
| | | "t-tag": "tdesign-miniprogram/tag/tag", |
| | | "t-loading": "tdesign-miniprogram/loading/loading" |
| | | "t-loading": "tdesign-miniprogram/loading/loading", |
| | | "t-dialog": "tdesign-miniprogram/dialog/dialog" |
| | | } |
| | | } |
| | |
| | | </view> |
| | | <t-tag class="margin-16" wx:if="{{item.applyState == 'Normal'}}" variant="light" theme="success">使用中</t-tag> |
| | | </view> |
| | | <view wx:if="{{item.applyState == 'Reject'}}" class="reason">拒绝原因: {{item.reason}}</view> |
| | | <view wx:if="{{item.applyState == 'Reject'}}" class="reason"> |
| | | <text> 拒绝原因:</text> |
| | | <t-tag style="margin-left: 0;" bind:tap="showDialog" class="margin-16 replay" theme="danger">点击查看</t-tag> |
| | | <t-dialog visible="{{showContentOnly}}" bind:confirm="closeDialog" close-on-overlay-click> |
| | | <view slot="content" class="reasonContent"> |
| | | {{item.reason}} |
| | | </view> |
| | | <view slot="confirm-btn" style="width: 100%;"> |
| | | <t-button style="color: #ff6d00;border-top: 1px solid #eee;" variant="text" bindtap="closeDialog" size="large" block t-class="external-class">知道了</t-button> |
| | | </view> |
| | | </t-dialog> |
| | | </view> |
| | | <view class="desc">描述:{{item.description}}</view> |
| | | </view> |
| | | </view> |
| | |
| | | justify-content: space-between; |
| | | align-items: center; |
| | | box-sizing: border-box; |
| | | height: 300rpx; |
| | | min-height: 300rpx; |
| | | border-bottom: 1rpx solid #eee; |
| | | } |
| | | |
| | |
| | | margin-left: 20rpx; |
| | | background-color: red !important; |
| | | border: 0 !important; |
| | | position: relative; |
| | | z-index: 999999; |
| | | } |
| | | |
| | | .reasonContent { |
| | | color: #666; |
| | | font-size: 26rpx; |
| | | line-height: 44rpx; |
| | | } |
| | | |
| | | .external-class { |
| | | border-radius: 0 !important; |
| | | } |
| | | |
| | | .courseIcon { |
| | |
| | | .courseInfo .reason { |
| | | font-size: 24rpx; |
| | | color: red; |
| | | display: flex; |
| | | justify-content: flex-start; |
| | | align-items: center; |
| | | } |
| | | |
| | | .courseInfo .desc { |
| | |
| | | <text class="classTag" wx:if="{{item.userState == 'WaitValid'}}" style="color: #ef9f29">状态 : 审核中</text> |
| | | <text class="classTag" wx:if="{{item.userState == 'Normal'}}" style="color: #1dbd11">状态 : 进行中</text> |
| | | <text class="classTag" wx:if="{{item.userState == 'Reject'}}" style="color: red">状态 : 未通过</text> |
| | | <t-icon bindtap="delClass" data-del-id="{{item.id}}" class="delete" wx:if="{{item.userState == 'Reject'}}" name="delete" color="red" size='18px' /> |
| | | <!-- <t-icon bindtap="delClass" data-del-id="{{item.id}}" class="delete" wx:if="{{item.userState == 'Reject'}}" name="delete" color="red" size='18px' /> --> |
| | | <text class="classTag" wx:if="{{item.userState == 'Reject'}}" style="color: red">拒绝原因:{{ item.reason != '' ? item.reason : '-' }}</text> |
| | | <text class="classTag">班级人数 : {{ item.memberCount }} / {{ item.maxUserCount }}</text> |
| | | <text class="classTag">有效期 :{{ item.classTime }}</text> |
| | | </view> |
| | | </view> |
| | | |
| | | </view> |
| | | <view class="bottom-loading" wx:if="{{bottomLoading}}"> |
| | | <t-loading theme="circular" size="40rpx" text="加载中..." class="wrapper" /> |
| | | </view> |
| | | <view class="bottom-loading" style="color: #ccc;font-size: 28rpx;" wx:if="{{isMoreData}}"> |
| | | <text>没有更多了</text> |
| | | <view class="bottom-loading" wx:if="{{bottomLoading}}"> |
| | | <t-loading theme="circular" size="40rpx" text="加载中..." class="wrapper" /> |
| | | </view> |
| | | <view class="bottom-loading" style="color: #ccc;font-size: 28rpx;" wx:if="{{isMoreData}}"> |
| | | <text>没有更多了</text> |
| | | </view> |
| | | </view> |
| | | </scroll-view> |
| | | </view> |
| | |
| | | ] |
| | | for (let i = 0; i < arr.length; i++) { |
| | | const item = arr[i] |
| | | item.questionTypeList = questionTypeList |
| | | item.questionTypeList = JSON.parse(JSON.stringify(questionTypeList)) |
| | | for (let j = 0; j < zrr.length; j++) { |
| | | const ele = zrr[j] |
| | | const qusObj = item.question.find((citem) => citem.cmsItemId == ele.id) |
| | |
| | | <studentManage classId="{{classId}}" bookRefCode="{{defaultCmsPath}}" /> |
| | | </view> |
| | | <!-- 教学互动 --> |
| | | <view class="teachBox" wx:if="{{tabVal == 'teach'}}"> |
| | | <view class="teachBox" wx:if="{{tabVal == 'teach'&& userData.role == 'Teacher'}}"> |
| | | <Teach classId="{{classId}}" bookId="{{bookId}}" rootCmsItemId="{{rootCmsItemId}}" /> |
| | | </view> |
| | | </view> |
| | |
| | | <t-icon class="tabIcon" name="file-setting" size="24px" /> |
| | | <text class="text">学生管理</text> |
| | | </view> |
| | | <view class="{{tabVal == 'teach'?'tab-pubItem activeTab':'tab-pubItem'}}" data-str="teach" bindtap="tabActive"> |
| | | <view wx:if="{{ userData.role == 'Teacher'}}" class="{{tabVal == 'teach'?'tab-pubItem activeTab':'tab-pubItem'}}" data-str="teach" bindtap="tabActive"> |
| | | <t-icon class="tabIcon" name="system-setting" size="24px" /> |
| | | <text class="text">教学互动</text> |
| | | </view> |
| | |
| | | item.productType = "图书服务-电子书" |
| | | |
| | | if (item.saleMethod.type == 'createProductItemSaleMethod' || item.saleMethod.type == 'createProductFolderSaleMethod') { |
| | | item.typeTxt = '云学习' |
| | | item.productType = "图书服务-云学习" |
| | | if (item.linkCmsItems[0].refCode == 'questionBank') { |
| | | item.type = '云测试' |
| | | item.productType = '图书服务-云测试' |
| | | } else { |
| | | item.typeTxt = '云学习' |
| | | item.productType = "图书服务-云学习" |
| | | } |
| | | } |
| | | } |
| | | // |