闫增涛
2024-03-29 e060ad2b2da9884e00b36796548eacc6a2b9a5d3
图书详情,列表页bug修改
4个文件已删除
18个文件已修改
524 ■■■■■ 已修改文件
packageBookService/pages/bookServices/detail/buyResource/index.json 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packageBookService/pages/bookServices/detail/components/suggest/suggest.js 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packageBookService/pages/bookServices/detail/components/tag/index.js 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packageBookService/pages/bookServices/detail/components/tag/index.json 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packageBookService/pages/bookServices/detail/components/tag/index.wxml 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packageBookService/pages/bookServices/detail/components/tag/index.wxss 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packageBookService/pages/bookServices/detail/components/testResource/testResource.json 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packageBookService/pages/bookServices/detail/components/testResource/testResource.wxml 94 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packageBookService/pages/bookServices/detail/components/tree/index.js 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packageBookService/pages/bookServices/detail/index.js 99 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packageBookService/pages/bookServices/detail/index.json 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packageBookService/pages/bookServices/detail/index.wxml 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packageBookService/pages/bookServices/detail/index.wxss 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packageBookService/pages/bookServices/examination/examination.json 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packageBookService/pages/bookServices/list/index.js 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packageBookService/pages/bookServices/list/index.json 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packageBookService/pages/bookServices/list/index.wxml 116 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packageBookService/pages/bookServices/list/index.wxss 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packageDomain/pages/sampleBookList/index.wxss 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/bookServices/assort/index.json 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/bookServices/assort/index.wxml 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/bookServices/assort/index.wxss 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
packageBookService/pages/bookServices/detail/buyResource/index.json
@@ -5,5 +5,6 @@
    "t-loading": "tdesign-miniprogram/loading/loading",
    "t-button": "tdesign-miniprogram/button/button"
  },
  "navigationStyle": "custom"
  "navigationStyle": "custom",
  "disableScroll": true
}
packageBookService/pages/bookServices/detail/components/suggest/suggest.js
@@ -61,16 +61,15 @@
      })
    },
    async feedBack() {
      const token = wx.getStorageSync('jsek-token')
      if (!token) {
        return wx.getUserProfile({
          desc: '用户登录',
          success: (res) => {
            console.log(res);
          }
        })
      }
      // const token = wx.getStorageSync('jsek-token')
      // if (!token) {
      //   return wx.getUserProfile({
      //     desc: '用户登录',
      //     success: (res) => {
      //       console.log(res);
      //     }
      //   })
      // }
      let content = {
        source: this.data.ratevalue,
        phone: this.data.inputvalue,
packageBookService/pages/bookServices/detail/components/tag/index.js
File was deleted
packageBookService/pages/bookServices/detail/components/tag/index.json
File was deleted
packageBookService/pages/bookServices/detail/components/tag/index.wxml
File was deleted
packageBookService/pages/bookServices/detail/components/tag/index.wxss
File was deleted
packageBookService/pages/bookServices/detail/components/testResource/testResource.json
@@ -4,6 +4,7 @@
    "t-button": "tdesign-miniprogram/button/button",
    "t-image": "tdesign-miniprogram/image/image",
    "t-radio": "tdesign-miniprogram/radio/radio",
    "t-radio-group": "tdesign-miniprogram/radio-group/radio-group"
    "t-radio-group": "tdesign-miniprogram/radio-group/radio-group",
    "t-empty": "tdesign-miniprogram/empty/empty"
  }
}
packageBookService/pages/bookServices/detail/components/testResource/testResource.wxml
@@ -1,59 +1,31 @@
<!--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">
            <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
            >
            <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: 80rpx">
          <view class="radio-content" slot="content">
            <image
              src="{{ radioItem == 'mock' ? '/static/images/bookService/detail/checkpaper.png' : '/static/images/bookService/detail/zujuan.png'}}"
            ></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" class="btn-content">
        <image src="/static/images/bookService/detail/cuoti.png"></image>
        <text>我的错题</text>
      </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" class="btn-content">
        <image src="/static/images/bookService/detail/wodeshoucang.png"></image>
        <text> 我的收藏</text>
@@ -61,12 +33,7 @@
    </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">
      <image src="/static/images/bookService/detail/test-icon.png"></image>
      <text>{{item.name}}</text>
@@ -77,53 +44,38 @@
  </view>
</view>
<view wx:if="{{noResources}}" class="noData" wx:if="{{radioItem == 'test' && !list.length}}">
  <t-empty icon="folder-open" description="暂无数据" />
</view>
<!-- 组卷列表 -->
<view class="mock-data" wx:if="{{radioItem == 'mock'}}">
  <view wx:if="{{mockData.mockList.length}}">
  <view>
    <view class="mack-num">
      <text>已组卷{{mockData.mockList.length}}次</text>
      <t-button class="buy-mock-btn" bind:tap="buyMock">购买组卷</t-button>
    </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" wx:if="{{mockData.mockList.length}}">
      <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.state == '3'}}"
            >{{item.report.userScore}}分</view
          >
        </view>
          <view class="mock-score" wx:if="{{item.state == '3'}}">{{item.report.userScore}}分</view>
      </view>
    </view>
  </view>
  <view wx:else class="not-mock">
    <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
    >
      <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>
</view>
packageBookService/pages/bookServices/detail/components/tree/index.js
@@ -1,5 +1,7 @@
import Message from 'tdesign-miniprogram/message/message';
const util = require('./components/util') // 引入封装过的加载提示
import {
  loginInfo
} from '../../../../../../assets/js/login'
const app = getApp()
Component({
  // checked: false,
@@ -127,6 +129,18 @@
    },
    // 跳转音视频播放器
    goPlayer(e) {
      // 检查登录状态
      const token = wx.getStorageSync(app.config.tokenKey)
      if (!token) {
        loginInfo(app, (data) => {
          // 如果不是第一次登录,会执行回调
          if (data) {
            // 登录成功,自动记录token和用户信息,并返回true
          } else {
            // 出现错误,返回false
          }
        })
      } else {
      if (this.properties.isShowCheck) return true
      const item = e.currentTarget.dataset.item
      const parent = e.currentTarget.dataset.parent
@@ -147,8 +161,6 @@
      wx.navigateTo({
        url: `${url}?productLinkPath=${item.productLinkPath}&parentProductLinkPath=${parent.productLinkPath}&parentName=${parent.name}&activeId=${item.id}&bookId=${this.properties.bookInfo.id}&bookName=${this.properties.bookInfo.name}&cmsId=${this.properties.bookInfo.rootCmsItemId}`,
      })
      if (item.selectType == 'document' || item.selectType == 'pdf') {
        const fileLink = app.config.requestCtx + '/file/api/ApiDownload?md5=' + item.file
        console.log(fileLink, 'fileLink');
@@ -178,20 +190,14 @@
            util.hideLoadingWithErrorTips()
          }
        })
      }
      if (item.selectType == 'webpage') {
        console.log(11);
        this.setData({
          webpageSrc: item.jsek_link
        })
        console.log(this.data.webpageSrc, 'webpageSrc');
      }
      }
    },
    // 拿到所有项
    getAllChildren(id) {
packageBookService/pages/bookServices/detail/index.js
@@ -1,7 +1,9 @@
// pages/bookServices/detail/index.js
import Message from 'tdesign-miniprogram/message/index.js';
import Toast from 'tdesign-miniprogram/toast';
import tool from '../../../../assets/js/toolClass'
import tool from '../../../../assets/js/toolClass';
import {
  loginInfo
} from '../../../../assets/js/login'
const app = getApp();
Page({
  /**
@@ -70,6 +72,7 @@
    paperBookCount: 0, //纸质书剩余次数
    ebookCount: 0, //电子书剩余次数
    userInfo: {},
    pageLoading: true,
    fileInfo: {
      bookName: "",
      fileType: "",
@@ -132,6 +135,22 @@
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    // 检查登录状态
    // const token = wx.getStorageSync(app.config.tokenKey)
    // if (!token) {
    //   loginInfo(app, (data) => {
    //     // 如果不是第一次登录,会执行回调
    //     if (data) {
    //       // 登录成功,自动记录token和用户信息,并返回true
    //     } else {
    //       // 出现错误,返回false
    //     }
    //   })
    // } else {
    //   // 如果是第一次登录,会跳转至绑定用户信息页面,填写完用户信息后进行登录并储存token和用户信息,结束后跳转回当前页面(携带页面参数)
    // }
    const systInfo = wx.getSystemInfoSync();
    const menu = wx.getMenuButtonBoundingClientRect(); // 胶囊信息
    const navBarHeight = (menu.top - systInfo.statusBarHeight) * 2 + menu.height; // 导航栏高度
@@ -149,7 +168,7 @@
    this.getBookInfo(options.id);
    this.getResourceClass() // 获取资源所属分类
    const token = wx.getStorageSync('jsek-token')
    const token = wx.getStorageSync(app.config.tokenKey)
    if (token) {
      this.getShoppingCartProductGet()
      this.getApplyInfo(options.id)
@@ -281,7 +300,7 @@
    this.setData({
      "mockData'.id": 0,
      "mockData.price": 0,
      "mockData.count": 0
      "mockData.count": 0,
    })
    const query = {
      path: '*',
@@ -359,6 +378,7 @@
        'bookDetail.price': this.numFormat(this.data.bookDetail.price),
        'bookDetail.oldPrice': this.numFormat(this.data.bookDetail.oldPrice),
        'bookDetail.paperPrice': this.numFormat(this.data.bookDetail.paperPrice),
        pageLoading: false
      });
      console.log('图书信息', this.data.bookDetail);
    });
@@ -485,6 +505,20 @@
  },
  // 收藏
  setCollect() {
    const token = wx.getStorageSync(app.config.tokenKey)
    if (!token) {
      // 检查登录状态
      loginInfo(app, (data) => {
        // 如果不是第一次登录,会执行回调
        if (data) {
          // 登录成功,自动记录token和用户信息,并返回true
          this.getBookInfo(this.data.bookId)
        } else {
          // 出现错误,返回false
        }
      })
    } else {
      debugger
    if (this.data.bookDetail.isFavourite) {
      app.MG.store
        .delProductLink({
@@ -495,12 +529,6 @@
          this.setData({
            'bookDetail.isFavourite': false
          })
          Message.success({
            context: this,
            offset: [20, 32],
            duration: 5000,
            content: '这是一条成功的提示消息',
          });
        });
    } else {
      const params = {
@@ -511,19 +539,34 @@
        this.setData({
          'bookDetail.isFavourite': true
        })
        Message.success({
          context: this,
          offset: ['20rpx', '32rpx'],
          duration: 2000,
          content: '收藏成功',
        });
      });
    }
    }
  },
  // 我要建议
  suggestBtn() {
    // 检查登录状态
    const token = wx.getStorageSync(app.config.tokenKey)
    const child = this.selectComponent('#suggest-component')
    if (!token) {
      wx.showLoading({
        title: '加载中',
      })
      loginInfo(app, (data) => {
        // 如果不是第一次登录,会执行回调
        if (data) {
          // 登录成功,自动记录token和用户信息,并返回true
    child.showDialog()
          wx.hideLoading()
        } else {
          // 出现错误,返回false
        }
      })
    } else {
      // 如果是第一次登录,会跳转至绑定用户信息页面,填写完用户信息后进行登录并储存token和用户信息,结束后跳转回当前页面(携带页面参数)
      child.showDialog()
    }
  },
  // 跳转网店
  goShop(e) {
@@ -559,20 +602,18 @@
        })
      }
    } else if (e.detail.label == '云笔记') {
      const token = wx.getStorageSync('jsek-token')
      const token = wx.getStorageSync(app.config.tokenKey)
      const child = this.selectComponent('#note')
      child.handleSubmitTitle()
      if (token) {
        child.changeLoading()
        child.getNoteList()
      }
    } else if (e.detail.label == '电子书') {
      const child = this.selectComponent('#eBook')
      if (child) {
        child.getProgress()
      }
    }
  },
  // 获取资源所属分类
@@ -775,9 +816,7 @@
  // 图书添加购物车
  async addBookShopcCar() {
    if (!this.data.expire) {
      const token = wx.getStorageSync('jsek-token')
      if (!token) {
        return wx.getUserProfile({
@@ -1197,15 +1236,17 @@
  // 云学习一键领取
  async getFreeResource() {
    const child = this.selectComponent('#learn-resource')
    const token = wx.getStorageSync('jsek-token')
    const token = wx.getStorageSync(app.config.tokenKey)
    if (!token) {
      return wx.getUserProfile({
        desc: '用户登录',
        success: (res) => {
          console.log(res);
      loginInfo(app, (data) => {
        // 如果不是第一次登录,会执行回调
        if (data) {
          // 登录成功,自动记录token和用户信息,并返回true
        } else {
          // 出现错误,返回false
        }
      })
    }
    } else {
    let arr = this.handleTreeData(this.data.learn).filter((item) => this.resourceIsBuy(item))
    let freeIds = arr.filter((item) => {
      return item.saleMethod[0].Price == 0
@@ -1245,6 +1286,7 @@
      }
    } catch (error) {
      console.log(error)
      }
    }
  },
  // 云学习一键购买
@@ -1453,8 +1495,7 @@
  buyBtn() {
    if (this.data.tabValue == 'brief' && !this.data.bookBuy) {
      this.buyBook()
    }
    else if (this.data.tabValue == 'jsek_cloudLearning') {
    } else if (this.data.tabValue == 'jsek_cloudLearning') {
      const tree = this.selectComponent('#tree')
      tree.onCloudShoppingCart()
    } else {
packageBookService/pages/bookServices/detail/index.json
@@ -20,5 +20,6 @@
    "t-fab": "tdesign-miniprogram/fab/fab"
  },
  "navigationStyle": "custom",
  "onReachBottomDistance": 200
  "onReachBottomDistance": 200,
  "disableScroll": true
}
packageBookService/pages/bookServices/detail/index.wxml
@@ -1,6 +1,6 @@
<!--pages/bookServices/detail/index.wxml-->
<!--导航区域 -->
<view class="page-bookService">
<view class="page-bookService" wx:if="{{!pageLoading}}">
  <view style="width: 100%; height: {{barHeight}}px; "></view>
  <view class="nacigationBar" style="width: 70%; height: {{navBarHeight}}px;">
    <view>
@@ -98,7 +98,7 @@
      <view class="book-sale">
        <view class="book-price">
          <!-- 电子书售价 -->
          <view class="electron-price">
          <view class="electron-price" wx:if="{{bookDetail.price}}">
            <view>
              <image
                src="/static/images/bookService/detail/electon-price.png"
@@ -263,16 +263,13 @@
          value="questionBank"
          style="{{tabPanelstyle}}"
        >
          <view wx:if="{{!loading && test.length}}">
          <view wx:if="{{!loading}}">
            <test-resource
              list="{{test}}"
              bookInfo="{{bookDetail}}"
              mockData="{{mockData}}"
              bind:buyMock="buyMock"
            ></test-resource>
          </view>
          <view wx:if="{{noResources}}" class="noData">
            <t-empty icon="folder-open" description="暂无数据" />
          </view>
        </t-tab-panel>
        <t-tab-panel
@@ -351,3 +348,7 @@
    >
  </view>
</view>
<view class="loading" wx:if="{{pageLoading}}">
  <t-loading loading="{{pageLoading}}" size="40"></t-loading>
</view>
packageBookService/pages/bookServices/detail/index.wxss
@@ -373,3 +373,10 @@
  background-position: right;
  background-image: url(http://jsysf.bnuic.com/website/image/click-icon.png);
}
.loading {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
}
packageBookService/pages/bookServices/examination/examination.json
@@ -9,5 +9,6 @@
    "t-loading": "tdesign-miniprogram/loading/loading"
  },
  "navigationStyle": "custom",
  "navigationBarBackgroundColor": "#010101"
  "navigationBarBackgroundColor": "#010101",
  "disableScroll": true
}
packageBookService/pages/bookServices/list/index.js
@@ -32,7 +32,9 @@
    secondList: {
      value: [],
      options: [],
      disabled: false,
    },
    disabledSecondList: false,
    majorProjectList: {
      value: [],
      options: [],
@@ -49,7 +51,8 @@
      size: '50rpx'
    },
    loading: false,
    noData: false
    noData: false,
    showDropdown: false,
  },
  /**
   * 生命周期函数--监听页面加载
@@ -341,10 +344,9 @@
        "pageCount.total": res.total,
        loading: false
      });
      console.log('图书列表', res.datas);
      if (!res.datas.length) {
        this.setData({
          noData: true
          noData: true,
        })
      }
    });
@@ -354,6 +356,7 @@
    const path = e.detail.value.length ?
      `${this.data.assortCheck.code}\\${e.detail.value}` :
      this.data.assortCheck.code;
    console.log(this.data.path);
    this.setData({
      pathList: [],
      stairCode: e.detail.value,
@@ -363,6 +366,16 @@
    });
    this.getBookList(path);
    this.getSecondList(path);
    if (e.detail.value == '') {
      this.setData({
        disabledSecondList: true
      })
    } else {
      this.setData({
        disabledSecondList: false
      })
    }
    console.log(this.data.disabledSecondList);
  },
  // 二级分类切换
  onChangeSecond(e) {
@@ -461,4 +474,16 @@
    });
    this.getBookList(this.data.path)
  },
  openDropdown() {
    console.log('展开哦', );
    this.setData({
      showDropdown: true
    })
  },
  closeDropdown() {
    console.log('关闭');
    this.setData({
      showDropdown: false
    })
  }
});
packageBookService/pages/bookServices/list/index.json
@@ -9,5 +9,6 @@
    "t-loading": "tdesign-miniprogram/loading/loading",
    "t-empty": "tdesign-miniprogram/empty/empty"
  },
  "navigationStyle": "custom"
  "navigationStyle": "custom",
  "disableScroll": true
}
packageBookService/pages/bookServices/list/index.wxml
@@ -1,41 +1,117 @@
<!-- 图书服务-列表 -->
<page-meta page-style="{{showDropdown ? 'overflow: hidden;' : ''}}">
<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">
    <view class="header-scroll">
      <t-dropdown-menu style="width: 1000rpx">
        <t-dropdown-item options="{{stairList.options}}" value="{{stairList.value}}" bindchange="onChangeStair" />
        <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-item
            optionsColumns="2"
            options="{{stairList.options}}"
            value="{{stairList.value}}"
            bindchange="onChangeStair"
          />
          <t-dropdown-item
            disabled="{{disabledSecondList}}"
            label="二级"
            bind:open="openDropdown"
            bind:close="closeDropdown"
            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>
    </view>
    <view class="header-sort" bind:tap="sortClick">
      <text class="sort-name">排序</text>
      <!-- <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">
              <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="aspectFit"
                />
            </view>
            <view class="book-name book-color">{{ item.name}}</view>
            <view class="book-author book-color">{{item.author}}</view>
@@ -46,13 +122,25 @@
        </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>
  </t-pull-down-refresh>
</view>
</page-meta>
packageBookService/pages/bookServices/list/index.wxss
@@ -14,6 +14,7 @@
  overflow: hidden;
  display: flex;
  height: 96rpx;
  --td-button-primary-active-bg-color: #ff984d;
}
.list-header .t-button--primary {
@@ -27,6 +28,33 @@
  border-radius: 50rpx !important;
  color: #545C63 !important;
  border: 2rpx solid #979797 !important;
}
.list-header .t-button--light {
  background: #fff !important;
  border-radius: 50rpx !important;
  color: #545C63 !important;
  border: 2rpx solid #979797 !important;
}
.t-checkbox--tag.t-checkbox--checked {
  background-color: #f3e0d3 !important;
}
.t-dropdown-menu__item--active {
  background: #F6F6F6 !important;
}
.t-button--primary::after {
  border: none;
}
.t-radio--block {
  padding: 20rpx !important;
}
.t-radio__border {
  height: 0 !important;
}
.t-dropdown-menu__item--active,
@@ -73,14 +101,14 @@
.icon-left {
  position: absolute;
  top: 38rpx;
  top: 34rpx;
  right: 26rpx;
  transform: rotate(270deg);
}
.icon-right {
  position: absolute;
  top: 38rpx;
  top: 34rpx;
  right: 10rpx;
  transform: rotate(90deg);
}
@@ -151,6 +179,11 @@
  box-shadow: 0px 3px 6px 1px rgba(0, 0, 0, 0.16);
}
.book-img image {
  height: 100% !important;
}
.book-name {
  margin-top: 24rpx;
@@ -212,3 +245,7 @@
  height: 70%;
  margin-left: 20rpx;
}
.t-dropdown-item__body {
  padding-bottom: 10rpx !important;
}
packageDomain/pages/sampleBookList/index.wxss
@@ -59,7 +59,7 @@
.srcolbox .t-button--primary {
  border-radius: 50rpx !important;
  background: #FF6C00 !important;
  border: none;
  border: none !important;
}
.srcolbox .t-button--light {
pages/bookServices/assort/index.json
@@ -2,7 +2,7 @@
  "navigationBarTitleText": "图书服务",
  "onReachBottomDistance": 10,
  "backgroundTextStyle": "light",
  "enablePullDownRefresh": true,
  "disableScroll": true,
  "usingComponents": {
    "t-search": "tdesign-miniprogram/search/search",
    "t-icon": "tdesign-miniprogram/icon/icon",
pages/bookServices/assort/index.wxml
@@ -1,4 +1,5 @@
<!--图书服务分类-->
<page-meta style="width: 100vw; overflow: hidden">
<view class="page-header">
  <!-- 搜索框 -->
  <view class="search">
@@ -39,9 +40,7 @@
      <view class="side-bar-content" wx:if="{{!listLoding}}">
        <!-- 一级分类 -->
        <view class="tab-top">
          <view
            class="myScroll"
          >
            <view class="myScroll">
            <view
              wx:for="{{startList}}"
              wx:key="id"
@@ -88,7 +87,7 @@
                <view class="assort-img">
                  <image
                    src="{{citem.icon ? citem.icon : '/static/images/default-book-img.png'}}"
                    mode="widthFix"
                      mode="aspectFit"
                  />
                </view>
                <view class="classify">{{citem.name}}</view>
@@ -102,8 +101,8 @@
                <view class="assort-img">
                  <image
                    src="{{item.icon ? item.icon : '/static/images/default-book-img.png'}}"
                    mode="widthFix"
                  ></image>
                      mode="aspectFit"
                    />
                </view>
                <text class="classify">全部</text>
              </view>
@@ -134,3 +133,4 @@
    />
  </view>
</view>
</page-meta>
pages/bookServices/assort/index.wxss
@@ -1,4 +1,6 @@
page {
  width: 100vw;
  overflow: hidden;
  box-sizing: border-box;
  padding-bottom: calc(env(safe-area-inset-bottom) + 96rpx);
}
@@ -127,7 +129,7 @@
}
.book-box image {
  height: 142rpx;
  height: 180rpx;
}
.classify {