app.json
@@ -52,7 +52,9 @@ "pages/bookServices/detail/index", "pages/bookServices/examination/examination", "pages/bookServices/webpage/index", "pages/components/webView/index" "pages/components/webView/index", "pages/bookServices/buyResource/index", "pages/bookServices/detail/buyResource/index" ] } ], packageBookService/pages/bookServices/buyResource/index.js
New file @@ -0,0 +1,66 @@ // packageBookService/pages/bookServices/buyResource/index.js Page({ /** * 页面的初始数据 */ data: { }, /** * 生命周期函数--监听页面加载 */ onLoad(options) { }, /** * 生命周期函数--监听页面初次渲染完成 */ onReady() { }, /** * 生命周期函数--监听页面显示 */ onShow() { }, /** * 生命周期函数--监听页面隐藏 */ onHide() { }, /** * 生命周期函数--监听页面卸载 */ onUnload() { }, /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh() { }, /** * 页面上拉触底事件的处理函数 */ onReachBottom() { }, /** * 用户点击右上角分享 */ onShareAppMessage() { } }) packageBookService/pages/bookServices/buyResource/index.json
New file @@ -0,0 +1,3 @@ { "usingComponents": {} } packageBookService/pages/bookServices/buyResource/index.wxml
New file @@ -0,0 +1,2 @@ <!--packageBookService/pages/bookServices/buyResource/index.wxml--> <text>packageBookService/pages/bookServices/buyResource/index.wxml</text> packageBookService/pages/bookServices/buyResource/index.wxss
New file @@ -0,0 +1 @@ /* packageBookService/pages/bookServices/buyResource/index.wxss */ packageBookService/pages/bookServices/detail/buyResource/index.js
New file @@ -0,0 +1,66 @@ // packageBookService/pages/bookServices/detail/buyResource/index.js Page({ /** * 页面的初始数据 */ data: { }, /** * 生命周期函数--监听页面加载 */ onLoad(options) { }, /** * 生命周期函数--监听页面初次渲染完成 */ onReady() { }, /** * 生命周期函数--监听页面显示 */ onShow() { }, /** * 生命周期函数--监听页面隐藏 */ onHide() { }, /** * 生命周期函数--监听页面卸载 */ onUnload() { }, /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh() { }, /** * 页面上拉触底事件的处理函数 */ onReachBottom() { }, /** * 用户点击右上角分享 */ onShareAppMessage() { } }) packageBookService/pages/bookServices/detail/buyResource/index.json
New file @@ -0,0 +1,3 @@ { "usingComponents": {} } packageBookService/pages/bookServices/detail/buyResource/index.wxml
New file @@ -0,0 +1,2 @@ <!--packageBookService/pages/bookServices/detail/buyResource/index.wxml--> <text>packageBookService/pages/bookServices/detail/buyResource/index.wxml</text> packageBookService/pages/bookServices/detail/buyResource/index.wxss
New file @@ -0,0 +1 @@ /* packageBookService/pages/bookServices/detail/buyResource/index.wxss */ packageBookService/pages/bookServices/detail/components/brief/index.js
@@ -8,5 +8,8 @@ type: String, value: '', }, }, data:{ richStyle:'font-size: 28rpx;color: #333; line-height: 48rpx;text-align: justify;' } }); packageBookService/pages/bookServices/detail/components/brief/index.wxml
@@ -2,19 +2,19 @@ <view class="basic" wx:if="{{content}}"> <view class="basic-title"> <view> <t-image src="/static/images/bookService/detail/label.png"></t-image> <image src="/static/images/bookService/detail/label.png" /> </view> <view class="title-name">基本信息</view> </view> <rich-text nodes="{{content}}" style="font-size: 28rpx; color: #333; line-height: 48rpx; text-align: justify"></rich-text> <rich-text nodes="{{content}}" style="{{richStyle}}"></rich-text> </view> <view class="basic" wx:if="{{authorIntroduction}}"> <view class="basic-title"> <view> <t-image src="/static/images/bookService/detail/author.png"></t-image> <image src="/static/images/bookService/detail/author.png" /> </view> <view class="title-name">作者简介</view> </view> </view> <rich-text nodes="{{authorIntroduction}}" style="font-size: 28rpx; color: #333; line-height: 48rpx; text-align: justify" /> <rich-text nodes="{{authorIntroduction}}" style="{{richStyle}}" /> </view> packageBookService/pages/bookServices/detail/components/learnResource/learnResource.wxml
@@ -1,15 +1,33 @@ <!--pages/bookServices/detail/components/learnResource/learnResource.wxml--> <view class="learnResource" theme="primary"> <t-button loading="{{receive}}" class="btn" theme="primary" style="height: 72rpx; font-size: 28rpx; " t-class="external-class" bind:tap="getFreeResource"> <t-image src=" /static/images/bookService/detail/yijianlingqu.png"></t-image> <t-button loading="{{receive}}" class="btn" theme="primary" style="height: 72rpx; font-size: 28rpx" t-class="external-class" bind:tap="getFreeResource" > <image src=" /static/images/bookService/detail/yijianlingqu.png" /> <text>领取查看</text> </t-button> <t-button loading="{{buy}}" class="btn" theme="primary" style="height: 72rpx; font-size: 28rpx;" bind:tap="allAddShoppiingCar"> <t-image src="/static/images/bookService/detail/yijiangoumai.png"></t-image> <t-button loading="{{buy}}" class="btn" theme="primary" style="height: 72rpx; font-size: 28rpx" bind:tap="allAddShoppiingCar" > <image src="/static/images/bookService/detail/yijiangoumai.png" /> 一键购买 </t-button> <t-button class="btn" theme="primary" style="height: 72rpx; font-size: 28rpx;" wx:if="{{false}}"> <t-image src="/static/images/bookService/detail/renwudan/icon.png"></t-image> <t-button class="btn" theme="primary" style="height: 72rpx; font-size: 28rpx" wx:if="{{false}}" > <image src="/static/images/bookService/detail/renwudan/icon.png" /> 学习任务单 </t-button> </view> packageBookService/pages/bookServices/detail/components/note/note.wxml
@@ -1,19 +1,30 @@ <!--pages/bookServices/detail/components/note/note.wxml--> <view class="note"> <view class="note-btn"> <t-button theme="primary" class="make-note" bind:tap="openDialog" style="width: 240rpx;"> <t-button theme="primary" class="make-note" bind:tap="openDialog" style="width: 240rpx" > <view slot="content"> <t-image src="/static/images/bookService/detail/makeNote.png"></t-image> <image src="/static/images/bookService/detail/makeNote.png" /> 记笔记 </view> </t-button> </view> <view class="note-content"> <t-collapse value="{{activeValues}}" bind:change="handleChange" wx:if="{{!loading && noteList.length}}"> <t-collapse value="{{activeValues}}" bind:change="handleChange" wx:if="{{!loading && noteList.length}}" > <t-collapse-panel value="{{item.id}}" expandIcon wx:for="{{noteList}}"> <view slot="header" class="collapse-header"> <t-image class="note-icon" src="/static/images/bookService/detail/note-icon.png"></t-image> <t-image class="note-icon" src="/static/images/bookService/detail/note-icon.png" ></t-image> <view class="header-name">{{item.name}}</view> </view> <view> @@ -21,8 +32,18 @@ <view class="note-bottom"> <view class="note-time">{{item.createDate}}</view> <view class="bottom-btn"> <t-image src="/static/images/bookService/detail/compliceHover.png" class="complice" bind:tap="editNote" data-note="{{item}}"></t-image> <t-image src="/static/images/bookService/detail/deleteHover.png" class="delete" bind:tap="deleteNote" data-id="{{item.id}}"></t-image> <image src="/static/images/bookService/detail/compliceHover.png" class="complice" bind:tap="editNote" data-note="{{item}}" /> <image src="/static/images/bookService/detail/deleteHover.png" class="delete" bind:tap="deleteNote" data-id="{{item.id}}" /> </view> </view> </view> @@ -41,25 +62,61 @@ <t-loading loading="{{loading}}" size="60rpx"></t-loading> </view> <!-- 记笔记弹窗 --> <t-popup visible="{{showNoteDialog}}" bind:visible-change="onVisibleChange" placement="center"> <t-popup visible="{{showNoteDialog}}" bind:visible-change="onVisibleChange" placement="center" > <view class="popup"> <view slot="title"> <view class="title-text" wx:if="{{!flag}}"> <text class="note-title">{{submitTitle}}</text> <t-image src="/static/images/bookService/detail/edit.png" class="edit-icon" bind:tap="changeTitle" data-value="{{true}}"></t-image> <t-image src="/static/images/bookService/detail/edit.png" class="edit-icon" bind:tap="changeTitle" data-value="{{true}}" ></t-image> </view> <view wx:else> <t-input value="{{submitTitle}}" data-value="{{false}}" bind:enter="changeTitle" bind:blur="changeTitle" bind:change="inputChange" maxlength="{{50}}" style="{{inputStyle}}"></t-input> <t-input value="{{submitTitle}}" data-value="{{false}}" bind:enter="changeTitle" bind:blur="changeTitle" bind:change="inputChange" maxlength="{{50}}" style="{{inputStyle}}" ></t-input> </view> </view> <view slot="content" class="content"> <t-textarea value="{{textvalue}}" t-class="external-class" label="" placeholder="请输入笔记内容" maxcharacter="500" disableDefaultPadding="{{true}}" indicator bind:change="textareaChange" bind:blur="" style="{{inputStyle}}" placeholder-style="{{placeholderstyle}}" /> <t-textarea value="{{textvalue}}" t-class="external-class" label="" placeholder="请输入笔记内容" maxcharacter="500" disableDefaultPadding="{{true}}" indicator bind:change="textareaChange" bind:blur="" style="{{inputStyle}}" placeholder-style="{{placeholderstyle}}" /> </view> <view class="submit-btn"> <t-button theme="primary" size="large" block bind:tap="confirmSuggest">提交</t-button> <t-button theme="primary" size="large" block bind:tap="confirmSuggest" >提交</t-button > </view> </view> <t-icon t-class="close-btn" name="close-circle" size="32" color="#fff" bind:tap="closeDialog" /> <t-icon t-class="close-btn" name="close-circle" size="32" color="#fff" bind:tap="closeDialog" /> </t-popup> packageBookService/pages/bookServices/detail/components/suggest/suggest.js
@@ -60,7 +60,7 @@ textvalue: e.detail.value }) }, feedBack() { async feedBack() { const token = wx.getStorageSync('jsek-token') if (!token) { return wx.getUserProfile({ @@ -86,7 +86,7 @@ newDataListRequest: [] } app.MG.ugc.newTopicMessage(query).then((res) => { await app.MG.ugc.newTopicMessage(query).then((res) => { wx.showToast({ title: '提交成功', icon: 'success', @@ -95,7 +95,7 @@ }) }, // 确定 confirmSuggest() { async confirmSuggest() { const isPhoneNumber = /^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/.test(this.data.inputvalue); if (!this.data.ratevalue) { return wx.showToast({ @@ -118,7 +118,7 @@ title: '请输入反馈反馈内容', }) } this.feedBack() await this.feedBack() } }, }) packageBookService/pages/bookServices/detail/components/testResource/testResource.wxml
@@ -1,45 +1,78 @@ <!--pages/bookServices/detail/components/testResource/testResource.wxml--> <view class="test-resource"> <view class="top-btn"> <t-radio-group class="test-radio" t-class="horizontal-box" value="{{radioItem}}" bind:change="onRadioChange" style="margin: 0 10rpx 0 0"> <t-radio-group class="test-radio" t-class="horizontal-box" value="{{radioItem}}" bind:change="onRadioChange" style="margin: 0 10rpx 0 0" > <view class="card {{radioItem == 'test' ? 'card--active' : ''}}"> <t-radio value="test" icon="none" borderless style="height: 80rpx"> <view class="radio-content" slot="content"> <t-image src="{{ radioItem == 'test' ? '/static/images/bookService/detail/practice-icon.png' : '/static/images/bookService/detail/notest.png'}}"></t-image> <text style="color: {{radioItem == 'test' ? '#fff':''}};">练习</text> <image src="{{ radioItem == 'test' ? '/static/images/bookService/detail/practice-icon.png' : '/static/images/bookService/detail/notest.png'}}" ></image> <text style="color: {{radioItem == 'test' ? '#fff':''}};" >练习</text > </view> </t-radio> </view> <view class="card {{radioItem == 'mock' ? 'card--active' : ''}}"> <t-radio value="mock" icon="none" borderless style="height: 74rpx"> <view class="radio-content" slot="content"> <t-image src="{{ radioItem == 'mock' ? '/static/images/bookService/detail/checkpaper.png' : '/static/images/bookService/detail/zujuan.png'}}"></t-image> <text style="color: {{radioItem == 'mock' ? '#fff':''}};">组卷</text> <image src="{{ radioItem == 'mock' ? '/static/images/bookService/detail/checkpaper.png' : '/static/images/bookService/detail/zujuan.png'}}" ></image> <text style="color: {{radioItem == 'mock' ? '#fff':''}};" >组卷</text > </view> </t-radio> </view> </t-radio-group> <t-button class="error-btn" theme="default" size="medium" style="padding: 0 12rpx" bind:tap="goMycollect" data-answerType="errorQuestion"> <t-button class="error-btn" theme="default" size="medium" style="padding: 0 12rpx" bind:tap="goMycollect" data-answerType="errorQuestion" > <view slot="content"> <t-image src="/static/images/bookService/detail/cuoti.png"></t-image> <image src="/static/images/bookService/detail/cuoti.png"></image> 我的错题 </view> </t-button> <t-button class="collect-btn" theme="default" size="medium" style="padding: 0 12rpx" bind:tap="goMycollect" data-answerType="collectQuestion"> <t-button class="collect-btn" theme="default" size="medium" style="padding: 0 12rpx" bind:tap="goMycollect" data-answerType="collectQuestion" > <view slot="content"> <t-image src="/static/images/bookService/detail/wodeshoucang.png"></t-image> <image src="/static/images/bookService/detail/wodeshoucang.png"></image> 我的收藏 </view> </t-button> </view> <!-- 练习列表 --> <view class="resource-list" wx:for="{{list}}" wx:key="id" wx:if="{{radioItem == 'test'}}"> <view class="resource-list" wx:for="{{list}}" wx:key="id" wx:if="{{radioItem == 'test'}}" > <view class="list-title"> <t-image src="/static/images/bookService/detail/test-icon.png"></t-image> <image src="/static/images/bookService/detail/test-icon.png"></image> <text>{{item.name}}</text> </view> <view class="practice" bind:tap="goTest" data-value="{{item}}"> <t-image src="/static/images/bookService/detail/lianxi-icon.png"></t-image> <image src="/static/images/bookService/detail/lianxi-icon.png"></image> </view> </view> </view> @@ -49,25 +82,45 @@ <view wx:if="{{mockData.mockList.length}}"> <view class="mack-num">已组卷{{mockData.mockList.length}}次</view> <view class="mock-list"> <view class="mock-list-box" wx:for="{{mockData.mockList}}" wx:key="id" data-item="{{item}}" bind:tap="goMackPaper"> <view class="mock-list-box" wx:for="{{mockData.mockList}}" wx:key="id" data-item="{{item}}" bind:tap="goMackPaper" > <view class="mock-title">{{item.name}}</view> <view class="mock-message"> <view class="message-box"> <view class="mack-state"> <text wx:if="{{item.state == '3'}}" class="complete state-pad">已完成</text> <text wx:elif="{{item.state == '2' || item.state == '1'}}" class="Incomplete state-pad">未完成</text> <text wx:if="{{item.state == '3'}}" class="complete state-pad" >已完成</text > <text wx:elif="{{item.state == '2' || item.state == '1'}}" class="Incomplete state-pad" >未完成</text > <text wx:else class="Incomplete state-pad">未开始</text> </view> <view class="mock-time">{{item.createDate}}</view> </view> <view class="mock-score" wx:if="{{item.report.userScore}}">{{item.report.userScore}}分</view> <view class="mock-score" wx:if="{{item.state == '3'}}" >{{item.report.userScore}}分</view > </view> </view> </view> </view> <view wx:else class="not-mock"> <t-image src="/static/images/bookService/examination/zhuangtai-icon.png"></t-image> <view class="not-mock-message note-mock-text">组卷是收费功能,请购买后使用!</view> <view class="note-mock-price note-mock-text">价格:<text class="mock-price">¥{{mockData.price}}</text> 元/次</view> <image src="/static/images/bookService/examination/zhuangtai-icon.png" ></image> <view class="not-mock-message note-mock-text" >组卷是收费功能,请购买后使用!</view > <view class="note-mock-price note-mock-text" >价格:<text class="mock-price">¥{{mockData.price}}</text> 元/次</view > </view> </view> packageBookService/pages/bookServices/detail/components/testResource/testResource.wxss
@@ -13,6 +13,11 @@ background-color: #FFF6F0; } .list-title { display: flex; align-items: center; } .list-title image { width: 34rpx; height: 38rpx; packageBookService/pages/bookServices/detail/components/tree/index.wxml
@@ -1,62 +1,171 @@ <view class="tree"> <t-collapse default-value="{{activeValues}}" bind:change="handleChange"> <t-collapse-panel wx:for="{{treeList}}" wx:for-item="item" wx:for-index="index" wx:key="id" value="{{index}}" expandIcon disabled="{{!item.children}}"> <t-collapse-panel wx:for="{{treeList}}" wx:for-item="item" wx:for-index="index" wx:key="id" value="{{index}}" expandIcon disabled="{{!item.children}}" > <view slot="header" class="header-title"> <view wx:if="{{tab == 'jsek_cloudLearning'}}"> <t-checkbox icon="rectangle" checked="{{item.checked}}" data-item="{{item}}" bind:change="checkResourceTitle" /> <t-checkbox icon="rectangle" checked="{{item.checked}}" data-item="{{item}}" bind:change="checkResourceTitle" /> <!-- <t-checkbox icon="rectangle" checked="{{true}}" data-item="{{item}}" bind:change="checkResourceTitle" /> --> </view> <text>{{item.name}}</text> </view> <view class="list" wx:for="{{item.children}}" wx:for-item="citem" wx:for-index="cindex" wx:key="cindex"> <view class="list" wx:for="{{item.children}}" wx:for-item="citem" wx:for-index="cindex" wx:key="cindex" > <!-- // 判断 无子项 且为商品item 直接显示 --> <view class="listItems" wx:if="{{citem.childrenFolderCount <= 0 && citem.type == 'productItem'}}"> <view class="itemsInfo" wx:if="{{citem.name}}" data-item="{{citem}}" data-index="{{cindex}}"> <view class="contentBox" bind:tap="goPlayer" data-item="{{citem}}" data-parent="{{item}}"> <view class="listItems" wx:if="{{citem.childrenFolderCount <= 0 && citem.type == 'productItem'}}" > <view class="itemsInfo" wx:if="{{citem.name}}" data-item="{{citem}}" data-index="{{cindex}}" > <view class="contentBox" bind:tap="goPlayer" data-item="{{citem}}" data-parent="{{item}}" > <!-- 教学资源 云学习 图标 --> <view class="box-image" style="{{ tab == 'jsek_teachingResources' ? 'width: 350rpx;' : 'width: 450rpx;'}}"> <view class="box-image" style="{{ tab == 'jsek_teachingResources' ? 'width: 350rpx;' : 'width: 450rpx;'}}" > <view class="checkBox" wx:if="{{tab == 'jsek_cloudLearning'}}"> <!-- checked="{{citem.checked}}" --> <!-- <t-checkbox icon="rectangle" checked="{{citem.checked}}" disabled="{{citem.selectType=='webpage' || citem.isDownload != 1 || citem.fileMap[citem.file].protectType == 'Private'}}" catch:change="checkResource" data-item="{{citem}}" /> --> <t-checkbox icon="rectangle" checked="{{citem.checked}}" data-item="{{citem}}" catch:change="checkResource" /> <t-checkbox icon="rectangle" checked="{{citem.checked}}" data-item="{{citem}}" catch:change="checkResource" /> </view> <!-- 教学资源图标 --> <view class="teach-icon"> <t-image wx:if="{{citem.selectType == 'audio'}}" src="/static/images/bookService/detail/audioIcon.png" mode="aspectFill" /> <t-image wx:if="{{citem.selectType == 'video'}}" src="/static/images/bookService/detail/video.png" mode="aspectFill" /> <t-image wx:if="{{citem.selectType == 'pdf'}}" src="/static/images/bookService/detail/pdf.png" mode="aspectFill" /> <t-image wx:if="{{citem.selectType == 'webpage'}}" src="/static/images/bookService/detail/net.png" mode="aspectFill" /> <t-image wx:if="{{citem.selectType == 'picture'}}" src="/static/images/bookService/detail/picture.png" mode="aspectFill" /> <t-image wx:if="{{citem.selectType == 'zip'}}" src="/static/images/bookService/detail/zip.png" mode="aspectFill" /> <t-image wx:if="{{ citem.fileMap[citem.file].extension == 'doc' || citem.fileMap[citem.file].extension == 'docx'}}" src="/static/images/bookService/detail/word.png" mode="aspectFill" /> <t-image wx:if="{{ citem.fileMap[citem.file].extension == 'xlsx' || citem.fileMap[citem.file].extension == 'xlsx'}}" src="/static/images/bookService/detail/excel.png" mode="aspectFill" /> <t-image wx:if="{{ citem.fileMap[citem.file].extension == 'ppt' || citem.fileMap[citem.file].extension == 'pptx'}}" src="/static/images/bookService/detail/PPT.png" mode="aspectFill" /> <image wx:if="{{citem.selectType == 'audio'}}" src="/static/images/bookService/detail/audioIcon.png" mode="aspectFill" /> <image wx:if="{{citem.selectType == 'video'}}" src="/static/images/bookService/detail/video.png" mode="aspectFill" /> <image wx:if="{{citem.selectType == 'pdf'}}" src="/static/images/bookService/detail/pdf.png" mode="aspectFill" /> <image wx:if="{{citem.selectType == 'webpage'}}" src="/static/images/bookService/detail/net.png" mode="aspectFill" /> <image wx:if="{{citem.selectType == 'picture'}}" src="/static/images/bookService/detail/picture.png" mode="aspectFill" /> <image wx:if="{{citem.selectType == 'zip'}}" src="/static/images/bookService/detail/zip.png" mode="aspectFill" /> <image wx:if="{{ citem.fileMap[citem.file].extension == 'doc' || citem.fileMap[citem.file].extension == 'docx'}}" src="/static/images/bookService/detail/word.png" mode="aspectFill" /> <image wx:if="{{ citem.fileMap[citem.file].extension == 'xlsx' || citem.fileMap[citem.file].extension == 'xlsx'}}" src="/static/images/bookService/detail/excel.png" mode="aspectFill" /> <image wx:if="{{ citem.fileMap[citem.file].extension == 'ppt' || citem.fileMap[citem.file].extension == 'pptx'}}" src="/static/images/bookService/detail/PPT.png" mode="aspectFill" /> </view> <!-- 云学习图标 --> <view> </view> <!-- 名称 --> <text class="name" style="{{ tab == 'jsek_teachingResources' ? 'width: 300rpx;' : 'width: 400rpx;'}}">{{citem.name}}</text> <text class="name" style="{{ tab == 'jsek_teachingResources' ? 'width: 300rpx;' : 'width: 400rpx;'}}" >{{citem.name}}</text > </view> <!-- 教学资源类型 --> <view class="teachClass"> {{citem.resourceClass}} </view> <view class="teach-btn" wx:if="{{tab == 'jsek_teachingResources'}}"> <view class="teach-btn" wx:if="{{tab == 'jsek_teachingResources'}}" > <!-- 下载按钮 --> <t-image src="/static/images/bookService/detail/download-icon.png" width="16" height="16" class="download" data-value="{{citem}}" catchtap="downloadTeach"></t-image> <image src="/static/images/bookService/detail/download-icon.png" class="download-image" data-value="{{citem}}" catchtap="downloadTeach" ></image> </view> <view wx:if="{{tab == 'jsek_cloudLearning'}}"> <!-- 云学习试看图标 --> <t-image src="/static/images/bookService/detail/shikan.png" class="testSee" wx:if="{{!citem.isbuy ? false : citem.freeFile ? true : false}}"></t-image> <image src="/static/images/bookService/detail/shikan.png" class="testSee" wx:if="{{!citem.isbuy ? false : citem.freeFile ? true : false}}" ></image> <!-- 云学习加入购物车图标 --> <t-image src="/static/images/bookService/detail/cart.png" wx:if="{{citem.isShopCar}}" class="shopCar" bind:tap="onCloudShoppingCart"></t-image> <image src="/static/images/bookService/detail/cart.png" wx:if="{{citem.isShopCar}}" class="shopCar" bind:tap="onCloudShoppingCart" ></image> <!-- 云学习购买图标 --> <t-image bind:tap="onCloudShoppingCart" src="/static/images/bookService/detail/need-buy.png" class="need-buy" wx:if="{{citem.isbuy }}"></t-image> <image bind:tap="onCloudShoppingCart" src="/static/images/bookService/detail/need-buy.png" class="need-buy" wx:if="{{citem.isbuy }}" ></image> </view> </view> </view> </view> <!-- // 判断 不是商品 有子项 递归组件 --> <tree wx:else bookInfo="{{bookInfo}}" treeList="{{[citem]}}" itemId="{{itemId}}" tab="{{tab}}" openTeachids="{{openTeachids}}" openLearnids="{{openLearnids}}"></tree> <tree wx:else bookInfo="{{bookInfo}}" treeList="{{[citem]}}" itemId="{{itemId}}" tab="{{tab}}" openTeachids="{{openTeachids}}" openLearnids="{{openLearnids}}" ></tree> </view> <view class="listItems" wx:if="{{children.length <= 0 && !loading}}"> 暂无数据 packageBookService/pages/bookServices/detail/components/tree/index.wxss
@@ -18,7 +18,10 @@ padding: 0; } .download-image { width: 32rpx; height: 32rpx; } .contentBox { padding: 0 26rpx; packageBookService/pages/bookServices/detail/index.wxml
@@ -3,7 +3,12 @@ <view style="width: 100%; height: {{barHeight}}px; "></view> <view class="nacigationBar" style="width: 70%; height: {{navBarHeight}}px;"> <view> <t-icon name="chevron-left" size="30" data-name="{{item}}" bind:click="goBack" /> <t-icon name="chevron-left" size="30" data-name="{{item}}" bind:click="goBack" /> </view> <view class="navbar-title">{{options.name}}</view> </view> @@ -14,19 +19,35 @@ <view class="book-detail"> <view class="detail-left"> <view class="book-img"> <t-image src="{{bookDetail.icon}}" mode="aspectFill" width="120" height="170" aria-label="{{bookDetail.name}}" /> <image loading="" src="{{bookDetail.icon}}" mode="aspectFill" aria-label="{{bookDetail.name}}" /> </view> <view class="book-use"> <view class="collect" bind:tap="setCollect"> <view> <t-image src="/static/images/bookService/detail/collect.png" wx:if="{{!bookDetail.isFavourite}}"></t-image> <t-image src="/static/images/bookService/detail/collecting.png" wx:if="{{bookDetail.isFavourite}}"></t-image> <image loading="" src="/static/images/bookService/detail/collect.png" wx:if="{{!bookDetail.isFavourite}}" /> <image loading="" src="/static/images/bookService/detail/collecting.png" wx:if="{{bookDetail.isFavourite}}" /> </view> <view class="use-title">收藏</view> </view> <view class="suggest" bind:tap="suggestBtn"> <view> <t-image src="/static/images/bookService/detail/suggest.png"></t-image> <image loading="" src="/static/images/bookService/detail/suggest.png" /> </view> <view class="use-title">我要建议</view> </view> @@ -48,15 +69,24 @@ <view class="li-content">{{bookDetail.isbn}}</view> </view> <view class="message-li"> <view class="li-title" wx:if="{{bookDetail.publicationDate}}">出版时间:</view> <view class="li-title" wx:if="{{bookDetail.publicationDate}}" >出版时间:</view > <view class="li-content">{{bookDetail.publicationDate}}</view> </view> <view class="message-li" wx:if="{{bookDetail.class}}" style="height: 80rpx"> <view class="message-li" wx:if="{{bookDetail.class}}" style="height: 80rpx" > <view class="li-title">图书分类:</view> <view class="class-name showTow">{{bookDetail.class}}</view> </view> </view> <t-image src="/static/images/bookService/detail/square.png" class="right-background"></t-image> <image src="/static/images/bookService/detail/square.png" class="right-background" /> </view> </view> <!-- 销售信息 --> @@ -65,11 +95,14 @@ <!-- 电子书售价 --> <view class="electron-price"> <view> <t-image src="/static/images/bookService/detail/electon-price.png"></t-image> <image src="/static/images/bookService/detail/electon-price.png" /> </view> <view class="price"> <view class="price-text">¥{{bookDetail.price == '0.00' ? '免费' :bookDetail.price}}</view> <view class="price-old" wx:if="{{bookDetail.oldPrice != '0.00'}}">¥{{bookDetail.oldPrice}} <view class="line"></view> <view class="price-text" >¥{{bookDetail.price == '0.00' ? '免费' :bookDetail.price}}</view > <view class="price-old" wx:if="{{bookDetail.oldPrice != '0.00'}}" >¥{{bookDetail.oldPrice}} </view> </view> <view> </view> @@ -77,61 +110,147 @@ <!-- 纸质书售价 --> <view class="paper-price"> <view> <t-image src="/static/images/bookService/detail/paper-price.png"></t-image> <image src="/static/images/bookService/detail/paper-price.png" /> </view> <view class="price">¥{{bookDetail.paperPrice == '0.00' ? '免费' : bookDetail.paperPrice}}</view> <view class="price" >¥{{bookDetail.paperPrice == '0.00' ? '免费' : bookDetail.paperPrice}}</view > </view> </view> <!-- 网店 --> <view class="book-web"> <t-image src="/static/images/bookService/detail/jd.png" wx:if="{{bookDetail.JDLink}}" bind:tap="goShop" data-link="{{bookDetail.JDLink}}" data-type="jd"></t-image> <t-image src="/static/images/bookService/detail/tmall.png" width="32" height="22" bind:tap="goShop" data-link="{{bookDetail.tmallLink}}" wx:if="{{bookDetail.tmallLink}}"></t-image> <t-image src="/static/images/bookService/detail/dangdang.png" bind:tap="goShop" data-link="{{bookDetail.dangdangLink}}" wx:if="{{bookDetail.dangdangLink}}"></t-image> <t-image src="/static/images/bookService/detail/jd.png" bind:tap="goShop" data-link="{{bookDetail.weidianLink}}" wx:if="{{bookDetail.weidianLink}}"></t-image> <image src="/static/images/bookService/detail/jd.png" wx:if="{{bookDetail.JDLink}}" bind:tap="goShop" data-link="{{bookDetail.JDLink}}" data-type="jd" /> <image class="tmall-image" src="/static/images/bookService/detail/tmall.png" bind:tap="goShop" data-link="{{bookDetail.tmallLink}}" wx:if="{{bookDetail.tmallLink}}" /> <image src="/static/images/bookService/detail/dangdang.png" bind:tap="goShop" data-link="{{bookDetail.dangdangLink}}" wx:if="{{bookDetail.dangdangLink}}" /> <image src="/static/images/bookService/detail/weidian.png" bind:tap="goShop" data-link="{{bookDetail.weidianLink}}" wx:if="{{bookDetail.weidianLink}}" /> </view> </view> </view> <view class="book-resource"> <t-tabs defaultValue="{{tabValue}}" bind:change="onTabsChange" t-class="custom-tabs" t-class-content="custom-panel" class="tab-class"> <t-tabs defaultValue="{{tabValue}}" bind:change="onTabsChange" t-class="custom-tabs" t-class-content="custom-panel" class="tab-class" > <t-tab-panel label="图书简介" 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}}" class="noData"> <book-brief content="{{bookDetail.content}}" authorIntroduction="{{bookDetail.authorIntroduction}}" wx:if="{{bookDetail.content && bookDetail.authorIntroduction}}" ></book-brief> <view wx:if="{{!bookDetail.content && !bookDetail.authorIntroduction}}" class="noData" > <t-empty icon="folder-open" description="暂无数据" /> </view> </t-tab-panel> <t-tab-panel label="电子书" value="jsek_eBook" style="{{tabPanelstyle}}"> <epub-view fileInfo="{{fileInfo}}" id="eBook" class="webView"></epub-view> <epub-view fileInfo="{{fileInfo}}" id="eBook" class="webView" ></epub-view> </t-tab-panel> <t-tab-panel label="教学资源" value="jsek_teachingResources" class="{{loading ? 'loading': ''}}"> <t-tab-panel label="教学资源" value="jsek_teachingResources" class="{{loading ? 'loading': ''}}" > <view wx:if="{{!loading && teach.length && !noResources}}"> <teach-resource applyState="{{applyState}}" rejectCause="{{rejectCause}}" bind:applyResource="applyResource" applyResourceLoading="{{applyResourceLoading}}"></teach-resource> <tree bookInfo="{{bookDetail}}" treeList="{{teach}}" tab="{{tabValue}}" applyState="{{applyState}}" bind:downloadTeach="downloadTeach" openTeachids="{{openTeachids}}" wx:if="{{teach.length}}"></tree> <teach-resource applyState="{{applyState}}" rejectCause="{{rejectCause}}" bind:applyResource="applyResource" applyResourceLoading="{{applyResourceLoading}}" ></teach-resource> <tree bookInfo="{{bookDetail}}" treeList="{{teach}}" tab="{{tabValue}}" applyState="{{applyState}}" bind:downloadTeach="downloadTeach" openTeachids="{{openTeachids}}" wx:if="{{teach.length}}" ></tree> </view> <t-loading theme="circular" size="60rpx" class="loading" loading="{{loading}}" /> <t-loading theme="circular" size="60rpx" class="loading" loading="{{loading}}" /> <view wx:if="{{noResources}}" class="noData"> <t-empty icon="folder-open" description="暂无数据" /> </view> </t-tab-panel> <t-tab-panel label="云学习" value="jsek_cloudLearning" style="{{tabPanelstyle}}"> <t-tab-panel label="云学习" value="jsek_cloudLearning" style="{{tabPanelstyle}}" > <view wx:if="{{!loading && learn.length}}"> <learn-resource bind:getFreeResource="getFreeResource" bind:allAddShoppiingCar="allAddShoppiingCar" id="learn-resource"></learn-resource> <tree id="tree" bookInfo="{{bookDetail}}" tab="{{tabValue}}" treeList="{{learn}}" buyIds="{{buyIdList}}" openLearnids="{{openLearnids}}"></tree> <learn-resource bind:getFreeResource="getFreeResource" bind:allAddShoppiingCar="allAddShoppiingCar" id="learn-resource" ></learn-resource> <tree id="tree" bookInfo="{{bookDetail}}" tab="{{tabValue}}" treeList="{{learn}}" buyIds="{{buyIdList}}" openLearnids="{{openLearnids}}" ></tree> </view> <view wx:if="{{noResources}}" class="noData"> <t-empty icon="folder-open" description="暂无数据" /> </view> </t-tab-panel> <t-tab-panel label="云测试" value="questionBank" style="{{tabPanelstyle}}"> <t-tab-panel label="云测试" value="questionBank" style="{{tabPanelstyle}}" > <view wx:if="{{!loading && test.length}}"> <test-resource list="{{test}}" bookInfo="{{bookDetail}}" mockData="{{mockData}}"></test-resource> <test-resource list="{{test}}" bookInfo="{{bookDetail}}" mockData="{{mockData}}" ></test-resource> </view> <view wx:if="{{noResources}}" class="noData"> <t-empty icon="folder-open" description="暂无数据" /> </view> </t-tab-panel> <t-tab-panel label="云笔记" value="jsek_note" style="{{tabPanelstyle}}"> <note bookInfo="{{bookDetail}}" id="note" class="note-list" bind:changeLoaidng="changeLoaidng"></note> <note bookInfo="{{bookDetail}}" id="note" class="note-list"></note> </t-tab-panel> </t-tabs> </view> @@ -139,31 +258,77 @@ <view class="box-bottom"> <view class="bottom-btn" bind:tap="appplyElectronicBook"> <view> <t-image src="/static/images/bookService/detail/ebook.png"></t-image> <t-image loading="" src="/static/images/bookService/detail/ebook.png" ></t-image> </view> <view class="btn-text">电子样书申请</view> </view> <view class="bottom-btn" bind:tap="appplyPaperBook"> <view> <t-image src="/static/images/bookService/detail/paper-book.png"></t-image> <t-image src="/static/images/bookService/detail/paper-book.png" ></t-image> </view> <view class="btn-text">纸质样书申请</view> </view> <view class="shopCar {{(tabValue == 'jsek_teachingResources' || tabValue == 'jsek_note') ? 'disabledColor' : 'shopCarColor' }}" bind:tap="addBookShopcCar" wx:if="{{tabValue != 'jsek_eBook'}}">加入购物车</view> <view class="buy {{(tabValue == 'jsek_teachingResources' || tabValue == 'jsek_note') ? 'disabledColor' : 'buyColor' }}" bind:tap="buyBtn" wx:if="{{tabValue != 'jsek_eBook'}}">立即购买</view> <view class="shopCar shopCarColor" bind:tap="addBookShopcCar" wx:if="{{tabValue == 'jsek_eBook' && !bookBuy}}">加入购物车</view> <view class="buy buyColor" bind:tap="buyBtn" wx:if="{{tabValue == 'jsek_eBook' && !bookBuy}}">立即购买</view> <view class="read buyColor" bind:tap="goRead" wx:if="{{tabValue == 'jsek_eBook' && bookBuy}}">立即查看</view> <view class="shopCar {{(tabValue == 'jsek_teachingResources' || tabValue == 'jsek_note') ? 'disabledColor' : 'shopCarColor' }}" bind:tap="addBookShopcCar" wx:if="{{tabValue != 'jsek_eBook'}}" >加入购物车</view > <view class="buy {{(tabValue == 'jsek_teachingResources' || tabValue == 'jsek_note') ? 'disabledColor' : 'buyColor' }}" bind:tap="buyBtn" wx:if="{{tabValue != 'jsek_eBook'}}" >立即购买</view > <view class="shopCar shopCarColor" bind:tap="addBookShopcCar" wx:if="{{tabValue == 'jsek_eBook' && !bookBuy}}" >加入购物车</view > <view class="buy buyColor" bind:tap="buyBtn" wx:if="{{tabValue == 'jsek_eBook' && !bookBuy}}" >立即购买</view > <view class="read buyColor" bind:tap="goRead" wx:if="{{tabValue == 'jsek_eBook' && bookBuy}}" >立即查看</view > </view> </scroll-view> <!-- 我要建议弹窗 --> <suggest class="suggest-component" id="suggest-component" bookIcon="{{bookDetail.icon}}" bookName="{{bookDetail.name}}"></suggest> <suggest class="suggest-component" id="suggest-component" bookIcon="{{bookDetail.icon}}" bookName="{{bookDetail.name}}" ></suggest> <!-- 教学资源下载提示弹窗 --> <t-dialog class="teachDownloadDialog" visible="{{isShowTeachDownload}}" title="提示" content="请前往PC端下载" confirm-btn="{{ confirmBtn }}" bind:confirm="closeTeachDownload" /> <t-dialog class="teachDownloadDialog" visible="{{isShowTeachDownload}}" title="提示" content="请前往PC端下载" confirm-btn="{{ confirmBtn }}" bind:confirm="closeTeachDownload" /> <view class="applyBox" bindtap="goApply"> <view class="box"> <t-image src="/static/images/home/yangshuForm.png" mode="heightFix" class="img" /> <t-image src="/static/images/home/yangshuForm.png" mode="heightFix" class="img" /> <view class="num" wx:if="{{num > 0}}">{{num}}</view> </view> </view> packageBookService/pages/bookServices/detail/index.wxss
@@ -22,10 +22,19 @@ background-color: #F2F3F8; } .book-img image { width: 240rpx; height: 340rpx; } .book-detail { padding: 32rpx; display: flex; border-radius: 0 0 20rpx 20rpx; } .tmall-image { width: 64rpx !important; } .detail-left { @@ -172,16 +181,10 @@ position: relative; font-size: 28rpx; opacity: 0.6; text-decoration: line-through; text-decoration-color: #fff; } .line { position: absolute; top: 50%; left: -5rpx; width: 80%; height: 3rpx; background-color: #fff; } .book-web { margin-left: 30rpx; packageBookService/pages/bookServices/examination/examination.js
@@ -90,6 +90,11 @@ * 生命周期函数--监听页面显示 */ onShow() { if (this.data.answerType != 'mock') { if (wx.timer) { clearInterval(wx.timer) } } if (this.data.answerType == 'mock') { if (wx.timer) { clearInterval(wx.timer) @@ -109,12 +114,18 @@ * 生命周期函数--监听页面隐藏 */ onHide() { if (wx.timer) { clearInterval(wx.timer) } }, /** * 生命周期函数--监听页面卸载 */ onUnload(e) { if (wx.timer) { clearInterval(wx.timer) } if (this.data.countdownInterval !== null) { clearInterval(this.data.countdownInterval) } @@ -458,18 +469,19 @@ let oldQuestionList = [] oldQuestionList = await this.getMockQuestionList() const userAnswerList = await this.getMockAnswer() await this.getMockDataList(oldQuestionList, userAnswerList) this.setData({ 'mockData.sumTime': oldMockData.time, cardList: oldQuestionList }) await this.getMockDataList(oldQuestionList, userAnswerList) } if (oldMockData.state == '0' || oldMockData.state == '1' || oldMockData.state == '2') { this.startCountdown() } if (oldMockData.state == '3') { this.setData({ submitStatus: true submitStatus: true, subjectiveNum: oldMockData.report.userScore }) } } @@ -1389,141 +1401,8 @@ // 获取组卷题目列表 async getMockDataList(questionList, oldList) { const questionDataList = this.data.questionDataList // for (let pathindex = 0; pathindex < questionList.length; pathindex++) { // const pathitem = questionList[pathindex]; // let itemIds = [] // pathitem.infoList.forEach(item => { // itemIds.push(item.id + '') // }) // let query = { // path: '*', // cmsPath: this.data.rootCmsItemId, // cmsType: '*', // productId: this.data.bookId, // queryType: '*', // itemIds, // itemFields: { // Embedded_QuestionBank_Stem: [], // Embedded_QuestionBank_AnalysisCon: [], // Embedded_QuestionBank_Answer: [], // Embedded_QuestionBank_Option: [], // Embedded_QuestionBank_QuestionType: [], // Embedded_QuestionBank_StemStyle: [], // Embedded_QuestionBank_OptionStyle: [], // Embedded_QuestionBank_KnowledgePoint: [], // Embedded_QuestionBank_Difficulty: [] // } // } // await app.MG.store.getProductDetail(query).then((res) => { // res.datas.cmsDatas[0].datas.forEach((item, index) => { // // 循环questionList,给每题赋值分数 // let oldObj // if (oldList) oldObj = oldList.find((oldItem) => oldItem.id == item.id) // let questionObj = { // // number: pathitem.infoList.find(infoItem => infoItem.itemId == item.id).number, // id: item.id, // score: pathitem.infoList.find(infoItem => infoItem.id == item.id).score, // stem: // item.Embedded_QuestionBank_QuestionType == 'completion' // ? JSON.parse(item.Embedded_QuestionBank_Stem) // .stemTxt.replaceAll('<vacancy>', ',input,') // .split(',') // : JSON.parse(item.Embedded_QuestionBank_Stem), // 题干 // answer: item.Embedded_QuestionBank_Answer, // 答案 // option: item.Embedded_QuestionBank_Option // ? JSON.parse(item.Embedded_QuestionBank_Option) // : '', // 选择题选项 // analysisCon: item.Embedded_QuestionBank_AnalysisCon, // 解析 // questionType: item.Embedded_QuestionBank_QuestionType, // 题型 // optionStyle: item.Embedded_QuestionBank_OptionStyle, // 选项显示类型 // stemStyle: item.Embedded_QuestionBank_StemStyle, // 题干显示类型 // difficulty: item.Embedded_QuestionBank_Difficulty // ? 4 - item.Embedded_QuestionBank_Difficulty // : 0, // 难度等级 // userAnswer: oldObj // ? oldObj.answer // : item.Embedded_QuestionBank_QuestionType == 'completion' || // item.Embedded_QuestionBank_QuestionType == 'multipleChoice' // ? [] // : '', // isUserAnswer: oldObj ? this.isHaveAnswer(oldObj.userAnswer) : false, // isRight: oldObj ? oldObj.isRight : null, // // isComplete: oldObj ? oldObj.isComplete : false, // isComplete: this.data.mockData.state == '3' ? true : oldObj ? this.isHaveAnswer(oldObj.answer) : false, // isCollect: this.data.collectList.indexOf(item.id) > -1 ? true : false, // isUnfold: '' // 控制解析的折叠面板是否展开 // } // // 多选和填空答案肯为数组,要转换JSON格式 // if ( // questionObj.questionType == 'completion' || // questionObj.questionType == 'multipleChoice' // ) { // try { // questionObj.answer = JSON.parse(questionObj.answer) // } catch (error) { // questionObj.answer = item.Embedded_QuestionBank_Answer // } // } // // 填空题改造 // if (questionObj.questionType == 'completion') { // let index = 0 // for (let i = 0; i < questionObj.stem.length; i++) { // const item = questionObj.stem[i] // if (item == 'input') { // questionObj.stem[i] = { // num: index, // data: 'input' // } // if (!oldObj) questionObj.userAnswer[index] = '' // index++ // } // } // } // // 获取图片 // if (questionObj.stemStyle == 'Image' || questionObj.stemStyle == 'TxtAndImage') { // questionObj.stem.stemImage = getPublicImage(questionObj.stem.stemImage, 150) // } // if (questionObj.optionStyle == 'Image' || questionObj.optionStyle == 'TxtAndImage') { // questionObj.option.forEach(optionItem => { // if (optionItem.img) optionItem.img = getPublicImage(optionItem.img, 150) // }) // } // if (oldObj && oldObj.isRight) { // this.setData({ // correctNum: this.data.correctNum + 1 // }) // } // if (item.questionType != 'shortAnswer' && item.isComplete) { // this.setData({ // subjectiveTotal: this.data.subjectiveTotal + 1 // }) // } // // if (oldObj && isHaveAnswer(oldObj.answer)) countDownRef.value.changeAlready() // // cardList赋值 // let cardIndex = this.data.cardList.findIndex((item) => item.catalogName == pathitem.catalogName) // debugger // let infoIndex = this.data.cardList[cardIndex].infoList.findIndex(infoItem => infoItem.id == item.id) // this.setData({ // [`cardList[${cardIndex}].infoList[${infoIndex}]`]: questionObj // }) // let questionList = [] // const cardUpdatedList = this.data.cardList // cardUpdatedList.forEach(aitem => { // aitem.infoList.forEach((bitem, bindex) => { // questionList.push(bitem) // bitem.number = bindex + 1 // }) // }) // this.setData({ // questionDataList: questionList, // cardList: cardUpdatedList // }) // console.log('组卷题目列表', this.data.questionDataList); // }) // }) // } questionList.forEach(async (pathitem, pathindex) => { for (let pathindex = 0; pathindex < questionList.length; pathindex++) { const pathitem = questionList[pathindex]; let itemIds = [] pathitem.infoList.forEach(item => { itemIds.push(item.id + '') @@ -1582,7 +1461,7 @@ isUserAnswer: oldObj ? this.isHaveAnswer(oldObj.userAnswer) : false, isRight: oldObj ? oldObj.isRight : null, // isComplete: oldObj ? oldObj.isComplete : false, isComplete: this.data.mockData.state == '3' ? true : oldObj ? this.isHaveAnswer(oldObj.answer) : false, isComplete: this.data.mockData.state == '3' ? true : false, isCollect: this.data.collectList.indexOf(item.id) > -1 ? true : false, isUnfold: '' // 控制解析的折叠面板是否展开 } @@ -1650,10 +1529,9 @@ questionDataList: questionList, cardList: cardUpdatedList }) console.log('组卷题目列表', this.data.questionDataList); }) }) }) } this.setData({ loading: false }) packageBookService/pages/bookServices/examination/questionList/index.wxml
@@ -1,13 +1,13 @@ <!--pages/bookServices/examination/questionList/index.wxml--> <view class="question-list" style="background-color:{{isNight ? '#000' : '#fff'}}" style="background-color:{{isNight ? '#222' : '#fff'}}" > <!-- 题型title --> <view class="question-title" wx:if="{{questionList[showIndex].type}}" style="background-color:{{isNight ? '#000' : '#fff'}}" style="background-color:{{isNight ? '#222' : '#fff'}}" > <text class="title-name">{{questionList[showIndex].type}}</text ><text class="title-score" style="color: {{isNight ? '#fff' : '#000'}};" @@ -39,7 +39,7 @@ class="title-TxtAndImage" > <text>{{item.stem.stemTxt}}</text> <t-image src="{{item.stem.stemImage}}"></t-image> <t-image src="{{item.stem.stemImage}}" /> </view> <!-- 富文本 --> <view @@ -108,7 +108,7 @@ <!-- 仅图片 --> <view wx:if="{{item.optionStyle == 'Image'}}" class="fl-center"> <text>{{contentItem.value}}、</text> <t-image src="{{contentItem.img}}"></t-image> <t-image src="{{contentItem.img}}" /> </view> <!-- 文字加图片 --> <view @@ -117,7 +117,7 @@ > <text>{{contentItem.value}}、</text> <text>{{contentItem.txt}}</text> <t-image src="{{contentItem.img}}"></t-image> <t-image src="{{contentItem.img}}" /> </view> <!-- 富文本 --> <view wx:if="{{item.optionStyle == 'RichText'}}"> @@ -162,7 +162,7 @@ <!-- 仅图片 --> <view wx:if="{{item.optionStyle == 'Image'}}" class="fl-center"> <text>{{contentItem.value}}、</text> <t-image src="{{contentItem.img}}"></t-image> <t-image src="{{contentItem.img}}" /> </view> <!-- 文字加图片 --> <view @@ -171,7 +171,7 @@ > <text>{{contentItem.value}}、</text> <text>{{contentItem.txt}}</text> <t-image src="{{contentItem.img}}"></t-image> <t-image src="{{contentItem.img}}" /> </view> <!-- 富文本 --> <view wx:if="{{item.optionStyle == 'RichText'}}"> packageBookService/pages/bookServices/examination/questionList/index.wxss
@@ -1,7 +1,7 @@ /* pages/bookServices/examination/questionList/index.wxss */ .question-list { width: 95%; height: 86%; height: 84%; padding: 20rpx; background-color: #ffffff; border-radius: 20rpx; packageBookService/pages/bookServices/examination/questionOptions/index.js
@@ -64,7 +64,7 @@ questionCardState: false, setUpPopup: false, testReportState: false, sliderValue: 10, sliderValue: 28, useTime: '', radioItem: 'daytime' }, @@ -166,10 +166,10 @@ }, // 滑块变化 onChangeSlider(e) { console.log(e); this.setData({ sliderValue: e.detail.value }) console.log(e.detail.value); }, // 设置遮罩层点击 onSetUpChange(e) { packageBookService/pages/bookServices/examination/questionOptions/index.wxml
@@ -1,17 +1,16 @@ <!--pages/bookServices/examination/questionOptions/index.wxml--> <view class="page-bottom" style="color: {{isNight ? '#fff' : '#000'}}; background-color:{{isNight ? '#000' : '#fff'}}" style="color: {{isNight ? '#fff' : '#000'}}; background-color:{{isNight ? '#202020' : '#fff'}}" > <view class="li-option" bind:tap="setCollect" style="color: {{isNight ? '#fff' : '#000'}};" > <t-image <image src="{{ questionDataList[currentIndex].isCollect ? '/static/images/bookService/detail/collecting.png' : '/static/images/bookService/examination/collect.png'}}" > </t-image> /> 收藏 </view> <view @@ -19,9 +18,7 @@ bind:tap="handlePopup" style="color: {{isNight ? '#fff' : '#000'}};" > <t-image src="/static/images/bookService/examination/questionCard.png" ></t-image> <image src="/static/images/bookService/examination/questionCard.png" /> 答题卡 </view> <view @@ -29,7 +26,7 @@ bind:tap="setUpBtn" style="color: {{isNight ? '#fff' : '#000'}};" > <t-image src="/static/images/bookService/examination/setting.png"></t-image> <image src="/static/images/bookService/examination/setting.png" /> 设置 </view> <view @@ -38,7 +35,7 @@ wx:if="{{answerType == 'option' || (answerType == 'mock' && !submitStatus)}}" style="color: {{isNight ? '#fff' : '#000'}};" > <t-image src="/static/images/bookService/examination/reset.png"></t-image> <image src="/static/images/bookService/examination/reset.png" /> 重做 </view> <view class="bottom-submit"> @@ -74,7 +71,7 @@ </view> </view> <view class="question-card-list"> <view wx:for="{{cardList}}" class="card-box"> <view wx:for="{{cardList}}" wx:key="index" class="card-box"> <!-- 题型 --> <view class="question-title"> <text class="color-box"></text> @@ -115,9 +112,18 @@ <t-slider value="{{sliderValue}}" theme="capsule" step="{{10}}" min="{{14}}" max="{{100}}" step="{{7}}" bind:change="onChangeSlider" /> <!-- <slider value="{{sliderValue}}" min="{{10}}" step="{{10}}" activeColor="#ff6c00" bind:chang="onChangeSlider" /> --> </view> <text>A+</text> @@ -134,9 +140,9 @@ <view class="card {{radioItem == 'daytime' ? 'card--active' : ''}}"> <t-radio value="daytime" icon="none" borderless> <view class="radio-content" slot="content"> <t-image src="{{ radioItem == 'daytime' ? '/static/images/bookService/examination/rijian.png' : '/static/images/bookService/detail/notest.png'}}" ></t-image> <image src="{{ radioItem == 'daytime' ? '/static/images/bookService/examination/rijian-click.png' : '/static/images/bookService/examination/rijian.png'}}" /> <text style="color: {{radioItem == 'daytime' ? '#fff':''}};" >日间模式</text > @@ -146,9 +152,9 @@ <view class="card {{radioItem == 'night' ? 'card--active' : ''}}"> <t-radio value="night" icon="none" borderless> <view class="radio-content" slot="content"> <t-image src="{{ radioItem == 'night' ? '/static/images/bookService/detail/practice-icon.png' : '/static/images/bookService/examination/yejian.png'}}" ></t-image> <image src="{{ radioItem == 'night' ? '/static/images/bookService/examination/yejian-click.png' : '/static/images/bookService/examination/yejian.png'}}" /> <text style="color: {{radioItem == 'night' ? '#fff':''}};" >夜间模式</text > packageBookService/pages/bookServices/examination/questionSchedule/index.wxml
@@ -3,7 +3,7 @@ wx:if="{{((answerType == 'option' || answerType == 'mock') && !submitStatus) || answerType == 'collectQuestion' || answerType =='errorQuestion'}}" class="schedule" id="schedule" style="background-color:{{isNight ? '#000' : '#fff'}}" style="background-color:{{isNight ? '#1a1a1a' : '#fff'}}" > <view class="schedule-top"> <!-- 答题进度 --> packageBookService/pages/bookServices/list/index.js
@@ -323,7 +323,7 @@ ], sort, coverSize: { height: 145, width: 105 }, paging: { start: 0, packageBookService/pages/bookServices/list/index.wxml
@@ -2,40 +2,112 @@ <view style="width: 100%; height: {{barHeight}}px;"></view> <view class="nacigationBar" style="width: 70%; height: {{navBarHeight}}px;"> <view> <t-icon name="chevron-left" size="30" data-name="{{item}}" bind:click="goBack" /> <t-icon name="chevron-left" size="30" data-name="{{item}}" bind:click="goBack" /> </view> <t-search model:value="{{searchValue}}" shape="round" placeholder="请输入关键词/书名/ISBN/作者" class="navBar-search" style="width: 464rpx" bind:submit="searchBook" /> <t-search model:value="{{searchValue}}" shape="round" placeholder="请输入关键词/书名/ISBN/作者" class="navBar-search" style="width: 464rpx" bind:submit="searchBook" /> </view> <view class="bookServices-list"> <view class="list-header"> <scroll-view scroll-x="{{true}}" class="header-scroll"> <t-dropdown-menu style="width: 800rpx;"> <t-dropdown-item options="{{stairList.options}}" value="{{stairList.value}}" bindchange="onChangeStair" style="background-color: #F6F6F6;" /> <t-dropdown-item label="二级" options="{{secondList.options}}" optionsColumns="2" multiple value="{{secondList.value}}" bind:confirm="onConfirmSecond" bind:change="onChangeSecond" /> <t-dropdown-item label="重点项目" options="{{majorProjectList.options}}" optionsColumns="2" multiple defaultValue="{{majorProjectList.value}}" bind:confirm="changeMajorProject" bind:reset="resetMajorProject" /> <t-dropdown-item label="新形态教材" options="{{newTextBook.options}}" optionsColumns="2" multiple defaultValue="{{newTextBook.value}}" bind:confirm="changeNewText" bind:reset="resetNewText" /> <t-dropdown-menu style="width: 800rpx"> <t-dropdown-item options="{{stairList.options}}" value="{{stairList.value}}" bindchange="onChangeStair" style="background-color: #f6f6f6" /> <t-dropdown-item label="二级" options="{{secondList.options}}" optionsColumns="2" multiple value="{{secondList.value}}" bind:confirm="onConfirmSecond" bind:change="onChangeSecond" /> <t-dropdown-item label="重点项目" options="{{majorProjectList.options}}" optionsColumns="2" multiple defaultValue="{{majorProjectList.value}}" bind:confirm="changeMajorProject" bind:reset="resetMajorProject" /> <t-dropdown-item label="新形态教材" options="{{newTextBook.options}}" optionsColumns="2" multiple defaultValue="{{newTextBook.value}}" bind:confirm="changeNewText" bind:reset="resetNewText" /> </t-dropdown-menu> </scroll-view> <view class="header-sort" bind:tap="sortClick"> <view class="sort-name">排序</view> <!-- <view class="sort-icon"> --> <t-icon name="swap-left" size="28rpx" class="icon-right" color="{{sort == 'Asc' ? '#ff6c00' : ''}}" /> <t-icon name="swap-left" size="28rpx" class="icon-left" color="{{sort == 'Desc' ? '#ff6c00' : ''}}" /> <t-icon name="swap-left" size="28rpx" class="icon-right" color="{{sort == 'Asc' ? '#ff6c00' : ''}}" /> <t-icon name="swap-left" size="28rpx" class="icon-left" color="{{sort == 'Desc' ? '#ff6c00' : ''}}" /> <!-- </view> --> </view> </view> <t-pull-down-refresh value="{{enable}}" loadingProps="{{loadingProps}}" loadingTexts="{{['下拉刷新', '松手刷新', '正在刷新', '刷新完成']}}" bind:refresh="onRefresh" class="down-refresh"> <scroll-view scroll-y="{{true}}" class="list-container" bindrefresherrefresh="onPullDownRefresh" bindscrolltolower="onReachBottom"> <t-pull-down-refresh value="{{enable}}" loadingProps="{{loadingProps}}" loadingTexts="{{['下拉刷新', '松手刷新', '正在刷新', '刷新完成']}}" bind:refresh="onRefresh" class="down-refresh" > <scroll-view scroll-y="{{true}}" class="list-container" bindrefresherrefresh="onPullDownRefresh" bindscrolltolower="onReachBottom" > <view class="assort-title"> <view class="title-box"></view> <view class="title-name">{{assortCheck.name}}</view> </view> <view class="page-content"> <view class="book-list" wx:if="{{!loaidng}}"> <view class="book-box" wx:for="{{bookList}}" wx:key="id" bind:tap="goDetail" data-book="{{item}}"> <view class="book-box" wx:for="{{bookList}}" wx:key="id" bind:tap="goDetail" data-book="{{item}}" > <view class="book-img"> <t-image src="{{item.icon ? item.icon : '/static/images/default-book-img.png'}}" aria-label="{item.name{}}" mode="widthFix" /> <image src="{{item.icon ? item.icon : '/static/images/default-book-img.png'}}" aria-label="{item.name{}}" mode="widthFix" /> </view> <view class="book-name book-color">{{ item.name}}</view> <view class="book-author book-color">{{item.author}}</view> @@ -46,11 +118,22 @@ </view> <!-- loading --> <view class="loading-box" wx:if="{{loaidng}}"> <t-loading theme="circular" size="60rpx" class="wrapper" loading="{{loaidng}}" wx:if="{{loaidng}}" /> <t-loading theme="circular" size="60rpx" class="wrapper" loading="{{loaidng}}" wx:if="{{loaidng}}" /> </view> </view> <view class="bottom-box"> <t-loading theme="circular" size="40rpx" class="wrapper" wx:if="{{isMore == true}}" /> <t-loading theme="circular" size="40rpx" class="wrapper" wx:if="{{isMore == true}}" /> <text wx:if="{{isMore == false}}">没有更多了</text> </view> </scroll-view> pages/bookServices/assort/index.js
@@ -161,6 +161,9 @@ field: 'state' } ], coverSize: { width: 76 }, queryType: '\\', searchList: [], size: '30', pages/bookServices/assort/index.wxml
@@ -2,8 +2,21 @@ <view class="page-header"> <!-- 搜索框 --> <view class="search"> <t-search t-class-input="t-search__input" t-class-input-container="t-search__input-container" placeholder="请输入关键词/书名/ISBN/作者" leftIcon="" bind:submit="navToSearchPage" placeholder-style="{{placeholderstyle}}"> <t-icon slot="left-icon" prefix="wr" name="search" size="40rpx" color="#bbb" /> <t-search t-class-input="t-search__input" t-class-input-container="t-search__input-container" placeholder="请输入关键词/书名/ISBN/作者" leftIcon="" bind:submit="navToSearchPage" placeholder-style="{{placeholderstyle}}" > <t-icon slot="left-icon" prefix="wr" name="search" size="40rpx" color="#bbb" /> </t-search> </view> </view> @@ -12,7 +25,13 @@ <view class="side-bar-wrapper" wx:if="{{!loading}}"> <view class="tab-left"> <t-side-bar value="{{assortCheck.code}}" bind:change="changeAssort"> <t-side-bar-item wx:for="{{assortList}}" wx:key="id" value="{{item.refCode}}" label="{{item.name}}" badge-props="{{item.badgeProps}}" /> <t-side-bar-item wx:for="{{assortList}}" wx:key="id" value="{{item.refCode}}" label="{{item.name}}" badge-props="{{item.badgeProps}}" /> </t-side-bar> </view> <view class="page-right"> @@ -20,44 +39,100 @@ <view class="side-bar-content" wx:if="{{!listLoding}}"> <!-- 一级分类 --> <view class="tab-top"> <scroll-view scroll-x="{{true}}" class="myScroll" show-scrollbar="{{false}}"> <view wx:for="{{startList}}" wx:key="id" class="row {{startCheck.id == item.id ? 'tab-active' : ''}}" bind:tap="tabClick" data-tabData="{{item}}">{{item.name}}</view> <scroll-view scroll-x="{{true}}" class="myScroll" show-scrollbar="{{false}}" > <view wx:for="{{startList}}" wx:key="id" class="row {{startCheck.id == item.id ? 'tab-active' : ''}}" bind:tap="tabClick" data-tabData="{{item}}" >{{item.name}}</view > </scroll-view> </view> <!-- 内容 --> <scroll-view scroll-y="{{true}}" class="class-list" scroll-into-view="{{ 'list' + startCheck.id}}"> <scroll-view scroll-y="{{true}}" class="class-list" scroll-into-view="{{ 'list' + startCheck.id}}" > <view wx:if="{{listLoading}}"> <t-loading theme="spinner" size="400rpx" loading="{{listLoading}}"></t-loading> <t-loading theme="spinner" size="400rpx" loading="{{listLoading}}" ></t-loading> </view> <view wx:for="{{startList}}" wx:for-item="item" wx:key="item.id" id="{{ 'list' + item.id}}" class="class-box" wx:if="{{!listLoading}}"> <view wx:for="{{startList}}" wx:for-item="item" wx:key="item.id" id="{{ 'list' + item.id}}" class="class-box" wx:if="{{!listLoading}}" > <view class="class-name">{{item.name}}</view> <view class="class-content"> <view wx:for="{{item.children}}" wx:for-item="citem" wx:key="id" class="book-box" bind:tap="goPageList" data-stair="{{citem}}" data-tabData="{{item}}" wx:if="{{item.children.length}}"> <view wx:for="{{item.children}}" wx:for-item="citem" wx:key="id" class="book-box" bind:tap="goPageList" data-stair="{{citem}}" data-tabData="{{item}}" wx:if="{{item.children.length}}" > <view class="assort-img"> <image src="{{citem.icon ? citem.icon : '/static/images/bookService/assort/book-img.png'}}" mode="widthFix" /> <image src="{{citem.icon ? citem.icon : '/static/images/bookService/assort/book-img.png'}}" mode="widthFix" /> </view> <view class="classify">{{citem.name}}</view> </view> <view wx:if="{{!item.children.length}}" class="book-box" bind:tap="goPageList" data-tabData="{{item}}"> <view wx:if="{{!item.children.length}}" class="book-box" bind:tap="goPageList" data-tabData="{{item}}" > <view class="assort-img"> <image src="{{item.icon ? item.icon : '/static/images/bookService/assort/book-img.png'}}" mode="heightFix"></image> <image src="{{item.icon ? item.icon : '/static/images/bookService/assort/book-img.png'}}" mode="widthFix" ></image> </view> <text class="classify">全部</text> </view> </view> </view> <view class="bottom-box"> </view> <view class="bottom-box"> </view> </scroll-view> </view> <!-- loading --> <view class="loading-box" wx:if="{{listLoding}}"> <t-loading theme="circular" size="60rpx" class="wrapper" loading="{{listLoding}}" wx:if="{{listLoding}}" /> <t-loading theme="circular" size="60rpx" class="wrapper" loading="{{listLoding}}" wx:if="{{listLoding}}" /> </view> </view> </view> <view class="loading-box" wx:if="{{loading}}"> <t-loading theme="circular" size="60rpx" class="wrapper" loading="{{loading}}" wx:if="{{loading}}" /> <t-loading theme="circular" size="60rpx" class="wrapper" loading="{{loading}}" wx:if="{{loading}}" /> </view> </view> pages/bookServices/assort/index.wxss
@@ -141,8 +141,8 @@ .assort-img { display: flex; width: 116rpx; height: 142rpx; width: 152rpx; height: 186rpx; box-shadow: 0px 3px 6px 1px rgba(0, 0, 0, 0.16); margin-bottom: 20rpx; } static/images/bookService/detail/weidian.png
static/images/bookService/examination/rijian-click.png
static/images/bookService/examination/rijian.pngstatic/images/bookService/examination/yejian-click.png