New file |
| | |
| | | Component({ |
| | | /** |
| | | * 组件的属性列表 |
| | | */ |
| | | properties: { |
| | | |
| | | }, |
| | | ready() { |
| | | |
| | | }, |
| | | |
| | | /** |
| | | * 组件的初始数据 |
| | | */ |
| | | data: { |
| | | |
| | | }, |
| | | |
| | | /** |
| | | * 组件的方法列表 |
| | | */ |
| | | methods: { |
| | | |
| | | } |
| | | }) |
New file |
| | |
| | | { |
| | | "component": true, |
| | | "usingComponents": { |
| | | "t-image": "tdesign-miniprogram/image/image" |
| | | } |
| | | } |
New file |
| | |
| | | <view class="noData-box"> |
| | | <t-image class="note-icon" src="/static/images/empty.png"></t-image> |
| | | <view class="text">暂无数据</view> |
| | | </view> |
New file |
| | |
| | | .noData-box { |
| | | text-align: center; |
| | | } |
| | | |
| | | .noData-box image { |
| | | width: 205rpx !important; |
| | | height: 133rpx !important; |
| | | } |
| | | |
| | | .text { |
| | | color: #999; |
| | | font-size: 28rpx; |
| | | margin-top: 20rpx; |
| | | } |
| | |
| | | "tree": "/packageBookService/pages/bookServices/detail/components/tree/index", |
| | | "t-loading": "tdesign-miniprogram/loading/loading", |
| | | "t-empty": "tdesign-miniprogram/empty/empty", |
| | | "t-button": "tdesign-miniprogram/button/button" |
| | | "t-button": "tdesign-miniprogram/button/button", |
| | | "empty": "/components/empty/index" |
| | | }, |
| | | "navigationStyle": "custom", |
| | | "disableScroll": true |
| | |
| | | bind:changeResourceChecked="changeResourceChecked" |
| | | /> |
| | | <view class="noData" wx:if="{{noData}}"> |
| | | <t-empty icon="folder-open" description="暂无数据" /> |
| | | <!-- <t-empty icon="folder-open" description="暂无数据" /> --> |
| | | <empty /> |
| | | </view> |
| | | </view> |
| | | |
| | |
| | | "t-popup": "tdesign-miniprogram/popup/popup", |
| | | "t-icon": "tdesign-miniprogram/icon/icon", |
| | | "t-empty": "tdesign-miniprogram/empty/empty", |
| | | "t-skeleton": "tdesign-miniprogram/skeleton/skeleton" |
| | | "t-skeleton": "tdesign-miniprogram/skeleton/skeleton", |
| | | "empty": "/components/empty/index" |
| | | } |
| | | } |
| | |
| | | </t-collapse-panel> |
| | | </t-collapse> |
| | | <view wx:if="{{noList}}" class="noData"> |
| | | <t-empty icon="folder-open" description="暂无数据" /> |
| | | <!-- <t-empty icon="folder-open" description="暂无数据" /> --> |
| | | <empty /> |
| | | </view> |
| | | </view> |
| | | <view class="bottom-box" wx:if="{{noteList.length}}"> |
| | |
| | | "usingComponents": { |
| | | "t-empty": "tdesign-miniprogram/empty/empty", |
| | | "t-loading": "tdesign-miniprogram/loading/loading", |
| | | "t-skeleton": "tdesign-miniprogram/skeleton/skeleton" |
| | | "t-skeleton": "tdesign-miniprogram/skeleton/skeleton", |
| | | "empty": "/components/empty/index" |
| | | } |
| | | } |
| | |
| | | <text class="book-name">{{item.name}}</text> |
| | | </view> |
| | | <view class="noData" wx:if="{{noRelatedBookData}}"> |
| | | <t-empty icon="folder-open" description="暂无数据" /> |
| | | <!-- <t-empty icon="folder-open" description="暂无数据" /> --> |
| | | <empty /> |
| | | </view> |
| | | <view class="loading-box" wx:if="{{relatedBookLoading}}"> |
| | | <!-- relatedBookLoading --> |
| | |
| | | "t-radio": "tdesign-miniprogram/radio/radio", |
| | | "t-radio-group": "tdesign-miniprogram/radio-group/radio-group", |
| | | "t-empty": "tdesign-miniprogram/empty/empty", |
| | | "tree": "/packageBookService/pages/bookServices/detail/components/testTree/index" |
| | | "tree": "/packageBookService/pages/bookServices/detail/components/testTree/index", |
| | | "empty": "/components/empty/index" |
| | | } |
| | | } |
| | |
| | | <tree id="test-tree" openIds="{{openIds}}" bookInfo="{{bookInfo}}" tab="{{tab}}" treeList="{{list}}" bind:goTest="goTest"></tree> |
| | | </view> |
| | | <view wx:if="{{noResources}}" class="noData" wx:if="{{radioItem == 'test' && !list.length}}"> |
| | | <t-empty icon="folder-open" description="暂无数据" /> |
| | | <!-- <t-empty icon="folder-open" description="暂无数据" /> --> |
| | | <empty /> |
| | | </view> |
| | | </view> |
| | | |
| | |
| | | "t-button": "tdesign-miniprogram/button/button", |
| | | "t-checkbox": "tdesign-miniprogram/checkbox/checkbox", |
| | | "tree": "/packageBookService/pages/bookServices/detail/components/testTree/index", |
| | | "t-empty": "tdesign-miniprogram/empty/empty" |
| | | "t-empty": "tdesign-miniprogram/empty/empty", |
| | | "empty": "/components/empty/index" |
| | | } |
| | | } |
| | |
| | | "t-button": "tdesign-miniprogram/button/button", |
| | | "t-checkbox": "tdesign-miniprogram/checkbox/checkbox", |
| | | "tree": "/packageBookService/pages/bookServices/detail/components/tree/index", |
| | | "t-empty": "tdesign-miniprogram/empty/empty" |
| | | "t-empty": "tdesign-miniprogram/empty/empty", |
| | | "empty": "/components/empty/index" |
| | | } |
| | | } |
| | |
| | | </view> |
| | | <!-- 暂无数据 --> |
| | | <view wx:if="{{!item.children || !item.children.length}}" class="noData"> |
| | | <t-empty icon="folder-open" description="暂无数据" /> |
| | | <!-- <t-empty icon="folder-open" description="暂无数据" /> --> |
| | | <empty /> |
| | | </view> |
| | | <view class="listItems" wx:if="{{children.length <= 0 && !loading}}"> |
| | | 暂无数据 |
| | |
| | | "t-empty": "tdesign-miniprogram/empty/empty", |
| | | "t-fab": "tdesign-miniprogram/fab/fab", |
| | | "t-skeleton": "tdesign-miniprogram/skeleton/skeleton", |
| | | "suggest-dialog": "/packageBookService/pages/bookServices/detail/components/suggestDialog/index" |
| | | "suggest-dialog": "/packageBookService/pages/bookServices/detail/components/suggestDialog/index", |
| | | "empty": "/components/empty/index" |
| | | }, |
| | | "onReachBottomDistance": 200, |
| | | "disableScroll": true |
| | |
| | | <t-tab-panel label="图书简介" icon="{{ tabValue == 'brief' ? briefIconClick : briefIcon}}" value="brief" style="{{tabPanelstyle}}"> |
| | | <book-brief content="{{bookDetail.content}}" authorIntroduction="{{bookDetail.authorIntroduction}}" wx:if="{{bookDetail.content || bookDetail.authorIntroduction}}"></book-brief> |
| | | <view wx:if="{{!bookDetail.content && !bookDetail.authorIntroduction && !loading}}" class="noData"> |
| | | <t-empty icon="folder-open" description="暂无数据" /> |
| | | <!-- <t-empty icon="folder-open" description="暂无数据" /> --> |
| | | <empty /> |
| | | </view> |
| | | </t-tab-panel> |
| | | <!-- <t-tab-panel |
| | |
| | | <t-skeleton row-col="{{rowCol}}" theme="paragraph" animation="gradient" loading="{{loading}}"></t-skeleton> |
| | | </view> |
| | | <view wx:if="{{noResources && !loading}}" class="noData"> |
| | | <t-empty icon="folder-open" description="暂无数据" /> |
| | | <!-- <t-empty icon="folder-open" description="暂无数据" /> --> |
| | | <empty /> |
| | | </view> |
| | | </t-tab-panel> |
| | | <t-tab-panel label="云学习" icon="{{tabValue == 'jsek_cloudLearning' ? learnResourceClickIcon : learnResourceIcon}}" value="jsek_cloudLearning" style="{{tabPanelstyle}}"> |
| | |
| | | <tree id="tree" openIds="{{openLearnids}}" bookInfo="{{bookDetail}}" tab="{{tabValue}}" treeList="{{learn}}" buyIds="{{buyIdList}}" openLearnids="{{openLearnids}}" bind:updateShoppingCartHidden="updateShoppingCartHidden" bind:updateCloudLearning="updateCloudLearning"></tree> |
| | | </view> |
| | | <view wx:if="{{noResources && !loading}}" class="noData"> |
| | | <t-empty icon="folder-open" description="暂无数据" /> |
| | | <!-- <t-empty icon="folder-open" description="暂无数据" /> --> |
| | | <empty /> |
| | | </view> |
| | | </t-tab-panel> |
| | | <t-tab-panel label="云测试" icon="{{tabValue == 'questionBank' ? testResourceClickIocn : testResourceIocn}}" value="questionBank" style="{{tabPanelstyle}}"> |
| | |
| | | let query = { |
| | | path: "*", |
| | | queryType: "*", |
| | | storeInfo: this.data.storeInfo, |
| | | |
| | | productId: this.data.bookId, |
| | | cmsPath: pathitem.productLinkPath, |
| | | itemFields: { |
| | |
| | | size: 999, |
| | | }, |
| | | }; |
| | | if (this.data.storeInfo) { |
| | | query.storeInfo = this.data.storeInfo |
| | | } |
| | | await app.MG.store.getProductDetail(query).then((res) => { |
| | | this.setData({ |
| | | total: res.datas.cmsDatas[0].datas.length, |
| | |
| | | for (let qindex = 0; qindex < this.data.collectList.length; qindex++) { |
| | | const qitem = this.data.collectList[qindex]; |
| | | let query = { |
| | | storeInfo: this.data.storeInfo, |
| | | path: "*", |
| | | cmsPath: this.data.rootCmsItemId, |
| | | cmsType: "*", |
| | |
| | | Embedded_QuestionBank_Difficulty: [], |
| | | }, |
| | | }; |
| | | if (this.data.storeInfo) { |
| | | query.storeInfo = this.data.storeInfo |
| | | } |
| | | await app.MG.store.getProductDetail(query).then((res) => { |
| | | let questionArr = []; |
| | | res.datas.cmsDatas[0].datas.forEach((item, index) => { |
| | |
| | | let multipleChoiceArr = []; // 多选 |
| | | let completionArr = []; // 填空 |
| | | let query = { |
| | | storeInfo: this.data.storeInfo, |
| | | path: "*", |
| | | cmsPath: this.data.rootCmsItemId, |
| | | cmsType: "*", |
| | |
| | | Embedded_QuestionBank_Difficulty: [], |
| | | }, |
| | | }; |
| | | if (this.data.storeInfo) { |
| | | query.storeInfo = this.data.storeInfo |
| | | } |
| | | await app.MG.store.getProductDetail(query).then((res) => { |
| | | let questionArr = []; |
| | | res.datas.cmsDatas[0].datas.forEach((item, index) => { |
| | |
| | | itemIds.push(item.id + ""); |
| | | }); |
| | | let query = { |
| | | storeInfo: this.data.storeInfo, |
| | | path: "*", |
| | | cmsPath: this.data.rootCmsItemId, |
| | | cmsType: "*", |
| | |
| | | Embedded_QuestionBank_Difficulty: [], |
| | | }, |
| | | }; |
| | | if (this.data.storeInfo) { |
| | | query.storeInfo = this.data.storeInfo |
| | | } |
| | | await app.MG.store.getProductDetail(query).then((res) => { |
| | | res.datas.cmsDatas[0].datas.forEach((item, index) => { |
| | | // 循环questionList,给每题赋值分数 |
| | |
| | | .page-content { |
| | | box-sizing: border-box; |
| | | width: 100%; |
| | | height: calc(100vh - env(safe-area-inset-bottom) - 73px); |
| | | height: calc(100vh - env(safe-area-inset-bottom) - 100px); |
| | | padding: 20rpx; |
| | | background-color: #F2F3F8; |
| | | } |
| | |
| | | "t-textarea": "tdesign-miniprogram/textarea/textarea", |
| | | "t-empty": "tdesign-miniprogram/empty/empty", |
| | | "t-button": "tdesign-miniprogram/button/button", |
| | | "mp-html": "mp-html" |
| | | "mp-html": "mp-html", |
| | | "empty": "/components/empty/index" |
| | | } |
| | | } |
| | |
| | | <!--pages/bookServices/examination/questionList/index.wxml--> |
| | | <view |
| | | class="question-list" |
| | | style="background-color:{{isNight ? '#222' : '#fff'}}" |
| | | > |
| | | <view class="question-list" style="background-color:{{isNight ? '#222' : '#fff'}}"> |
| | | <!-- 题型title --> |
| | | <view |
| | | class="question-title" |
| | | wx:if="{{questionList[showIndex].type}}" |
| | | style="background-color:{{isNight ? '#222' : '#fff'}}" |
| | | > |
| | | <text class="title-name">{{questionList[showIndex].type}}</text |
| | | ><text |
| | | wx:if="{{questionList[showIndex].score}}" |
| | | class="title-score" |
| | | style="color: {{isNight ? '#fff' : '#000'}};" |
| | | >(每题{{questionList[showIndex].score}}分)</text |
| | | > |
| | | <view class="question-title" wx:if="{{questionList[showIndex].type}}" style="background-color:{{isNight ? '#222' : '#fff'}}"> |
| | | <text class="title-name">{{questionList[showIndex].type}}</text><text wx:if="{{questionList[showIndex].score}}" class="title-score" style="color: {{isNight ? '#fff' : '#000'}};">(每题{{questionList[showIndex].score}}分)</text> |
| | | </view> |
| | | <!-- 题目列表 --> |
| | | <swiper |
| | | class="swiper" |
| | | bindanimationfinish="changeSwiper" |
| | | current="{{currentIndex}}" |
| | | > |
| | | <swiper class="swiper" bindanimationfinish="changeSwiper" current="{{currentIndex}}"> |
| | | <swiper-item wx:for="{{questionList}}" wx:key="id" style="overflow-y: auto"> |
| | | <!-- 题干 --> |
| | | <view |
| | | class="question-stem title-score" |
| | | style="color: {{isNight ? '#fff' : '#000'}}; font-size: {{sliderValue || 32}}rpx;" |
| | | > |
| | | <view class="question-stem title-score" style="color: {{isNight ? '#fff' : '#000'}}; font-size: {{sliderValue || 32}}rpx;"> |
| | | <!-- 题号 --> |
| | | <text>{{item.number}}.</text> |
| | | <!-- 听力题 --> |
| | | <view wx:if="{{item.questionType == 'singleChoice' && item.src}}"> |
| | | <rich-text nodes="{{item.stem.stemTxt }}" /> |
| | | <view |
| | | style="margin-top: {{item.stem.stemTxt ? '10rpx' : ''}};" |
| | | class="audio-play-box" |
| | | bind:tap="audioPlay" |
| | | data-src="{{item.src}}" |
| | | > |
| | | <image |
| | | src="{{isPlay ? '/static/images/resourceDetailsMyAudio/zanting@2x.png' : '/static/images/resourceDetailsMyAudio/play@2x.png'}}" |
| | | mode="aspectFit" |
| | | ></image> |
| | | <view style="margin-top: {{item.stem.stemTxt ? '10rpx' : ''}};" class="audio-play-box" bind:tap="audioPlay" data-src="{{item.src}}"> |
| | | <image src="{{isPlay ? '/static/images/resourceDetailsMyAudio/zanting@2x.png' : '/static/images/resourceDetailsMyAudio/play@2x.png'}}" mode="aspectFit"></image> |
| | | </view> |
| | | </view> |
| | | |
| | | <!-- 仅文字 --> |
| | | <view |
| | | class="title-content text-space" |
| | | wx:elif="{{item.stemStyle == 'Txt' && item.questionType != 'completion'}}" |
| | | >{{item.stem.stemTxt}}</view |
| | | > |
| | | <view class="title-content text-space" wx:elif="{{item.stemStyle == 'Txt' && item.questionType != 'completion'}}">{{item.stem.stemTxt}}</view> |
| | | <!-- 仅图片 --> |
| | | <view wx:elif="{{item.stemStyle == 'Image'}}" class="title-content"> |
| | | <image src="{{item.stem.stemImage}}" mode="aspectFit" /> |
| | | </view> |
| | | <!-- 图片加文字 --> |
| | | <view |
| | | wx:elif="{{item.stemStyle == 'TxtAndImage'}}" |
| | | class="title-content text-space" |
| | | > |
| | | <view wx:elif="{{item.stemStyle == 'TxtAndImage'}}" class="title-content text-space"> |
| | | <view>{{item.stem.stemTxt}}</view> |
| | | <image src="{{item.stem.stemImage}}" mode="aspectFit" /> |
| | | </view> |
| | |
| | | </view> |
| | | <!-- 填空题 --> |
| | | <view wx:if="{{item.questionType == 'completion'}}"> |
| | | <view |
| | | class="completion-box" |
| | | wx:for="{{item.stem}}" |
| | | wx:for-item="inputItem" |
| | | wx:for-index="inputIndex" |
| | | wx:key="inputIndex" |
| | | > |
| | | <t-input |
| | | disabled="{{item.isComplete}}" |
| | | bind:change="onChangeInput" |
| | | data-value="{{item.option}}" |
| | | data-id="{{item.id}}" |
| | | data-index="{{inputItem.num}}" |
| | | class="title-input {{isNight ? 'input-night-color' : ''}}" |
| | | style="border: 2rpx solid rgba(220,220,220,1);border-radius: 12rpx;background-color:{{isNight ? '#000' : '#fff'}}; " |
| | | placeholder-style="{{placeholderstyle}}" |
| | | wx:if="{{inputItem.data == 'input'}}" |
| | | placeholder="请输入文字" |
| | | value="{{item.userAnswer[inputItem.num]}}" |
| | | ></t-input> |
| | | <view class="completion-box" wx:for="{{item.stem}}" wx:for-item="inputItem" wx:for-index="inputIndex" wx:key="inputIndex"> |
| | | <t-input disabled="{{item.isComplete}}" bind:change="onChangeInput" data-value="{{item.option}}" data-id="{{item.id}}" data-index="{{inputItem.num}}" class="title-input {{isNight ? 'input-night-color' : ''}}" style="border: 2rpx solid rgba(220,220,220,1);border-radius: 12rpx;background-color:{{isNight ? '#000' : '#fff'}}; " placeholder-style="{{placeholderstyle}}" wx:if="{{inputItem.data == 'input'}}" placeholder="请输入文字" value="{{item.userAnswer[inputItem.num]}}"></t-input> |
| | | <text wx:else class="text-space">{{inputItem}}</text> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | <!-- 答题区域 --> |
| | | <view |
| | | class="question-answer {{item.questionType == 'shortAnswer' ? 'textarea-center' : ''}}" |
| | | > |
| | | <view class="question-answer {{item.questionType == 'shortAnswer' ? 'textarea-center' : ''}}"> |
| | | <!-- 单选题 --> |
| | | <t-radio-group |
| | | wx:if="{{item.questionType == 'singleChoice' || item.questionType == 'judge'}}" |
| | | defaultValue="{{item.userAnswer}}" |
| | | disabled="{{item.isComplete}}" |
| | | bind:change="onChangeRadio" |
| | | class="radio-group" |
| | | data-value="{{item.option}}" |
| | | data-id="{{item.id}}" |
| | | > |
| | | <view |
| | | wx:for="{{item.option}}" |
| | | wx:for-item="contentItem" |
| | | wx:for-index="contentIndex" |
| | | wx:key="contentIndex" |
| | | > |
| | | <t-radio |
| | | value="{{contentItem.value}}" |
| | | icon="none" |
| | | placement="right" |
| | | borderless |
| | | style="background-color: {{isNight ? '#222' : '#fff'}}" |
| | | > |
| | | <view |
| | | style="font-size: {{sliderValue || 32}}rpx;" |
| | | class="radio-item {{(answerType == 'option' || answerType == 'mock' ) && !submitStatus && item.userAnswer == contentItem.value ? 'radio-active' : isNight ? 'night' :''}} {{item.userAnswer == contentItem.value && submitStatus ? item.isRight ? 'radio-correct' : 'radio-error' :''}}" |
| | | > |
| | | <t-radio-group wx:if="{{item.questionType == 'singleChoice' || item.questionType == 'judge'}}" defaultValue="{{item.userAnswer}}" disabled="{{item.isComplete}}" bind:change="onChangeRadio" class="radio-group" data-value="{{item.option}}" data-id="{{item.id}}"> |
| | | <view wx:for="{{item.option}}" wx:for-item="contentItem" wx:for-index="contentIndex" wx:key="contentIndex"> |
| | | <t-radio value="{{contentItem.value}}" icon="none" placement="right" borderless style="background-color: {{isNight ? '#222' : '#fff'}}"> |
| | | <view style="font-size: {{sliderValue || 32}}rpx;" class="radio-item {{(answerType == 'option' || answerType == 'mock' ) && !submitStatus && item.userAnswer == contentItem.value ? 'radio-active' : isNight ? 'night' :''}} {{item.userAnswer == contentItem.value && submitStatus ? item.isRight ? 'radio-correct' : 'radio-error' :''}}"> |
| | | <!-- 仅文字 --> |
| | | <text wx:if="{{item.optionStyle == 'Txt'}}" class="text-space" |
| | | >{{contentItem.value}}、{{contentItem.txt}}</text |
| | | > |
| | | <text wx:if="{{item.optionStyle == 'Txt'}}" class="text-space">{{contentItem.value}}、{{contentItem.txt}}</text> |
| | | <!-- 仅图片 --> |
| | | <view wx:if="{{item.optionStyle == 'Image'}}" class="fl-center"> |
| | | <text>{{contentItem.value}}、</text> |
| | | <image src="{{contentItem.img}}" mode="aspectFit" /> |
| | | </view> |
| | | <!-- 文字加图片 --> |
| | | <view |
| | | wx:if="{{item.optionStyle == 'TxtAndImage'}}" |
| | | class="fl-center" |
| | | class="TxtAndImage-box" |
| | | > |
| | | <view wx:if="{{item.optionStyle == 'TxtAndImage'}}" class="fl-center" class="TxtAndImage-box"> |
| | | <text class="text-space">{{contentItem.value}}、</text> |
| | | <view class="radio-textimg">{{contentItem.txt}}</view> |
| | | <image src="{{contentItem.img}}" mode="aspectFit" /> |
| | | </view> |
| | | <!-- 富文本 --> |
| | | <view |
| | | wx:if="{{item.optionStyle == 'RichText'}}" |
| | | class="judge-rich-box" |
| | | > |
| | | <view wx:if="{{item.optionStyle == 'RichText'}}" class="judge-rich-box"> |
| | | <text>{{contentItem.value}}、</text> |
| | | <rich-text |
| | | nodes="{{ contentItem.txt}}" |
| | | style="display: flex; align-items: center; width: 100%" |
| | | ></rich-text> |
| | | <rich-text nodes="{{ contentItem.txt}}" style="display: flex; align-items: center; width: 100%"></rich-text> |
| | | </view> |
| | | <!-- <text |
| | | wx:if="{{submitStatus && (item.answer == contentItem.value && item.answer == item.userAnswer)}}" |
| | |
| | | </view> |
| | | </t-radio-group> |
| | | <!-- 多选题 --> |
| | | <t-checkbox-group |
| | | class="checkbox-group" |
| | | wx:elif="{{item.questionType == 'multipleChoice'}}" |
| | | t-class="box" |
| | | borderless |
| | | bind:change="onChangeRadio" |
| | | data-value="{{item.option}}" |
| | | data-id="{{item.id}}" |
| | | defaultValue="{{item.userAnswer}}" |
| | | > |
| | | <view |
| | | wx:for="{{item.option}}" |
| | | wx:for-item="contentItem" |
| | | wx:for-index="contentIndex" |
| | | wx:key="contentIndex" |
| | | > |
| | | <t-checkbox |
| | | disabled="{{item.isComplete}}" |
| | | icon="rectangle" |
| | | block="{{false}}" |
| | | class="t-checkbox" |
| | | value="{{contentItem.value}}" |
| | | style="background-color:{{isNight ? '#222' :'#F9F9F9'}}; " |
| | | > |
| | | <t-checkbox-group class="checkbox-group" wx:elif="{{item.questionType == 'multipleChoice'}}" t-class="box" borderless bind:change="onChangeRadio" data-value="{{item.option}}" data-id="{{item.id}}" defaultValue="{{item.userAnswer}}"> |
| | | <view wx:for="{{item.option}}" wx:for-item="contentItem" wx:for-index="contentIndex" wx:key="contentIndex"> |
| | | <t-checkbox disabled="{{item.isComplete}}" icon="rectangle" block="{{false}}" class="t-checkbox" value="{{contentItem.value}}" style="background-color:{{isNight ? '#222' :'#F9F9F9'}}; "> |
| | | <!-- 仅文字 --> |
| | | <view |
| | | class="fl-center mh text-space" |
| | | wx:if="{{item.optionStyle == 'Txt'}}" |
| | | style="color:{{ isNight ? '#fff' : '#000'}};font-size:{{sliderValue || 32}}rpx;" |
| | | > |
| | | <view class="fl-center mh text-space" wx:if="{{item.optionStyle == 'Txt'}}" style="color:{{ isNight ? '#fff' : '#000'}};font-size:{{sliderValue || 32}}rpx;"> |
| | | <text>{{contentItem.value}}、</text> |
| | | <text class="check-text-box">{{contentItem.txt}}</text> |
| | | </view> |
| | | |
| | | <!-- 仅图片 --> |
| | | <view |
| | | wx:if="{{item.optionStyle == 'Image'}}" |
| | | class="fl-center mh" |
| | | > |
| | | <text |
| | | style="color:{{ isNight ? '#fff' : '#000'}};font-size:{{sliderValue || 32}}rpx;" |
| | | >{{contentItem.value}}、</text |
| | | > |
| | | <view wx:if="{{item.optionStyle == 'Image'}}" class="fl-center mh"> |
| | | <text style="color:{{ isNight ? '#fff' : '#000'}};font-size:{{sliderValue || 32}}rpx;">{{contentItem.value}}、</text> |
| | | <image src="{{contentItem.img}}" mode="aspectFit" /> |
| | | </view> |
| | | <!-- 文字加图片 --> |
| | | <view |
| | | wx:if="{{item.optionStyle == 'TxtAndImage'}}" |
| | | class="fl-center mh text-space" |
| | | > |
| | | <text |
| | | style="color:{{ isNight ? '#fff' : '#000'}};font-size:{{sliderValue || 32}}rpx;" |
| | | >{{contentItem.value}}、</text |
| | | > |
| | | <text |
| | | style="color:{{ isNight ? '#fff' : '#000'}};font-size:{{sliderValue || 32}}rpx;" |
| | | >{{contentItem.txt}}</text |
| | | > |
| | | <image |
| | | src="{{contentItem.img}}" |
| | | wx:if="{{contentItem.img}}" |
| | | mode="aspectFit" |
| | | /> |
| | | <view wx:if="{{item.optionStyle == 'TxtAndImage'}}" class="fl-center mh text-space"> |
| | | <text style="color:{{ isNight ? '#fff' : '#000'}};font-size:{{sliderValue || 32}}rpx;">{{contentItem.value}}、</text> |
| | | <text style="color:{{ isNight ? '#fff' : '#000'}};font-size:{{sliderValue || 32}}rpx;">{{contentItem.txt}}</text> |
| | | <image src="{{contentItem.img}}" wx:if="{{contentItem.img}}" mode="aspectFit" /> |
| | | </view> |
| | | <!-- 富文本 --> |
| | | <view |
| | | wx:if="{{item.optionStyle == 'RichText'}}" |
| | | class="check-rich-box mh" |
| | | > |
| | | <view wx:if="{{item.optionStyle == 'RichText'}}" class="check-rich-box mh"> |
| | | <text>{{contentItem.value}}、</text> |
| | | <rich-text |
| | | nodes="{{contentItem.txt}}" |
| | | class="multipleChoice" |
| | | ></rich-text> |
| | | <rich-text nodes="{{contentItem.txt}}" class="multipleChoice"></rich-text> |
| | | </view> |
| | | </t-checkbox> |
| | | </view> |
| | | </t-checkbox-group> |
| | | <!-- 简答 翻译 --> |
| | | <t-textarea |
| | | disabled="{{item.isComplete}}" |
| | | value="{{item.userAnswer}}" |
| | | bind:change="onChangeRadio" |
| | | data-value="{{item.option}}" |
| | | data-id="{{item.id}}" |
| | | class="option-textarea {{isNight ? 'textarea-night-color' :''}}" |
| | | wx:elif="{{item.questionType == 'shortAnswer'}}" |
| | | t-class="external-class" |
| | | placeholder="请输入文字" |
| | | bordered |
| | | maxlength="500" |
| | | disableDefaultPadding="{{true}}" |
| | | indicator |
| | | style="background-color:{{isNight ? '#000' : '#fff'}}; " |
| | | /> |
| | | <t-textarea disabled="{{item.isComplete}}" value="{{item.userAnswer}}" bind:change="onChangeRadio" data-value="{{item.option}}" data-id="{{item.id}}" class="option-textarea {{isNight ? 'textarea-night-color' :''}}" wx:elif="{{item.questionType == 'shortAnswer'}}" t-class="external-class" placeholder="请输入文字" bordered maxlength="500" disableDefaultPadding="{{true}}" indicator style="background-color:{{isNight ? '#000' : '#fff'}}; " /> |
| | | </view> |
| | | <!-- 我的错题、收藏模式下,查看解析按钮 --> |
| | | <view |
| | | wx:if="{{(answerType == 'collectQuestion' || answerType == 'errorQuestion') && (item.questionType == 'multipleChoice' || item.questionType == 'completion' || item.questionType == 'shortAnswer')}}" |
| | | style="margin-left: 40rpx" |
| | | > |
| | | <t-button theme="primary" class="view-parsing" bind:tap="viewParsing" |
| | | >查看解析</t-button |
| | | > |
| | | <view wx:if="{{(answerType == 'collectQuestion' || answerType == 'errorQuestion') && (item.questionType == 'multipleChoice' || item.questionType == 'completion' || item.questionType == 'shortAnswer')}}" style="margin-left: 40rpx"> |
| | | <t-button theme="primary" class="view-parsing" bind:tap="viewParsing">查看解析</t-button> |
| | | </view> |
| | | <!-- 单选、多选解析 --> |
| | | <view |
| | | class="analysis" |
| | | wx:if="{{item.isComplete && (item.questionType == 'singleChoice' || item.questionType == 'judge' || item.questionType == 'multipleChoice')}}" |
| | | > |
| | | <view class="analysis" wx:if="{{item.isComplete && (item.questionType == 'singleChoice' || item.questionType == 'judge' || item.questionType == 'multipleChoice')}}"> |
| | | <view class="analysis-answer {{sliderValue >35 ? 'fl-cl' : '' }}"> |
| | | <view |
| | | class="answer-correct answer-center" |
| | | style="font-size: {{sliderValue || 32}}rpx;" |
| | | > |
| | | <view class="answer-correct answer-center" style="font-size: {{sliderValue || 32}}rpx;"> |
| | | <text class="analysis-title-box">正确答案:</text> |
| | | <rich-text |
| | | nodes="{{item.answer}}" |
| | | style="font-size: {{sliderValue || 40}}rpx;" |
| | | ></rich-text> |
| | | <rich-text nodes="{{item.answer}}" style="font-size: {{sliderValue || 40}}rpx;"></rich-text> |
| | | </view> |
| | | <view |
| | | class="answer-center {{item.isRight ? 'answer-correct' : 'answer-error'}} {{sliderValue <= 35 ? 'marginL' : ''}}" |
| | | wx:if="{{item.questionType !== 'shortAnswer'}}" |
| | | > |
| | | <text |
| | | class="analysis-title-box" |
| | | style="font-size: {{sliderValue || 32}}rpx;" |
| | | >您的答案:</text |
| | | ><text |
| | | class="answer-text" |
| | | style="font-size: {{sliderValue || 40}}rpx;" |
| | | >{{item.userAnswer}}</text |
| | | > |
| | | <view class="answer-center {{item.isRight ? 'answer-correct' : 'answer-error'}} {{sliderValue <= 35 ? 'marginL' : ''}}" wx:if="{{item.questionType !== 'shortAnswer'}}"> |
| | | <text class="analysis-title-box" style="font-size: {{sliderValue || 32}}rpx;">您的答案:</text><text class="answer-text" style="font-size: {{sliderValue || 40}}rpx;">{{item.userAnswer}}</text> |
| | | </view> |
| | | </view> |
| | | <view |
| | | class="analysis-text" |
| | | wx:if="{{item.analysisCon}}" |
| | | style="color: {{isNight ? '#fff' : '#000'}};" |
| | | > |
| | | <text |
| | | style="font-size: {{sliderValue || 32}}rpx;" |
| | | class="answer-analysis" |
| | | >答案解析:</text |
| | | > |
| | | <rich-text |
| | | style="font-size: {{sliderValue || 32}}rpx;" |
| | | nodes="{{item.analysisCon}}" |
| | | class="analysis-content" |
| | | ></rich-text> |
| | | <view class="analysis-text" wx:if="{{item.analysisCon}}" style="color: {{isNight ? '#fff' : '#000'}};"> |
| | | <text style="font-size: {{sliderValue || 32}}rpx;" class="answer-analysis">答案解析:</text> |
| | | <rich-text style="font-size: {{sliderValue || 32}}rpx;" nodes="{{item.analysisCon}}" class="analysis-content"></rich-text> |
| | | </view> |
| | | </view> |
| | | <!-- 填空、简答解析 --> |
| | | <view |
| | | class="analysis" |
| | | wx:if="{{(item.questionType == 'shortAnswer' || item.questionType == 'completion') && item.isComplete}}" |
| | | > |
| | | <view |
| | | style="display: {{item.questionType == 'completion' ? 'flex' : 'block'}}" |
| | | > |
| | | <text |
| | | wx:if="{{item.questionType == 'completion'}}" |
| | | class="short-answer-fz answer-correct" |
| | | style="font-size:{{sliderValue || 32}}rpx;" |
| | | >正确答案:</text |
| | | > |
| | | <text |
| | | wx:if="{{item.questionType == 'shortAnswer'}}" |
| | | class="short-answer-fz" |
| | | style="color:{{isNight ? '#fff' : '#000'}};font-size:{{sliderValue || 32}}rpx;" |
| | | > |
| | | <view class="analysis" wx:if="{{(item.questionType == 'shortAnswer' || item.questionType == 'completion') && item.isComplete}}"> |
| | | <view style="display: {{item.questionType == 'completion' ? 'flex' : 'block'}}"> |
| | | <text wx:if="{{item.questionType == 'completion'}}" class="short-answer-fz answer-correct" style="font-size:{{sliderValue || 32}}rpx;">正确答案:</text> |
| | | <text wx:if="{{item.questionType == 'shortAnswer'}}" class="short-answer-fz" style="color:{{isNight ? '#fff' : '#000'}};font-size:{{sliderValue || 32}}rpx;"> |
| | | 参考答案: |
| | | </text> |
| | | <rich-text |
| | | wx:if="{{item.questionType == 'shortAnswer'}}" |
| | | nodes="{{item.answer}}" |
| | | style="font-size:{{sliderValue || 28}}rpx; color:{{item.questionType == 'completion' ? '#1FBC1F' : isNight ? '#fff' : '#000'}}" |
| | | ></rich-text> |
| | | <view |
| | | wx:if="{{item.questionType == 'completion'}}" |
| | | style="font-size:{{sliderValue || 28}}rpx;" |
| | | class="short-answer-fz answer-correct" |
| | | >{{item.answer}}</view |
| | | > |
| | | <rich-text wx:if="{{item.questionType == 'shortAnswer'}}" nodes="{{item.answer}}" style="font-size:{{sliderValue || 28}}rpx; color:{{item.questionType == 'completion' ? '#1FBC1F' : isNight ? '#fff' : '#000'}}"></rich-text> |
| | | <view wx:if="{{item.questionType == 'completion'}}" style="font-size:{{sliderValue || 28}}rpx;" class="short-answer-fz answer-correct">{{item.answer}}</view> |
| | | </view> |
| | | <view |
| | | wx:if="{{item.questionType == 'completion'}}" |
| | | class="short-answer-mr" |
| | | style="display: {{item.questionType == 'completion' ? 'flex' : 'block'}}" |
| | | > |
| | | <text |
| | | class="short-answer-fz {{item.isRight ? 'answer-correct' : 'answer-error'}}" |
| | | style="font-size:{{sliderValue || 32}}rpx;" |
| | | >您的答案:</text |
| | | > |
| | | <view |
| | | class="short-answer-fz {{item.isRight ? 'answer-correct' : 'answer-error'}}" |
| | | style="color:{{isNight ? '#fff' : '#000'}};font-size:{{sliderValue || 28}}rpx;" |
| | | >{{item.userAnswer}}</view |
| | | > |
| | | <view wx:if="{{item.questionType == 'completion'}}" class="short-answer-mr" style="display: {{item.questionType == 'completion' ? 'flex' : 'block'}}"> |
| | | <text class="short-answer-fz {{item.isRight ? 'answer-correct' : 'answer-error'}}" style="font-size:{{sliderValue || 32}}rpx;">您的答案:</text> |
| | | <view class="short-answer-fz {{item.isRight ? 'answer-correct' : 'answer-error'}}" style="color:{{isNight ? '#fff' : '#000'}};font-size:{{sliderValue || 28}}rpx;">{{item.userAnswer}}</view> |
| | | </view> |
| | | <view class="short-answer-mr" style="margin-bottom: 50rpx"> |
| | | <text |
| | | class="short-answer-fz;" |
| | | style="color:{{isNight ? '#fff' : '#000'}};font-size:{{sliderValue || 32}}rpx;" |
| | | >答案解析:</text |
| | | > |
| | | <rich-text |
| | | nodes="{{item.analysisCon}}" |
| | | style="font-size:{{sliderValue || 28}}rpx;;color:{{isNight ? '#fff' : '#000'}}" |
| | | ></rich-text> |
| | | <text class="short-answer-fz;" style="color:{{isNight ? '#fff' : '#000'}};font-size:{{sliderValue || 32}}rpx;">答案解析:</text> |
| | | <rich-text nodes="{{item.analysisCon}}" style="font-size:{{sliderValue || 28}}rpx;;color:{{isNight ? '#fff' : '#000'}}"></rich-text> |
| | | </view> |
| | | </view> |
| | | </swiper-item> |
| | | <swiper-item wx:if="{{noData}}"> |
| | | <view class="noData"> |
| | | <t-empty icon="folder-open" description="暂无数据" /> |
| | | <!-- <t-empty icon="folder-open" description="暂无数据" /> --> |
| | | <empty /> |
| | | </view> |
| | | </swiper-item> |
| | | </swiper> |
| | | </view> |
| | | </view> |
| | |
| | | .textarea-center { |
| | | display: flex; |
| | | justify-content: center; |
| | | margin-bottom: 30rpx; |
| | | } |
| | | |
| | | .input-night-color { |
| | |
| | | .popup-block { |
| | | width: 100vw; |
| | | height: 700rpx; |
| | | padding-bottom: 50rpx; |
| | | padding-bottom: 100rpx; |
| | | background: #fff; |
| | | border-top-left-radius: 16rpx; |
| | | border-top-right-radius: 16rpx; |
| | |
| | | |
| | | .question-card-list { |
| | | padding: 0 20rpx; |
| | | height: 100%; |
| | | margin-bottom: 100rpx; |
| | | height: 500rpx; |
| | | overflow-y: auto; |
| | | } |
| | | |
| | |
| | | } |
| | | |
| | | .question-list { |
| | | margin: 8rpx 0 66rpx 0; |
| | | margin: 8rpx 0; |
| | | display: flex; |
| | | flex-wrap: wrap; |
| | | } |
| | |
| | | justify-content: center; |
| | | align-items: center; |
| | | margin: 38rpx 20rpx 0 0; |
| | | width: 126rpx; |
| | | width: 120rpx; |
| | | height: 62rpx; |
| | | font-size: 34rpx; |
| | | } |
| | |
| | | "t-search": "tdesign-miniprogram/search/search", |
| | | "t-pull-down-refresh": "tdesign-miniprogram/pull-down-refresh/pull-down-refresh", |
| | | "t-loading": "tdesign-miniprogram/loading/loading", |
| | | "t-empty": "tdesign-miniprogram/empty/empty" |
| | | "t-empty": "tdesign-miniprogram/empty/empty", |
| | | "empty": "/components/empty/index" |
| | | }, |
| | | "navigationStyle": "custom", |
| | | "disableScroll": true |
| | |
| | | <view class="book-author book-color">{{item.author}}</view> |
| | | </view> |
| | | <view wx:if="{{noData}}" class="noData"> |
| | | <t-empty icon="folder-open" description="暂无数据" /> |
| | | <!-- <t-empty icon="folder-open" description="暂无数据" /> --> |
| | | <empty /> |
| | | </view> |
| | | </view> |
| | | </view> |
| | |
| | | "t-slider": "tdesign-miniprogram/slider/slider", |
| | | "t-dropdown-menu": "tdesign-miniprogram/dropdown-menu/dropdown-menu", |
| | | "t-dropdown-item": "tdesign-miniprogram/dropdown-item/dropdown-item", |
| | | "t-empty": "tdesign-miniprogram/empty/empty" |
| | | "t-empty": "tdesign-miniprogram/empty/empty", |
| | | "empty": "/components/empty/index" |
| | | } |
| | | } |
| | |
| | | <view class="wrapper"> |
| | | <t-collapse value="{{activeValues}}" bind:change="handleChange"> |
| | | <view wx:if="{{noteList.length == 0}}" class="noData"> |
| | | <t-empty icon="folder-open" description="暂无数据" /> |
| | | <!-- <t-empty icon="folder-open" description="暂无数据" /> --> |
| | | <empty /> |
| | | </view> |
| | | |
| | | <t-collapse-panel value="{{item.id}}" expandIcon wx:for="{{noteList}}"> |
| | |
| | | loading: false, |
| | | hidden: true, |
| | | videoError: false, |
| | | videoLoading: false |
| | | videoLoading: false, |
| | | progress: 0, |
| | | playerList: [] |
| | | }, |
| | | // 格式化笔记时间 |
| | | convertTimestamp(timestamp) { |
| | |
| | | formPath: options.formPath, |
| | | flag: false |
| | | }) |
| | | console.log(this.data.storeInfo,13) |
| | | console.log(this.data.storeInfo, 13) |
| | | if (options.parentName !== "教学资源" && options.parentName !== "云学习") { |
| | | this.setData({ |
| | | parentName: options.parentName, |
| | |
| | | let duration = this.data.pauseTime - this.data.startTime |
| | | this.count(duration) |
| | | } |
| | | this.setPlayerList() |
| | | }, |
| | | |
| | | /** |
| | |
| | | let duration = this.data.pauseTime - this.data.startTime |
| | | this.count(duration) |
| | | } |
| | | this.setPlayerList() |
| | | }, |
| | | count(timeStr) { |
| | | const data = { |
| | |
| | | |
| | | }, |
| | | showDialog(e) { |
| | | |
| | | this.setData({ |
| | | dialogKey: true, |
| | | textvalue: '', |
| | |
| | | app.MG.store.getProductDetail(query).then(res => { |
| | | console.log(this.data.productLinkPath, 345) |
| | | res.datas.cmsDatas[0].datas.forEach((item) => { |
| | | console.log(item, 222) |
| | | if (item.selectType === "video" || item.learnSelectType === "video") { |
| | | this.data.threeLeveData.push(item) |
| | | this.setData({ |
| | |
| | | }) |
| | | this.data.threeLeveData.forEach((items, index) => { // 修改此处添加index参数 |
| | | if (this.data.productLinkPath == items.productLinkPath) { |
| | | console.log(items, 5678) |
| | | if (this.data.formPath === "jsek_cloudLearning") { |
| | | let file |
| | | items.protectedFile ? file = items.protectedFile : file = items.freeFile |
| | |
| | | loading: false, |
| | | hidden: false |
| | | }) |
| | | console.log('地址', this.data.showData); |
| | | }) |
| | | }, |
| | | onVideo(e) { |
| | | this.setPlayerList() |
| | | const item = e.currentTarget.dataset.item |
| | | this.setData({ |
| | | videoLoaidng: true, |
| | | selectedId: e.currentTarget.dataset.index, |
| | | activeId: item.id, |
| | | // showData: '', |
| | | titleName: item.name |
| | | }) |
| | | if (item.selectType == "video" || item.learnSelectType === "video") { |
| | | if (this.data.formPath === "jsek_cloudLearning") { |
| | | |
| | | let file |
| | | item.protectedFile ? file = item.protectedFile : file = item.freeFile |
| | | item.protectedFile || item.file ? file = item.protectedFile || item.file : file = item.freeFile |
| | | this.setData({ |
| | | showData: app.config.requestCtx + '/file/api/ApiDownloadForAuthorize?md5=' + file + '&token=' + wx.getStorageSync(app.config.tokenKey) |
| | | }) |
| | | console.log(this.data.showData); |
| | | } else { |
| | | this.setData({ |
| | | showData: item.file ? app.config.requestCtx + '/file/api/ApiDownload?md5=' + item.file : app.config.requestCtx + '/file/api/ApiDownload?md5=' + item.freeFile, |
| | |
| | | } |
| | | } |
| | | }, |
| | | |
| | | timeUpdate(e) { |
| | | let { |
| | | currentTime, |
| | | duration |
| | | } = e.detail |
| | | this.setData({ |
| | | progress: ((currentTime / duration) * 100).toFixed(2) |
| | | }) |
| | | }, |
| | | //获取视频学习 |
| | | getPlayerList() { |
| | | app.MG.identity |
| | | .getUserKey({ |
| | | domain: 'videoPlayer', |
| | | keys: [this.data.bookId] |
| | | }) |
| | | .then((res) => { |
| | | if (res.length > 0) { |
| | | this.setData({ |
| | | playerList: JSON.parse(res[0].value) |
| | | }) |
| | | } |
| | | }) |
| | | }, |
| | | setPlayerList() { |
| | | let that = this |
| | | if (that.data.progress > 0) { |
| | | let index = that.data.playerList.findIndex((itemData) => itemData.cmsItemId == that.data.activeId) |
| | | if (index > -1) { |
| | | that.data.playerList.splice(index, 1) |
| | | } |
| | | that.data.playerList.push({ |
| | | cmsItemId: that.data.activeId, |
| | | progress: that.data.progress |
| | | }) |
| | | app.MG.identity |
| | | .setUserKey({ |
| | | setKeyRequests: [{ |
| | | domain: 'videoPlayer', |
| | | key: that.data.bookId, |
| | | value: JSON.stringify(that.data.playerList) |
| | | }] |
| | | }) |
| | | .then((res) => {}) |
| | | } |
| | | }, |
| | | |
| | | |
| | | getProductUserSubmitTopicGet() { |
| | | app.MG.ugc.getProductUserSubmitTopic({ |
| | |
| | | } else if (this.data.submitType == 'edit') { |
| | | this.updateNote() |
| | | } |
| | | console.log(this.data.textvalue); |
| | | console.log(this.data.titleName); |
| | | this.setData({ |
| | | dialogKey: false |
| | | }); |
| | |
| | | // item.deleteHover = false |
| | | item.createDate = this.convertTimestamp(item.createDate) |
| | | }) |
| | | console.log(res, 'res'); |
| | | this.setData({ |
| | | "pageCount.total": res.totalSize, |
| | | noteList: res.datas, |
| | |
| | | console.log(e); |
| | | }, |
| | | videoError: function (e) { |
| | | console.log('视频加载失败', e); |
| | | this.setData({ |
| | | videoError: true |
| | | }); |
| | |
| | | "t-loading": "tdesign-miniprogram/loading/loading", |
| | | "t-popup": "tdesign-miniprogram/popup/popup", |
| | | "t-empty": "tdesign-miniprogram/empty/empty", |
| | | "t-skeleton": "tdesign-miniprogram/skeleton/skeleton" |
| | | "t-skeleton": "tdesign-miniprogram/skeleton/skeleton", |
| | | "empty": "/components/empty/index" |
| | | } |
| | | } |
| | |
| | | <view wx:if="{{videoLoaidng}}" class="video-loading"> |
| | | <t-loading theme="circular" size="60rpx" class="wrapper" loading="{{videoLoaidng}}" /> |
| | | </view> |
| | | <video show-center-play-btn="{{false}}" src="{{showData}}" bindloadedmetadata="loadedmetadata"></video> |
| | | <video show-center-play-btn="{{false}}" src="{{showData}}" bindloadedmetadata="loadedmetadata" bindtimeupdate="timeUpdate"></video> |
| | | </view> |
| | | |
| | | <view wx:if="{{!videoChange}}" class="videoSubsidiaryBox"> |
| | |
| | | <t-tab-panel label="笔记" value="1" style="{{tabPanelstyle}}"> |
| | | <view class="wrapper"> |
| | | <view wx:if="{{!noteList.length}}" class="noData"> |
| | | <t-empty icon="folder-open" description="暂无数据" /> |
| | | <!-- <t-empty icon="folder-open" description="暂无数据" /> --> |
| | | <empty /> |
| | | </view> |
| | | <t-collapse value="{{activeValues}}" bind:change="handleChange"> |
| | | <t-collapse-panel value="{{item.id}}" expandIcon wx:for="{{noteList}}" wx:key="id"> |
| | |
| | | "t-input": "tdesign-miniprogram/input/input", |
| | | "t-cascader": "tdesign-miniprogram/cascader/cascader", |
| | | "t-swipe-cell": "tdesign-miniprogram/swipe-cell/swipe-cell", |
| | | "t-empty": "tdesign-miniprogram/empty/empty" |
| | | "t-empty": "tdesign-miniprogram/empty/empty", |
| | | "empty": "/components/empty/index" |
| | | }, |
| | | "disableScroll": true |
| | | } |
| | |
| | | </view> |
| | | </view> |
| | | <view wx:if="{{bookList.length == 0}}" class="empyt"> |
| | | <t-empty icon="folder-open" description="暂无数据" /> |
| | | <!-- <t-empty icon="folder-open" description="暂无数据" /> --> |
| | | <empty /> |
| | | </view> |
| | | </view> |
| | | </view> |
| | |
| | | "t-checkbox": "tdesign-miniprogram/checkbox/checkbox", |
| | | "t-loading": "tdesign-miniprogram/loading/loading", |
| | | "t-pull-down-refresh": "tdesign-miniprogram/pull-down-refresh/pull-down-refresh", |
| | | "t-empty": "tdesign-miniprogram/empty/empty" |
| | | "t-empty": "tdesign-miniprogram/empty/empty", |
| | | "empty": "/components/empty/index" |
| | | } |
| | | } |
| | |
| | | </view> |
| | | </view> |
| | | <view wx:if="{{bookList.length == 0}}" class="empyt"> |
| | | <t-empty icon="folder-open" description="暂无数据" /> |
| | | <!-- <t-empty icon="folder-open" description="暂无数据" /> --> |
| | | <empty /> |
| | | </view> |
| | | <view class="bottom-loading" wx:if="{{bottomLoading}}"> |
| | | <t-loading |
| | |
| | | }) |
| | | this.newGetTeacherInfo() |
| | | }) |
| | | |
| | | }, |
| | | |
| | | |
| | | //获取教师状态 |
| | | newGetTeacherInfo() { |
| | | let that = this; |
| | |
| | | "t-pull-down-refresh": "tdesign-miniprogram/pull-down-refresh/pull-down-refresh", |
| | | "t-loading": "tdesign-miniprogram/loading/loading", |
| | | "t-image": "tdesign-miniprogram/image/image", |
| | | "t-empty": "tdesign-miniprogram/empty/empty" |
| | | "t-empty": "tdesign-miniprogram/empty/empty", |
| | | "empty": "/components/empty/index" |
| | | } |
| | | } |
| | |
| | | </view> |
| | | </view> |
| | | <view wx:if="{{list.length == 0}}" class="empyt"> |
| | | <t-empty icon="folder-open" description="暂无数据" /> |
| | | <!-- <t-empty icon="folder-open" description="暂无数据" /> --> |
| | | <empty /> |
| | | </view> |
| | | <view class="bottom-loading" wx:if="{{bottomLoading}}"> |
| | | <t-loading theme="circular" size="40rpx" text="加载中..." class="wrapper" /> |
| | |
| | | "t-image": "tdesign-miniprogram/image/image", |
| | | "t-pull-down-refresh": "tdesign-miniprogram/pull-down-refresh/pull-down-refresh", |
| | | "t-loading": "tdesign-miniprogram/loading/loading", |
| | | "t-empty": "tdesign-miniprogram/empty/empty" |
| | | "t-empty": "tdesign-miniprogram/empty/empty", |
| | | "empty": "/components/empty/index" |
| | | } |
| | | } |
| | |
| | | </view> |
| | | </view> |
| | | <view wx:if="{{list.length == 0 && !skeletonLoding}}" class="empyt"> |
| | | <t-empty icon="folder-open" description="暂无数据" /> |
| | | <!-- <t-empty icon="folder-open" description="暂无数据" /> --> |
| | | <empty /> |
| | | </view> |
| | | <view class="bottom-loading" wx:if="{{bottomLoading}}"> |
| | | <t-loading theme="circular" size="40rpx" text="加载中..." class="wrapper" /> |
| | |
| | | "t-pull-down-refresh": "tdesign-miniprogram/pull-down-refresh/pull-down-refresh", |
| | | "t-loading": "tdesign-miniprogram/loading/loading", |
| | | "t-image": "tdesign-miniprogram/image/image", |
| | | "t-empty": "tdesign-miniprogram/empty/empty" |
| | | "t-empty": "tdesign-miniprogram/empty/empty", |
| | | "empty": "/components/empty/index" |
| | | } |
| | | } |
| | |
| | | </view> |
| | | </view> |
| | | <view wx:if="{{list.length == 0 && !skeletonLoding}}" class="empyt"> |
| | | <t-empty icon="folder-open" description="暂无数据" /> |
| | | <!-- <t-empty icon="folder-open" description="暂无数据" /> --> |
| | | <empty /> |
| | | </view> |
| | | <view class="bottom-loading" wx:if="{{bottomLoading}}"> |
| | | <t-loading theme="circular" size="40rpx" text="加载中..." class="wrapper" /> |
| | |
| | | const { |
| | | book |
| | | } = e.currentTarget.dataset; |
| | | let url = '' |
| | | if (this.data.activeName == 'FavoriteBookCity') { |
| | | url = `/packageBookService/pages/bookServices/detail/index?id=${book.id}&name=${book.name}` |
| | | } else if (this.data.activeName == 'Favoriteclass') { |
| | | url = `/pages/digitalCourses/digitalCoursesDetails/index?id=${book.id}` |
| | | } else if (this.data.activeName == 'FavoriteTextBooks') { |
| | | url = `/pages/digitalTextbooks/digitalTextbooksDetails/index?id=${book.id}` |
| | | } |
| | | wx.navigateTo({ |
| | | url: `/packageBookService/pages/bookServices/detail/index?id=${book.id}&name=${book.name}`, |
| | | url: url, |
| | | }); |
| | | }, |
| | | |
| | |
| | | "t-pull-down-refresh": "tdesign-miniprogram/pull-down-refresh/pull-down-refresh", |
| | | "t-loading": "tdesign-miniprogram/loading/loading", |
| | | "t-image": "tdesign-miniprogram/image/image", |
| | | "t-empty": "tdesign-miniprogram/empty/empty" |
| | | "t-empty": "tdesign-miniprogram/empty/empty", |
| | | "empty": "/components/empty/index" |
| | | } |
| | | } |
| | |
| | | </view> |
| | | </view> |
| | | <view class="list" wx:if="{{list.length > 0 && !skeletonLoding}}"> |
| | | <view wx:if="{{activeName == 'FavoriteBookCity'}}" class="listBox"> |
| | | <view class="content-item" wx:for="{{list}}" wx:for-item="item" wx:for-index="index" wx:key="index"> |
| | | <view class="listBox"> |
| | | <view class="{{activeName == 'Favoriteclass' ? 'class--tem' : 'content-item'}}" wx:for="{{list}}" wx:for-item="item" wx:for-index="index" wx:key="index"> |
| | | <view class="icon" data-book="{{item}}" bindtap="goBookDetails"> |
| | | <image src="{{item.icon}}" mode="aspectFit" class="img" wx:if="{{item.icon}}" /> |
| | | <image src="/static/images/default-book-img.png" mode="aspectFit" class="img" wx:else /> |
| | |
| | | </view> --> |
| | | </view> |
| | | <view wx:if="{{list.length == 0 && !skeletonLoding}}" class="empyt"> |
| | | <t-empty icon="folder-open" description="暂无数据" /> |
| | | <!-- <t-empty icon="folder-open" description="暂无数据" /> --> |
| | | <empty /> |
| | | </view> |
| | | <view class="bottom-loading" wx:if="{{bottomLoading}}"> |
| | | <t-loading theme="circular" size="40rpx" text="加载中..." class="wrapper" /> |
| | |
| | | } |
| | | |
| | | .t-tabs__nav :nth-child(1) { |
| | | border-radius: 30rpx 30rpx 0 0rpx; |
| | | border-radius: 30rpx 30rpx 0 0rpx !important; |
| | | } |
| | | |
| | | .t-tabs__nav :nth-child(2) { |
| | |
| | | |
| | | .t-tabs__item--active+.t-tabs__item { |
| | | border-radius: 0 30rpx 0 30rpx !important; |
| | | } |
| | | |
| | | .t-tabs__item--active+.t-tabs__item+.t-tabs__item { |
| | | border-radius: 30rpx 30rpx 0rpx 0rpx !important; |
| | | } |
| | | |
| | | .refresh-container { |
| | |
| | | position: relative; |
| | | } |
| | | |
| | | .class--tem { |
| | | width: calc(100%/2 - 40rpx); |
| | | margin-bottom: 30rpx; |
| | | margin: 0 20rpx; |
| | | align-self: stretch; |
| | | position: relative; |
| | | } |
| | | |
| | | .class--tem .icon { |
| | | height: 200rpx; |
| | | width: 100%; |
| | | box-shadow: 0px 0px 20rpx 2px rgba(0, 0, 0, 0.16); |
| | | } |
| | | |
| | | .content-item .icon { |
| | | height: 300rpx; |
| | | width: 210rpx; |
| | | box-shadow: 0px 0px 20rpx 2px rgba(0, 0, 0, 0.16); |
| | | } |
| | | |
| | | .content-item .icon .img { |
| | | .content-item .icon .img, |
| | | .class--tem .icon .img { |
| | | width: 100%; |
| | | height: 100%; |
| | | object-fit: contain; |
| | |
| | | "t-image": "tdesign-miniprogram/image/image", |
| | | "t-pull-down-refresh": "tdesign-miniprogram/pull-down-refresh/pull-down-refresh", |
| | | "t-loading": "tdesign-miniprogram/loading/loading", |
| | | "t-empty": "tdesign-miniprogram/empty/empty" |
| | | "t-empty": "tdesign-miniprogram/empty/empty", |
| | | "empty": "/components/empty/index" |
| | | } |
| | | } |
| | |
| | | </view> |
| | | </view> |
| | | <view wx:if="{{list.length == 0 && !skeletonLoding}}" class="empyt"> |
| | | <t-empty icon="folder-open" description="暂无数据" /> |
| | | <!-- <t-empty icon="folder-open" description="暂无数据" /> --> |
| | | <empty /> |
| | | </view> |
| | | <view class="bottom-loading" wx:if="{{bottomLoading}}"> |
| | | <t-loading theme="circular" size="40rpx" text="加载中..." class="wrapper" /> |
| | |
| | | "t-pull-down-refresh": "tdesign-miniprogram/pull-down-refresh/pull-down-refresh", |
| | | "t-loading": "tdesign-miniprogram/loading/loading", |
| | | "t-image": "tdesign-miniprogram/image/image", |
| | | "t-empty": "tdesign-miniprogram/empty/empty" |
| | | "t-empty": "tdesign-miniprogram/empty/empty", |
| | | "empty": "/components/empty/index" |
| | | } |
| | | } |
| | |
| | | </view> |
| | | </view> |
| | | <view wx:if="{{list.length == 0}}" class="empyt"> |
| | | <t-empty icon="folder-open" description="暂无数据" /> |
| | | <!-- <t-empty icon="folder-open" description="暂无数据" /> --> |
| | | <empty /> |
| | | </view> |
| | | <view class="bottom-loading" wx:if="{{bottomLoading}}"> |
| | | <t-loading theme="circular" size="40rpx" text="加载中..." class="wrapper" /> |
| | |
| | | "t-pull-down-refresh": "tdesign-miniprogram/pull-down-refresh/pull-down-refresh", |
| | | "t-loading": "tdesign-miniprogram/loading/loading", |
| | | "t-image": "tdesign-miniprogram/image/image", |
| | | "t-empty": "tdesign-miniprogram/empty/empty" |
| | | "t-empty": "tdesign-miniprogram/empty/empty", |
| | | "empty": "/components/empty/index" |
| | | } |
| | | } |
| | |
| | | </view> |
| | | </view> |
| | | <view wx:if="{{list.length == 0 && !skeletonLoding}}" class="empyt"> |
| | | <t-empty icon="folder-open" description="暂无数据" /> |
| | | <!-- <t-empty icon="folder-open" description="暂无数据" /> --> |
| | | <empty /> |
| | | </view> |
| | | <view class="bottom-loading" wx:if="{{bottomLoading}}"> |
| | | <t-loading theme="circular" size="40rpx" text="加载中..." class="wrapper" /> |
| | |
| | | "t-button": "tdesign-miniprogram/button/button", |
| | | "t-input": "tdesign-miniprogram/input/input", |
| | | "t-dialog": "tdesign-miniprogram/dialog/dialog", |
| | | "t-toast": "tdesign-miniprogram/toast/toast" |
| | | "t-toast": "tdesign-miniprogram/toast/toast", |
| | | "empty": "/components/empty/index" |
| | | }, |
| | | "navigationStyle": "custom", |
| | | "backgroundTextStyle": "dark" |
| | |
| | | |
| | | <t-tab-panel label="高等教育({{higherTotal}})" value="0"> |
| | | <view wx:if="{{higherList.length <= 0}}" class="noDataBox"> |
| | | <t-empty icon="folder-open" description="暂无数据" /> |
| | | <!-- <t-empty icon="folder-open" description="暂无数据" /> --> |
| | | <empty /> |
| | | </view> |
| | | <scroll-view scroll-y="{{true}}" wx:else class="scroll-box" lower-threshold="{{300}}" refresher-default-style="none" refresher-triggered="{{triggered}}" bindscrolltolower="onReachBottom"> |
| | | <view class="outsideHigherBox"> |
| | |
| | | </t-tab-panel> |
| | | <t-tab-panel label="职业教育({{vocationalTotal}})" value="1"> |
| | | <view wx:if="{{vocationalList.length <= 0}}" class="noDataBox"> |
| | | <t-empty icon="folder-open" description="暂无数据" /> |
| | | <!-- <t-empty icon="folder-open" description="暂无数据" /> --> |
| | | <empty /> |
| | | </view> |
| | | <scroll-view scroll-y="{{true}}" wx:else class="scroll-box" lower-threshold="{{200}}" refresher-default-style="none" refresher-triggered="{{triggered}}" bindscrolltolower="onReachBottom"> |
| | | <view class="outsideHigherBox"> |
| | |
| | | </t-tab-panel> |
| | | <t-tab-panel label="教师教育({{teacherTotal}})" value="2"> |
| | | <view wx:if="{{teacherList.length <= 0}}" class="noDataBox"> |
| | | <t-empty icon="folder-open" description="暂无数据" /> |
| | | <!-- <t-empty icon="folder-open" description="暂无数据" /> --> |
| | | <empty /> |
| | | </view> |
| | | <scroll-view scroll-y="{{true}}" wx:else class="scroll-box" lower-threshold="{{200}}" refresher-default-style="none" refresher-triggered="{{triggered}}" bindscrolltolower="onReachBottom"> |
| | | <view class="outsideHigherBox"> |
| | |
| | | "t-toast": "tdesign-miniprogram/toast/toast", |
| | | "t-icon": "tdesign-miniprogram/icon/icon", |
| | | "t-empty": "tdesign-miniprogram/empty/empty", |
| | | "t-loading": "tdesign-miniprogram/loading/loading" |
| | | "t-loading": "tdesign-miniprogram/loading/loading", |
| | | "empty": "/components/empty/index" |
| | | }, |
| | | "onReachBottomDistance": 100, |
| | | "navigationStyle": "custom", |
| | |
| | | > |
| | | <view class="outside"> |
| | | <view wx:if="{{!bookExhibitionList.length }}" class="noData"> |
| | | <t-empty icon="folder-open" description="暂无数据" /> |
| | | <!-- <t-empty icon="folder-open" description="暂无数据" /> --> |
| | | <empty /> |
| | | </view> |
| | | <view |
| | | class="contentBox" |
| | |
| | | "t-toast": "tdesign-miniprogram/toast/toast", |
| | | "t-empty": "tdesign-miniprogram/empty/empty", |
| | | "t-loading": "tdesign-miniprogram/loading/loading", |
| | | "t-image": "tdesign-miniprogram/image/image" |
| | | "t-image": "tdesign-miniprogram/image/image", |
| | | "empty": "/components/empty/index" |
| | | }, |
| | | "enablePullDownRefresh": true, |
| | | "onReachBottomDistance": 100, |
| | |
| | | <view> |
| | | <!-- <checkbox-group bindchange="HandelItemChange"> --> |
| | | <view wx:if="{{shoppingCartData.length <= 0}}" class="noDataBox"> |
| | | <t-empty icon="folder-open" description="暂无数据" font-size="80" /> |
| | | <!-- <t-empty icon="folder-open" description="暂无数据" font-size="80" /> --> |
| | | <empty /> |
| | | </view> |
| | | <!-- <button bind:tap="onLogin"> 去登录</button> --> |
| | | <t-swipe-cell |
| | |
| | | "t-popup": "tdesign-miniprogram/popup/popup", |
| | | "t-icon": "tdesign-miniprogram/icon/icon", |
| | | "t-empty": "tdesign-miniprogram/empty/empty", |
| | | "t-skeleton": "tdesign-miniprogram/skeleton/skeleton" |
| | | "t-skeleton": "tdesign-miniprogram/skeleton/skeleton", |
| | | "empty": "/components/empty/index" |
| | | } |
| | | } |
| | |
| | | </t-collapse-panel> |
| | | </t-collapse> |
| | | <view wx:if="{{noList}}" class="noData"> |
| | | <t-empty icon="folder-open" description="暂无数据" /> |
| | | <!-- <t-empty icon="folder-open" description="暂无数据" /> --> |
| | | <empty /> |
| | | </view> |
| | | </view> |
| | | <view class="bottom-box" wx:if="{{noteList.length}}"> |
| | |
| | | "t-popup": "tdesign-miniprogram/popup/popup", |
| | | "t-icon": "tdesign-miniprogram/icon/icon", |
| | | "t-empty": "tdesign-miniprogram/empty/empty", |
| | | "t-skeleton": "tdesign-miniprogram/skeleton/skeleton" |
| | | "t-skeleton": "tdesign-miniprogram/skeleton/skeleton", |
| | | "empty": "/components/empty/index" |
| | | } |
| | | } |
| | |
| | | </t-collapse-panel> |
| | | </t-collapse> |
| | | <view wx:if="{{noList}}" class="noData"> |
| | | <t-empty icon="folder-open" description="暂无数据" /> |
| | | <!-- <t-empty icon="folder-open" description="暂无数据" /> --> |
| | | <empty /> |
| | | </view> |
| | | </view> |
| | | <view class="bottom-box" wx:if="{{onlineQuestionsList.length}}"> |
| | |
| | | "t-button": "tdesign-miniprogram/button/button", |
| | | "t-checkbox": "tdesign-miniprogram/checkbox/checkbox", |
| | | "tree": "/packageBookService/pages/bookServices/detail/components/testTree/index", |
| | | "t-empty": "tdesign-miniprogram/empty/empty" |
| | | "t-empty": "tdesign-miniprogram/empty/empty", |
| | | "empty": "/components/empty/index" |
| | | } |
| | | } |
| | |
| | | // 跳转音视频播放器 |
| | | goPlayer(e) { |
| | | // 检查登录状态 |
| | | console.log(123) |
| | | const token = wx.getStorageSync(app.config.tokenKey); |
| | | if (token) { |
| | | const item = e.currentTarget.dataset.item; |
| | |
| | | "t-button": "tdesign-miniprogram/button/button", |
| | | "t-checkbox": "tdesign-miniprogram/checkbox/checkbox", |
| | | "tree": "/packageBookService/pages/bookServices/detail/components/tree/index", |
| | | "t-empty": "tdesign-miniprogram/empty/empty" |
| | | "t-empty": "tdesign-miniprogram/empty/empty", |
| | | "empty": "/components/empty/index" |
| | | } |
| | | } |
| | |
| | | </view> |
| | | <!-- 名称 --> |
| | | <text class="name" style="width: 100%">{{item.name || '-'}}</text> |
| | | <text>{{item.progress ? item.progress : 0}}%</text> |
| | | </view> |
| | | <view> |
| | | <!-- 云学习试看图标 --> |
| | |
| | | <image wx:else src="/static/images/bookService/detail/word.png" mode="" /> |
| | | </view> |
| | | <!-- 名称 --> |
| | | <text class="name" style="width:540rpx">{{citem.name || '-'}}</text> |
| | | <text class="name" style="width:440rpx">{{citem.name || '-'}}</text> |
| | | <text>{{citem.progress ? citem.progress : 0}}%</text> |
| | | </view> |
| | | <view> |
| | | <!-- 云学习试看图标 --> |
| | |
| | | </view> |
| | | <!-- 暂无数据 --> |
| | | <view wx:if="{{!item.children || !item.children.length}}" class="noData"> |
| | | <t-empty icon="folder-open" description="暂无数据" /> |
| | | <!-- <t-empty icon="folder-open" description="暂无数据" /> --> |
| | | <empty /> |
| | | </view> |
| | | <view class="listItems" wx:if="{{children.length <= 0 && !loading}}"> |
| | | 暂无数据 |
| | |
| | | const app = getApp() |
| | | import moment from 'moment' |
| | | import Toast from "tdesign-miniprogram/toast"; |
| | | import { |
| | | loginInfo |
| | | } from '../../../assets/js/login'; |
| | | Page({ |
| | | |
| | | /** |
| | |
| | | notePage: 1, |
| | | noteLimit: 6, |
| | | noteTotalCount: 0, |
| | | images: [], |
| | | visible: false, |
| | | showIndex: false, |
| | | closeBtn: false, |
| | | deleteBtn: false, |
| | | bookId: '', |
| | | playerList: [], |
| | | worksInfo: [], |
| | | isCertificate: {}, |
| | | isLearn: false, |
| | | isTest: false, |
| | | }, |
| | | formatDate(dateString) { |
| | | if (!dateString) { |
| | |
| | | * 生命周期函数--监听页面加载 |
| | | */ |
| | | onLoad(options) { |
| | | console.log(options); |
| | | this.setData({ |
| | | bookId: options.id |
| | | }) |
| | | this.digitalCoursesDetailsGet(options.id) |
| | | |
| | | this.getPlayerList() |
| | | this.getResource() |
| | | }, |
| | | |
| | | /** |
| | |
| | | */ |
| | | onShareAppMessage() { |
| | | |
| | | }, |
| | | //获取视频学习 |
| | | getPlayerList() { |
| | | app.MG.identity |
| | | .getUserKey({ |
| | | domain: 'videoPlayer', |
| | | keys: [this.data.bookId] |
| | | }) |
| | | .then((res) => { |
| | | if (res.length > 0) { |
| | | this.setData({ |
| | | playerList: JSON.parse(res[0].value) |
| | | }) |
| | | console.log(this.data.playerList, "playerList") |
| | | } |
| | | }) |
| | | }, |
| | | digitalCoursesDetailsGet(digitalTextId) { |
| | | let query = { |
| | |
| | | } |
| | | } |
| | | app.MG.store.getProductDetail(query).then((res) => { |
| | | console.log(res.datas, 1111) |
| | | let test = [] |
| | | let learn = [] |
| | | let learnItemList = [] |
| | | if (res.datas.cmsDatas[0].datas.length > 0) { |
| | | res.datas.cmsDatas[0].datas.forEach((item) => { |
| | | if (item.type == 'questionBankFolder' || item.type == 'questionBankItem') { |
| | | test.push(item) |
| | | } else if (item.type != "resourceItem") { |
| | | this.data.playerList.forEach(pItem => { |
| | | if (pItem.cmsItemId == item.id) { |
| | | item.progress = pItem.progress |
| | | } |
| | | }) |
| | | learn.push(item) |
| | | } |
| | | if (item.type == 'productItem') { |
| | | learnItemList.push(item) |
| | | } |
| | | |
| | | }) |
| | | |
| | | if (this.data.selectActive === 'learn') { |
| | | let list = [] |
| | | // 测试 6位// 正式 5位// 测试调用传20,内部7 正式调用传17 内部传6 |
| | |
| | | openTeachids: result, |
| | | }); |
| | | } |
| | | } |
| | | //判断资源是否学习完成 |
| | | if (learnItemList.length == playerList.value.length) { |
| | | let data = playerList.value.filter((ditem) => ditem.progress != '100') |
| | | if (data) { |
| | | this.setData({ |
| | | isLearn: false, |
| | | }); |
| | | |
| | | } else { |
| | | this.setData({ |
| | | isLearn: true, |
| | | }); |
| | | } |
| | | } else { |
| | | this.setData({ |
| | | isLearn: false, |
| | | }); |
| | | } |
| | | } |
| | | }) |
| | |
| | | }); |
| | | }, |
| | | //申请证书 |
| | | |
| | | //获取字段 |
| | | getType() { |
| | | app.MG.resource.getCmsTypeByRefCode({ |
| | | refCodes: ['jsek_courseCertificate'] |
| | | }).then((res) => { |
| | | this.setData({ |
| | | worksInfo: res[0].cmsTypeLinks[0].children, |
| | | }) |
| | | }) |
| | | }, |
| | | getCertificateList() { |
| | | const data = { |
| | | start: 0, |
| | | size: 9999, |
| | | topicIdOrRefCode: 'applyCourseCertificate', |
| | | appRefCode: config.appRefCode, |
| | | sort: { |
| | | type: 'Desc', |
| | | field: 'CreateDate' |
| | | } |
| | | } |
| | | |
| | | app.MG.ugc.getTopicMessageList(data).then((res) => { |
| | | res.datas.map((item) => { |
| | | item.content = JSON.parse(item.content) |
| | | if (item.content.id == this.data.bookId) { |
| | | this.setData({ |
| | | isCertificate: item |
| | | }) |
| | | } |
| | | }) |
| | | }) |
| | | }, |
| | | |
| | | onCertificate() { |
| | | if (!this.data.isBuy) { |
| | | wx.showToast({ |
| | | title: "请先购买,体验完整服务", |
| | | icon: "none", |
| | | duration: 1000, |
| | | }); |
| | | } |
| | | |
| | | var page = getCurrentPages().pop(); // 获取当前页面实例 |
| | | page.setData({ |
| | | // 动态设置禁止滚动的样式 |
| | |
| | | } |
| | | } |
| | | }, |
| | | |
| | | //证书查看 |
| | | onClick1() { |
| | | this.setData({ |
| | | images: ['/static/images/certificate/cbzs.jpg'], |
| | | showIndex: true, |
| | | visible: true, |
| | | }) |
| | | }, |
| | | onClick2() { |
| | | this.setData({ |
| | | images: ['/static/images/certificate/rzzs.jpg'], |
| | | showIndex: true, |
| | | visible: true, |
| | | }) |
| | | }, |
| | | onClose(e) { |
| | | const { |
| | | trigger |
| | | } = e.detail; |
| | | console.log(trigger); |
| | | this.setData({ |
| | | visible: false, |
| | | }); |
| | | }, |
| | | }) |
| | |
| | | "tree": "/pages/digitalCourses/digitalCoursesDetails/components/tree/index", |
| | | "testTree": "/pages/digitalCourses/digitalCoursesDetails/components/testTree/index", |
| | | "note": "/pages/digitalCourses/digitalCoursesDetails/components/note/note", |
| | | "question": "/pages/digitalCourses/digitalCoursesDetails/components/question/question" |
| | | "question": "/pages/digitalCourses/digitalCoursesDetails/components/question/question", |
| | | "t-image-viewer": "tdesign-miniprogram/image-viewer/image-viewer", |
| | | "empty": "/components/empty/index" |
| | | } |
| | | } |
| | |
| | | <view class="course-content"> |
| | | <rich-text wx:if="{{digitalsData.content}}" nodes="{{digitalsData.content}}"></rich-text> |
| | | <view wx:else="" class="noDataBox"> |
| | | <t-empty icon="folder-open" description="暂无数据" font-size="80" /> |
| | | <!-- <t-empty icon="folder-open" description="暂无数据" font-size="80" /> --> |
| | | <empty /> |
| | | </view> |
| | | </view> |
| | | <view class="rubricBox"> |
| | |
| | | </view> |
| | | <view class="course-content"> |
| | | <view class="certificateChart"> |
| | | <view class="chart"> |
| | | <image src="" mode="" /> |
| | | <view class="chart" bind:tap="onClick1"> |
| | | <image src="/static/images/certificate/cbzs.jpg" mode="" /> |
| | | </view> |
| | | <view class="chart"> |
| | | <image src="" mode="" /> |
| | | <view class="chart" bind:tap="onClick2"> |
| | | <image src="/static/images/certificate/rzzs.jpg" mode="" /> |
| | | </view> |
| | | </view> |
| | | </view> |
| | |
| | | </view> |
| | | <view class="list-box"> |
| | | <view wx:if="{{selectActive == 'learn'}}"> |
| | | <tree id="test-tree" openIds="{{openTeachids}}" bookInfo="{{digitalsData}}" treeList="{{learnList}}" bind:goTest="goTest"> |
| | | <tree id="test-tree" openIds="{{openTeachids}}" bookInfo="{{digitalsData}}" treeList="{{learnList}}"> |
| | | </tree> |
| | | </view> |
| | | <view wx:if="{{selectActive == 'test'}}"> |
| | | <testTree id="tree" openIds="{{openTeachids}}" bookInfo="{{digitalsData}}" tab="{{tab}}" treeList="{{testList}}" bind:goTest="goTest"></testTree> |
| | | <testTree id="tree" openIds="{{openTeachids}}" bookInfo="{{digitalsData}}" tab="{{tab}}" treeList="{{testList}}"></testTree> |
| | | </view> |
| | | </view> |
| | | </view> |
| | |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | |
| | | <t-image-viewer usingCustomNavbar deleteBtn="{{deleteBtn}}" closeBtn="{{closeBtn}}" showIndex="{{showIndex}}" visible="{{visible}}" images="{{images}}" bind:change="onChange" bind:close="onClose"></t-image-viewer> |
| | |
| | | .page-bookService { |
| | | width: 100vw; |
| | | height: 100%; |
| | | |
| | | } |
| | | |
| | | .t-image-viewer { |
| | | --td-image-viewer-top: 0 !important; |
| | | } |
| | | |
| | | .outsideContentBox { |
| | |
| | | } |
| | | } |
| | | app.MG.store.getProductList(obj).then((res) => { |
| | | console.log(res, '7895') |
| | | res.datas.forEach(item => { |
| | | item.price = item.price.toFixed(2) |
| | | }) |
| | |
| | | courseList: res.datas |
| | | }) |
| | | |
| | | console.log(this.data.courseList); |
| | | |
| | | }) |
| | | }, |
| | | searchBook() { |
| | | console.log(this.data.searchValue); |
| | | this.getCourseList(this.data.activeItem) |
| | | }, |
| | | courseDetail(e) { |
| | | console.log(e); |
| | | const item = e.currentTarget.dataset.item |
| | | |
| | | setNewView('productId', item.id) |
| | | this.getCourseTypeListList() |
| | | |
| | | wx.navigateTo({ |
| | | url: '/pages/digitalCourses/digitalCoursesDetails/index?id=' + item.id, |
| | | }) |
| | |
| | | "t-search": "tdesign-miniprogram/search/search", |
| | | "t-empty": "tdesign-miniprogram/empty/empty", |
| | | "t-tabs": "tdesign-miniprogram/tabs/tabs", |
| | | "t-tab-panel": "tdesign-miniprogram/tab-panel/tab-panel" |
| | | "t-tab-panel": "tdesign-miniprogram/tab-panel/tab-panel", |
| | | "empty": "/components/empty/index" |
| | | }, |
| | | "navigationStyle": "custom", |
| | | "disableScroll": false |
| | |
| | | "t-image": "tdesign-miniprogram/image/image", |
| | | "t-toast": "tdesign-miniprogram/toast/toast", |
| | | "t-empty": "tdesign-miniprogram/empty/empty", |
| | | "suggest": "/packageBookService/pages/bookServices/detail/components/suggest/suggest" |
| | | "suggest": "/packageBookService/pages/bookServices/detail/components/suggest/suggest", |
| | | "empty": "/components/empty/index" |
| | | } |
| | | } |
| | |
| | | <rich-text nodes="{{digitalsData.content}}"></rich-text> |
| | | </view> |
| | | <view class="noDataBox" wx:else> |
| | | <t-empty icon="folder-open" description="暂无数据" font-size="80" /> |
| | | |
| | | <!-- <t-empty icon="folder-open" description="暂无数据" font-size="80" /> --> |
| | | <empty /> |
| | | </view> |
| | | </t-tab-panel> |
| | | <t-tab-panel icon="{{tabValue == 'jsek_cloudLearning' ? learnResourceClickIcon : learnResourceIcon}}" value="jsek_cloudLearning" label="证书信息" style="{{tabPanelstyle}}"> |
| | |
| | | |
| | | |
| | | <view class="noDataBox"> |
| | | <t-empty icon="folder-open" description="暂无数据" font-size="80" /> |
| | | |
| | | <!-- <t-empty icon="folder-open" description="暂无数据" font-size="80" /> --> |
| | | <empty /> |
| | | </view> |
| | | </t-tab-panel> |
| | | <t-tab-panel icon="{{tabValue == 'jsek_teachingResources' ? teachResourcesClickIcon : teachResourcesIcon}}" value="jsek_teachingResources" label="作者信息" style="{{tabPanelstyle}}"> |
| | |
| | | <rich-text nodes="{{digitalsData.authorIntroduction}}"></rich-text> |
| | | </view> |
| | | <view class="noDataBox" wx:else> |
| | | <t-empty icon="folder-open" description="暂无数据" font-size="80" /> |
| | | <!-- <t-empty icon="folder-open" description="暂无数据" font-size="80" /> --> |
| | | <empty /> |
| | | </view> |
| | | </t-tab-panel> |
| | | <t-tab-panel icon="{{tabValue == 'catalogue' ? catalogueClickIcon : catalogue}}" value="catalogue" label="目录" style="{{tabPanelstyle}}"> |
| | |
| | | <rich-text nodes="{{digitalsData.catalogue}}"></rich-text> |
| | | </view> |
| | | <view class="noDataBox" wx:else> |
| | | <t-empty icon="folder-open" description="暂无数据" font-size="80" /> |
| | | |
| | | <!-- <t-empty icon="folder-open" description="暂无数据" font-size="80" /> --> |
| | | <empty /> |
| | | </view> |
| | | </t-tab-panel> |
| | | <t-tab-panel icon="{{tabValue == 'questionBank' ? testResourceClickIocn : testResourceIocn}}" value="questionBank" label="相关教材" style="{{tabPanelstyle}}"> |
| | |
| | | <view class="basic"> 相关教材</view> |
| | | </view> |
| | | <view class="noDataBox" wx:if="{{relatedBookData.length <= 0}}"> |
| | | <t-empty icon="folder-open" description="暂无数据" font-size="80" /> |
| | | <!-- <t-empty icon="folder-open" description="暂无数据" font-size="80" /> --> |
| | | <empty /> |
| | | </view> |
| | | <view class="correlation" wx:else> |
| | | <view style="margin-bottom: 30rpx;" wx:for="{{relatedBookData}}" wx:key="index" wx:for-item="item" wx:for-index="index" data-item="{{item}}" bind:tap="onCorrelationBook"> |
| | |
| | | </view> |
| | | <view class="shopCarColor" bind:tap="addBookShopcCar" wx:if="{{!isBuy}}">加入购物车</view> |
| | | <view class="buyColor" bind:tap="buyBtn" wx:if="{{!isBuy && digitalsData.price != 0}}">立即购买</view> |
| | | <view class="buyColor" bind:tap="buyBtn" wx:if="{{!isBuy && digitalsData.price == 0}} ">免费领取</view> |
| | | <view class="buyColor" bind:tap="buyBtn" wx:if="{{!isBuy && digitalsData.price == 0.00}}">免费领取</view> |
| | | <view class="{{!isBuy ? 'buyColor' :'reading'}}" bind:tap="goRead" wx:if="{{isBuy}}"> |
| | | 立即阅读 |
| | | </view> |
| | |
| | | "t-search": "tdesign-miniprogram/search/search", |
| | | "t-empty": "tdesign-miniprogram/empty/empty", |
| | | "t-tabs": "tdesign-miniprogram/tabs/tabs", |
| | | "t-tab-panel": "tdesign-miniprogram/tab-panel/tab-panel" |
| | | "t-tab-panel": "tdesign-miniprogram/tab-panel/tab-panel", |
| | | "empty": "/components/empty/index" |
| | | }, |
| | | "navigationStyle": "custom", |
| | | "disableScroll": false |
| | |
| | | </view> |
| | | |
| | | <view wx:if="{{!digitalTextbooksData.length }}" class="noData"> |
| | | <t-empty icon="folder-open" description="暂无数据" /> |
| | | <!-- <t-empty icon="folder-open" description="暂无数据" /> --> |
| | | <empty /> |
| | | </view> |
| | | </view> |
| | | |
| | |
| | | "t-tab-panel": "tdesign-miniprogram/tab-panel/tab-panel", |
| | | "t-grid": "tdesign-miniprogram/grid/grid", |
| | | "t-grid-item": "tdesign-miniprogram/grid-item/grid-item", |
| | | "t-empty": "tdesign-miniprogram/empty/empty" |
| | | "t-empty": "tdesign-miniprogram/empty/empty", |
| | | "empty": "/components/empty/index" |
| | | } |
| | | } |
| | |
| | | </view> |
| | | </view> |
| | | <view class="empyt" wx:else> |
| | | <t-empty icon="folder-open" description="暂无数据" font-size="80" /> |
| | | <!-- <t-empty icon="folder-open" description="暂无数据" font-size="80" /> --> |
| | | <empty /> |
| | | </view> |
| | | </view> |
| | | <view class="tabCardPublic iconTwo"> |
| | |
| | | </view> |
| | | </view> |
| | | <view class="empyt" wx:else> |
| | | <t-empty icon="folder-open" description="暂无数据" font-size="80" /> |
| | | <!-- <t-empty icon="folder-open" description="暂无数据" font-size="80" /> --> |
| | | <empty /> |
| | | </view> |
| | | </view> |
| | | <view class="tabCardPublic iconTwo"> |
| | |
| | | </view> |
| | | </view> |
| | | <view class="empyt" wx:else> |
| | | <t-empty icon="folder-open" description="暂无数据" font-size="80" /> |
| | | <!-- <t-empty icon="folder-open" description="暂无数据" font-size="80" /> --> |
| | | <empty /> |
| | | </view> |
| | | </view> |
| | | <view class="tabCardPublic"> |
| | |
| | | cmsId: '', |
| | | productLinkPath: '', |
| | | parentProductLinkPath: '', |
| | | formPath: '' |
| | | formPath: '', |
| | | copyUrl: '', |
| | | }, |
| | | |
| | | /** |
| | |
| | | "/file/api/ApiDownload?md5=" + |
| | | book.freeFile; |
| | | console.log(fileLink, "fileLink"); |
| | | this.setData({ |
| | | copyUrl: fileLink |
| | | }) |
| | | // wx.redirectTo({ |
| | | // url: "/packageBookService/pages/bookServices/webView/index?url=" + fileLink |
| | | // }); |
| | |
| | | }) |
| | | }, |
| | | |
| | | copyUrl(e) { |
| | | |
| | | let url = e.currentTarget.dataset.value |
| | | console.log(url) |
| | | // wx.setClipboardData(url) |
| | | wx.setClipboardData({ |
| | | data: `${e.currentTarget.dataset.value}`, |
| | | success(res) { |
| | | console.log(res.data) // data |
| | | }, |
| | | fail(err) { |
| | | reject(err); |
| | | } |
| | | }) |
| | | }, |
| | | /** |
| | | * 用户点击右上角分享 |
| | | */ |
| | |
| | | <!--pages/index/resourceCover.wxml--> |
| | | <text></text> |
| | | <view class="copy" wx:if="{{copyUrl}}"> |
| | | 点击<text class="text" catchtap="copyUrl" data-value="{{copyUrl}}">复制链接</text>,在浏览器中打开下载 |
| | | </view> |
| | | <web-view wx:if="{{webpageSrc}}" src="{{webpageSrc}}"></web-view> |
| | |
| | | /* pages/index/resourceCover.wxss */ |
| | | /* pages/index/resourceCover.wxss */ |
| | | |
| | | .copy { |
| | | padding: 100rpx 0; |
| | | text-align: center; |
| | | } |
| | | |
| | | .text { |
| | | color: #ff6c00; |
| | | } |
| | |
| | | "t-loading": "tdesign-miniprogram/loading/loading", |
| | | "t-image": "tdesign-miniprogram/image/image", |
| | | "t-dialog": "tdesign-miniprogram/dialog/dialog", |
| | | "t-input": "tdesign-miniprogram/input/input" |
| | | "t-input": "tdesign-miniprogram/input/input", |
| | | "empty": "/components/empty/index" |
| | | }, |
| | | "navigationBarTitleText": "检索结果", |
| | | "enablePullDownRefresh": true, |
| | |
| | | |
| | | <t-tab-panel label="图书({{bookTotal}})" value="0" style="{{tabPanelstyle}}" bind:tap="tabClick"> |
| | | <view wx:if="{{bookData.length <= 0}}" class="noDataBox"> |
| | | <t-empty icon="folder-open" description="暂无数据" /> |
| | | <!-- <t-empty icon="folder-open" description="暂无数据" /> --> |
| | | <empty /> |
| | | </view> |
| | | <scroll-view scroll-y="{{true}}" class="scrollViewBox" bindscrolltolower="onScrollToLower"> |
| | | <view class="bookDataBox"> |
| | |
| | | </t-tab-panel> |
| | | <t-tab-panel label="课程({{courseTotal}})" value="1"> |
| | | <view wx:if="{{courseData.length <= 0}}" class="noDataBox"> |
| | | <t-empty icon="folder-open" description="暂无数据" /> |
| | | <!-- <t-empty icon="folder-open" description="暂无数据" /> --> |
| | | <empty /> |
| | | </view> |
| | | |
| | | <scroll-view scroll-y="{{true}}" class="scrollViewBox" bindscrolltolower="onScrollToLower"> |
| | |
| | | </t-tab-panel> |
| | | <t-tab-panel label="数字教材({{digitalTextbooksTotal}})" value="2"> |
| | | <view wx:if="{{digitalTextbooksData.length <= 0}}" class="noDataBox"> |
| | | <t-empty icon="folder-open" description="暂无数据" /> |
| | | <!-- <t-empty icon="folder-open" description="暂无数据" /> --> |
| | | <empty /> |
| | | </view> |
| | | <scroll-view scroll-y="{{true}}" class="scrollViewBox" bindscrolltolower="onScrollToLower"> |
| | | <view class="bookDataBox"> |
| | |
| | | </t-tab-panel> |
| | | <t-tab-panel label="专题({{seminarTotal}})" value="3"> |
| | | <view wx:if="{{seminarData.length <= 0}}" class="noDataBox"> |
| | | <t-empty icon="folder-open" description="暂无数据" /> |
| | | <!-- <t-empty icon="folder-open" description="暂无数据" /> --> |
| | | <empty /> |
| | | </view> |
| | | <scroll-view scroll-y="{{true}}" class="scrollViewBox" bindscrolltolower="onScrollToLower"> |
| | | <view class="listBox"> |
| | |
| | | </t-tab-panel> |
| | | <t-tab-panel label="书目({{bookFairTotal}})" value="4"> |
| | | <view wx:if="{{bookFairData.length <= 0 }}" class="noDataBox"> |
| | | <t-empty icon="folder-open" description="暂无数据" /> |
| | | <!-- <t-empty icon="folder-open" description="暂无数据" /> --> |
| | | <empty /> |
| | | </view> |
| | | |
| | | <scroll-view scroll-y="{{true}}" class="scrollViewBox" bindscrolltolower="onScrollToLower"> |
| | |
| | | </t-tab-panel> |
| | | <t-tab-panel label="书展({{biblioClassificationTotal}})" value="5"> |
| | | <view wx:if="{{biblioClassificationData.length <= 0}}" class="noDataBox"> |
| | | <t-empty icon="folder-open" description="暂无数据" /> |
| | | <!-- <t-empty icon="folder-open" description="暂无数据" /> --> |
| | | <empty /> |
| | | </view> |
| | | |
| | | <scroll-view scroll-y="{{true}}" class="scrollViewBox" bindscrolltolower="onScrollToLower"> |
| | |
| | | "t-search": "tdesign-miniprogram/search/search", |
| | | "t-empty": "tdesign-miniprogram/empty/empty", |
| | | "t-tabs": "tdesign-miniprogram/tabs/tabs", |
| | | "t-tab-panel": "tdesign-miniprogram/tab-panel/tab-panel" |
| | | "t-tab-panel": "tdesign-miniprogram/tab-panel/tab-panel", |
| | | "empty": "/components/empty/index" |
| | | }, |
| | | "navigationStyle": "custom", |
| | | "disableScroll": false |
| | |
| | | </view> |
| | | </view> |
| | | <view wx:if="{{specialSubjectList.length <= 0}}" class="noDataBox"> |
| | | <t-empty icon="folder-open" description="暂无数据" font-size="80" /> |
| | | <!-- <t-empty icon="folder-open" description="暂无数据" font-size="80" /> --> |
| | | <empty /> |
| | | </view> |
| | | </view> |
| | | <view wx:else> |
| | |
| | | </view> |
| | | </view> |
| | | <view wx:if="{{specialDiscussionList.length <= 0}}" class="noDataBox"> |
| | | <t-empty icon="folder-open" description="暂无数据" font-size="80" /> |
| | | <!-- <t-empty icon="folder-open" description="暂无数据" font-size="80" /> --> |
| | | <empty /> |
| | | </view> |
| | | </t-tab-panel> |
| | | </t-tabs> |
| | |
| | | "t-back-top": "tdesign-miniprogram/back-top/back-top", |
| | | "t-loading": "tdesign-miniprogram/loading/loading", |
| | | "t-image": "tdesign-miniprogram/image/image", |
| | | "t-empty": "tdesign-miniprogram/empty/empty" |
| | | "t-empty": "tdesign-miniprogram/empty/empty", |
| | | "empty": "/components/empty/index" |
| | | } |
| | | } |
| | |
| | | </view> --> |
| | | </view> |
| | | <view wx:if="{{list.length == 0}}" class="empyt"> |
| | | <t-empty icon="folder-open" description="暂无数据" /> |
| | | <!-- <t-empty icon="folder-open" description="暂无数据" /> --> |
| | | <empty /> |
| | | </view> |
| | | <view class="bottom-loading" wx:if="{{bottomLoading}}"> |
| | | <t-loading theme="circular" size="40rpx" text="加载中..." class="wrapper" /> |
| | |
| | | text: '专题讨论', |
| | | key: 4, |
| | | icon: '/static/images/home/zhuantitaolun@2x.png', |
| | | url: '/pages/specialDiscussion/index', |
| | | // url: '' |
| | | // url: '/pages/specialDiscussion/index', |
| | | url: '' |
| | | }, |
| | | { |
| | | text: '线上书展', |